Xpra: Ticket #766: Dialog pop-ups are no longer decorated.

Xpra-0.14.14 has introduced a problem with dialog pop-up windows on the X11 client.

For example, in firefox the "File -> Save As" dialog is no longer taken in charge by the window manager, and it is impossible to assign keyboard focus to the text box.

I am unsure what is the ideal solution for this. But this change in gtk_client_windows_base.py works for X11:

        #skip decorations for any non-normal window that is transient for another window:
        # if "NORMAL" not in window_types and metadata.intget("transient-for", -1)>0:
        if ("NORMAL" and "DIALOG") not in window_types and metadata.intget("transient-for", -1)>0:
            return True

Mon, 22 Dec 2014 21:23:00 GMT - Marc St-Amand: component changed

Mon, 22 Dec 2014 21:34:28 GMT - Marc St-Amand: version changed

Tue, 23 Dec 2014 01:49:19 GMT - Antoine Martin: owner, priority, status changed

This was caused by #762 (lots of details there) - but your change would enable decorations for all window types!

Will test a better fix.

Tue, 23 Dec 2014 04:27:25 GMT - Antoine Martin:

The minimal fix is in r8268 and will be backported to v0.14.x

I believe that r8269 is a more proper fix, as per gtk-window-type-constants: The Window Type constants specify the type of a gtk.Window. Most things you'd consider a "window" should have type gtk.WINDOW_TOPLEVEL; windows with this type are managed by the window manager and have a frame by default (call the set_decorated() method to toggle the frame). Windows with type gtk.WINDOW_POPUP are ignored by the window manager; window manager keybindings won't work on them, the window manager won't decorate the window with a frame, many GTK+ features that rely on the window manager will not work (e.g. resize grips and maximization/minimization). gtk.WINDOW_POPUP is used to implement widgets such as gtk.Menu or tooltips that you normally don't think of as windows per se. Nearly all windows should be gtk.WINDOW_TOPLEVEL. In particular, do not use gtk.WINDOW_POPUP just to turn off the window borders; use the gtk.Window.set_decorated() method for that.

So this sounds like we want to use POPUP only for OR windows, and toggle decorations based on other attributes as before. The problem is that this change could cause yet more regressions... something I would rather avoid. So maybe I will wait a little while before backporting it.

Testing both options would help move this forward.

Tue, 23 Dec 2014 06:32:30 GMT - Antoine Martin:

See also #765

Tue, 23 Dec 2014 16:47:06 GMT - Marc St-Amand:

I am rubbish at python, sorry. Yes, r8268 is what I meant; it works.

I am using trunk @ r8272 right now, and the client decorations behave as expected. I have tried the x11 client on ubuntu 14.10 and on an old fc17 box.

Thu, 25 Dec 2014 11:38:39 GMT - Antoine Martin: status changed; resolution set

Backport to v0.14.x in r8280. Closing.

Note: there may well be more changes in this area to handle window hints properly... hopefully without breaking too many applications. See #765.

Tue, 30 Dec 2014 07:03:53 GMT - Antoine Martin:

FWI: this "fix" re-broke IE7 via wine, see #762.

Tue, 30 Dec 2014 17:09:09 GMT - Antoine Martin:

Lots of fixes required to get this right, see 765#comment:10 for details.

Beta 0.14.16 and 0.15.0 packages with all these changes can be found here: http://xpra.org/beta/

pedalling.philosopher: any kind of testing feedback would be much appreciated.

Fri, 08 May 2015 01:11:34 GMT - alas:

Wanted to confirm no regressions... but trying to test with an osx 0.15.0 r9202 client I have been unable to figure out what I am testing exactly. I'm not sure what " ... in firefox the "File -> Save As" dialog ..." refers to, but I can't find anything in any dialog popups (running against a fedora 20 0.15.0 r9137 server) that catch my eye as looking odd.

I suppose that might mean there have been no regressions (?).

Sat, 23 Jan 2021 05:05:20 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/766