After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 166894 - Have meta_window_raise raise ancestor instead of window
Have meta_window_raise raise ancestor instead of window
Status: RESOLVED FIXED
Product: metacity
Classification: Other
Component: general
trunk
Other Linux
: High normal
: 2.10.x
Assigned To: Metacity maintainers list
Metacity maintainers list
Depends on:
Blocks:
 
 
Reported: 2005-02-10 07:04 UTC by Elijah Newren
Modified: 2005-02-12 07:34 UTC
See Also:
GNOME target: ---
GNOME version: 2.9/2.10


Attachments
have meta_window_raise raise the root ancestor of the specified window (1.51 KB, patch)
2005-02-10 07:05 UTC, Elijah Newren
none Details | Review

Description Elijah Newren 2005-02-10 07:04:27 UTC
Background: When we raise a window, due to stacking constraints, all its
transients get raised as well.  When we click on a task in the tasklist, if that
window has a transient then the transient gets focus.  If a window has a modal
transient, then trying to focus the window will instead focus the modal
transient.  In other words, we've done a lot of work to que the user that a
window and its transients are related.

Jarring behavior: Imagine this situtation: Two apps, A & B, with windows mA, tA
and mB (main window of A, transient of mA, main window of B), stacked in that
order with the bottom windows mostly obscured.  User clicks on tA to work with
application A.  tA is raised but mA is still mostly hidden.

The user thinks of tA and mA as the same app, and for many dialogs the user will
want to see the main app as they work with the dialog.  Considering the other
changes we've made to make windows+transients act as a grouped entity, this
feels very out of place.  The patch to fix it is simple (due to our stacking
constraints); I'll attach it in a minute.
Comment 1 Elijah Newren 2005-02-10 07:05:23 UTC
Created attachment 37276 [details] [review]
have meta_window_raise raise the root ancestor of the specified window
Comment 2 Elijah Newren 2005-02-11 21:50:22 UTC
ping?  (You've reviewed everything else, so I'm assuming you just missed this
one...)
Comment 3 Havoc Pennington 2005-02-12 04:37:18 UTC
Comment on attachment 37276 [details] [review]
have meta_window_raise raise the root ancestor of the specified window

I think a rogue app could pretty easily trigger that assert right now; nothing
stopping you from putting a window from another screen in TRANSIENT_FOR. So I'd
suggest making it an if() or just removing it (the raise would be harmless then
since the situation is crazy)

Looks good to me otherwise
Comment 4 Elijah Newren 2005-02-12 07:34:48 UTC
committed with changing to an if.