GNOME Bugzilla – Bug 439532
volume widget doesn't work on gtk-quartz
Last modified: 2018-02-10 03:28:21 UTC
The volume widget that is proposed in #415775 does not work correctly on gtk-quartz. Specifically, the input grabbing / releasing appears broken. When the scale is popped up, clicking on the desktop, statusbar of the app or panel does not hide the scale. Clicking on another app or elsewhere within the app does.
Popup windows generally don't work at all, there is a problem with grab emulation (there is no real grabbing so it has to be emulated) in combination with getting the event widget right when there is a grab in effect. This also affects menus and combo boxes and other popups.
I have time, what's the proposed way to fix it. Or should I just dig in and try whatever?
Cool! I think we are dealing with a number of separate bugs which makes it a bit hard to know where to begin. I have used combo boxes as a test case mainly. The problems I have seen that I can remember off-hand are: 1. When popping up a popup that grabs the mouse with owner_events set, the events are still reported on the grabbed widget. 2. Since it's not possible to do real grabs, we have to make sure the grab is broken when doing things like clicking the window title (or moving it or double-clicking it) of other windows while a popup is up. 3. It looks to me like we are sending out synthized crossing events wrongly when moving across windows (I would need to look up some X documentation to see how it is supposed to be). 4. Related to the others probably. If you click a no-window widget in another widget of the same app as the popup, the popup doesnt' get the right event widget, and the window you click actually gets focus. We will have to either make the focus not being able to change during grabs (if that is possible, not sure yet) or break the grab when that is done. All the above belong in gdkevents-quartz.c. Also related is the code in GdkQuartzWindow.c that decides if a window can get focus (canBecomeKey/Main or something like that).
This block is also related, and bogus: gdkwindow-quartz.c: /* If the point is in the title bar, ignore it */
Are you looking actively at this? The reason I'm asking is because I am running into the same code path when fixing tooltips and have started to fix it.
Not yet. In general, don't bother holding patches back to me, I'm used to frequently updating / merging, that's fine with me.
The problems I mentioned above are fixed now in svn. I'll take a look at the remaining now (popping down when clicking on the status bar and dock, those needs to be special cased somehow).
*** Bug 660282 has been marked as a duplicate of this bug. ***
We're moving to gitlab! As part of this move, we are closing bugs that haven't seen activity in more than 5 years. If this issue is still imporant to you and still relevant with GTK+ 3.22 or master, please consider creating a gitlab issue for it.