Opened 4 years ago

Closed 3 years ago

Last modified 3 years ago

#46717 closed enhancement (fixed)

xfwm4: improved stacking in rooted mode

Reported by: RJVB (René Bertin) Owned by: afb@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: haspatch Cc:
Port: xfwm4


Most window managers are not prepared, when running under XQuartz or similar in rooted mode, to restack X11 windows outside of the stacking location the X server is itself in. As a result, clicking on a background X11 window will make the X server active and raise the X window w.r.t. other X windows, but it will not raise the window from behind "native" (Cocoa/Aqua) windows.

I'm attaching a patch that (re)enables this for "global" restacking operations (i.e. when xfwm4 does not try to restack a window w.r.t. some sibling window).

Bonus screenshot: xfwm4 with the Mint-X theme, epiphany using the GTk3 theme from port:oxygen-gtk3 and the +infinality variants of port:freetype, port:fontconfig and port:cairo.

Attachments (2)

Screen Shot 2015-01-30 at 18.11.20.png (158.7 KB) - added by RJVB (René Bertin) 4 years ago.
xfwm4-stacking4nonX11.patch (5.9 KB) - added by RJVB (René Bertin) 4 years ago.
only do a global restack of the target window…

Download all attachments as: .zip

Change History (10)

Changed 4 years ago by RJVB (René Bertin)

comment:1 Changed 4 years ago by mf2k (Frank Schima)

Cc: afb@… removed
Owner: changed from macports-tickets@… to afb@…

Changed 4 years ago by RJVB (René Bertin)

Attachment: xfwm4-stacking4nonX11.patch added

only do a global restack of the target window...

comment:2 Changed 4 years ago by afb@…

Intriguing. Did you get this upstream somehow ?

comment:3 Changed 4 years ago by RJVB (René Bertin)

Honestly, (only) 3 months later and already I can't remember... I think I reported some issues, but this one probably not because it's so specific to use on OS X. The patch fixes an issue that only exists when your X server isn't the unique renderer. And even on OS X I have no idea how many people actually use alternative window managers.

comment:4 Changed 3 years ago by afb@…

xfwm4 has been updated to 4.12.0, perhaps needs a rebase

comment:5 Changed 3 years ago by afb@…

Resolution: fixed
Status: newclosed

Rebased and applied in r144502.

Not sure it worked before either, needed a "Client" parameter ?

comment:6 Changed 3 years ago by RJVB (René Bertin)

Sorry, I've been too busy elsewhere to look at this ... Where did you add a Client parameter that I didn't add?

What intrigues me, now that I forced myself to look at my own port files: the patch line in my Portfile was commented out as part of changes I made back in May. Without any explanation, and clearly I had forgot to update this ticket.

How does this patch work for you?

And BTW, how does xfwm4 open dialogs, alerts etc. for you? For me they tend to open behind the parent window, which is somewhat annoying...

comment:7 Changed 3 years ago by afb@…

I added a ", c" as the second parameter, it seemed to work OK. To be honest I haven't tried this new version much. Maybe I should :-)

comment:8 Changed 3 years ago by afb@…

Your patch:

	clientApplyStackList (ScreenInfo *screen_info, Client *client, StackingAction action ) 

clientApplyStackList (screen_info, (wsibling)? Restack : Raise); 
clientApplyStackList (screen_info, (wsibling)? Restack : Lower);
Note: See TracTickets for help on using tickets.