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 152283 - When you stick a window on "all workspaces", stick its modal children, too
When you stick a window on "all workspaces", stick its modal children, too
Status: RESOLVED FIXED
Product: metacity
Classification: Other
Component: general
trunk
Other Linux
: Normal normal
: ---
Assigned To: Metacity maintainers list
Metacity maintainers list
Depends on:
Blocks: 164841
 
 
Reported: 2004-09-09 23:21 UTC by Ken Harris
Modified: 2005-01-26 23:25 UTC
See Also:
GNOME target: ---
GNOME version: 2.9/2.10


Attachments
Stick/Unstick a window should cause the same operation to occur for transients (1.72 KB, patch)
2005-01-26 22:47 UTC, Elijah Newren
accepted-commit_now Details | Review

Description Ken Harris 2004-09-09 23:21:20 UTC
Situation: Open Desktop Preferences -> Theme, click Theme Details, then Install
Theme... -- this is a modal dialog (you can't interact with Theme Details as
long as it's visible).

Case 1: Before you click "Install Theme...", right-click Theme Details, and
choose  "Put on all Workspaces".  Then click Install Theme..., and switch to
another workspace.  The modal dialog comes with you -- its parent was stuck, so
it sticks, too.  This is good.

Case 2: Make sure Theme Details is only on one workspace.  Click Install
Theme..., then go back and right-click on Theme Details (the parent window), and
"Put on all Workspaces".  Now switch to another workspace.  The Theme Details
window came with you, but it's a vegetable because it has a modal dialog window
that isn't on this workspace.  This is bad.

What I think should happen: if you put a window On All Workspaces, it should put
any modal children of it on all workspaces, too.  Right now, it does this if you
make it sticky before the dialog shows; I'm suggesting it should do this after
the dialog is shown, also.

The invariant I'm trying to maintain is something like "If there's a window with
a modal dialog, you shouldn't be able to see the window without the dialog". 
For example, you can't minimize a modal dialog.

Bug 126489 is similar, but different, I think.  That deals with one modal dialog
of 2 windows on different workspaces; this deals with one modal dialog of 1
window that's stuck on all workspaces.
Comment 1 Elijah Newren 2005-01-26 22:47:07 UTC
I really like your analogy to how things work with the case1/case2 behavior. 
Makes sense to me and your suggestion does sound like it would increase
consistency of the desktop.  However, you neglect some cases: (1) What about
transients that aren't modal?  If we stick modal transients, it would seem
inconsistent to not stick transients that were not modal.  So, I think we should
stick all transients.  (2) How about unsticking a window?  It seems weird to
stick transients when a parent is, but then to leave transient stuck when we
unstick the parent.  So, I think the same thing goes for unsticking a window.

I will attach a patch to do all this momentarily.  :)
Comment 2 Elijah Newren 2005-01-26 22:47:46 UTC
Created attachment 36571 [details] [review]
Stick/Unstick a window should cause the same operation to occur for transients
Comment 3 Havoc Pennington 2005-01-26 23:20:05 UTC
Comment on attachment 36571 [details] [review]
Stick/Unstick a window should cause the same operation to occur for transients

Seems sensible to me.
Comment 4 Elijah Newren 2005-01-26 23:25:19 UTC
committed.