gtk2/gdk
Jasper St. Pierre 75ecdf50a3 wayland: Fix GtkMenuButton popups in a terrible, hacky way
Since you can't take grabs on unmapped windows, GtkMenu takes a grab on
the menu in a convoluted way: it first grabs another window, shows the
menu window, and then transfers the grab over to the GtkMenu widget.

For normal menubars, this is perfectly fine, as the first window it grabs
is our toplevel, and that gets picked up in our transient path.  For
GtkMenuButton or other spurious uses of gtk_menu_popup, it creates a new
temporary input-only window which it takes the grab on, known as the "grab
transfer window". Since this window isn't a transient-for of our new menu
widget window, the grab isn't noticed when we go to show it, and thus the
menu ends up as a new toplevel.

Add a special hack to GtkMenu and the Wayland backend which lets us notice
this "grab transfer window", and include it in our grab finding path.

It's sort of terrible to have to hack up the widgets instead of just the
backend, but the alternative would be an entirely new window type which is
managed correctly by GDK. I don't want to write that.
2014-05-15 18:02:45 -04:00
..
broadway broadway backend: allow building on OpenBSD 2014-04-18 18:20:34 +02:00
quartz all: Name more idles and timeouts 2014-03-26 20:09:30 -04:00
wayland wayland: Fix GtkMenuButton popups in a terrible, hacky way 2014-05-15 18:02:45 -04:00
win32 gdk/win32: VK_SNAPSHOT maps to GDK_Print 2014-04-24 16:31:09 +02:00
x11 all: Name more idles and timeouts 2014-03-26 20:09:30 -04:00
COPYING Change FSF Address 2012-02-27 17:06:11 +00:00
fallback-c89.c gdk/fallback-c89.c: Add fallback for round() 2013-03-13 13:22:46 +08:00
gdk.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdk.h Include public headers in gdk.h 2013-02-25 10:54:32 +01:00
gdkapplaunchcontext.c docs: replace all <examples> with markdown headings 2014-02-04 16:58:54 -05:00
gdkapplaunchcontext.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkapplaunchcontextprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkcairo.c gdk_cairo_surface_create_from_pixbuf: Add missing (allow-none) annotation 2014-03-12 11:50:55 -04:00
gdkcairo.h gdk: Add gdk_cairo_surface_create_from_pixbuf 2013-07-03 14:34:13 +02:00
gdkcolor.c docs: More uniform formatting 2014-04-04 01:25:14 -04:00
gdkcolor.h docs: use #*-struct instead of <structname> 2014-01-27 19:59:55 -05:00
gdkconfig.h.win32 Clean up the pre-configured gdkconfig.h.win32 2013-05-28 13:04:37 +08:00
gdkconfig.h.win32_broadway Add Visual Studio Build Support for Broadway 2013-08-02 11:20:19 +08:00
gdkcursor.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdkcursor.h docs: use markdown instead of inlinegraphic tags 2014-02-04 16:58:53 -05:00
gdkcursorprivate.h gdk: Add gdk_cursor_get_surface() 2013-08-07 13:34:10 +02:00
gdkdeprecated.c docs: use Returns: consistently 2014-02-19 18:56:05 -05:00
gdkdevice.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdkdevice.h Use GDK's current window tracking when synthesizing events in GTK+ 2014-03-12 23:03:53 -04:00
gdkdevicemanager.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdkdevicemanager.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkdevicemanagerprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkdeviceprivate.h gdk: Convert mouse position to doubles, add new getters 2013-07-03 14:39:25 +02:00
gdkdisplay.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdkdisplay.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkdisplaymanager.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdkdisplaymanager.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkdisplaymanagerprivate.h gdk: Unvfuncify gdk_display_manager_open_display() 2013-04-19 16:23:43 -04:00
gdkdisplayprivate.h Some struct repacking 2014-01-12 22:25:19 -05:00
gdkdnd.c docs: use Returns: consistently 2014-02-19 18:56:05 -05:00
gdkdnd.h docs: use apostrophes in *n't 2014-02-07 13:32:47 -05:00
gdkdndprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkenumtypes.c.template Include config.h in gdkenumtypes.c.template 2013-03-15 09:19:35 -04:00
gdkenumtypes.h.template Use GDK_AVAILABLE_IN_ALL for generated enum types 2013-05-05 15:38:46 -04:00
gdkevents.c gdk: Add new _gdk_set_window_state 2014-05-13 02:39:59 -04:00
gdkevents.h Deprecate GdkEventVisibility and ::visibility-notify-event 2014-03-03 21:39:03 -05:00
gdkframeclock.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdkframeclock.h docs: fix typo in type name 2014-01-20 18:27:28 -05:00
gdkframeclockidle.c Changed obsolete FSF portal addresses to web address 2014-01-12 19:56:49 +07:00
gdkframeclockidle.h Changed obsolete FSF portal addresses to web address 2014-01-12 19:56:49 +07:00
gdkframeclockprivate.h docs: add docs for GtkFrameClock 2014-01-20 18:27:28 -05:00
gdkframetimings.c docs: use proper apostrophe 2014-02-07 13:06:10 -05:00
gdkframetimings.h GdkFrameTimings: add documentation 2013-02-14 17:19:52 -05:00
gdkglobals.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkinternals.h gdk: Add new _gdk_set_window_state 2014-05-13 02:39:59 -04:00
gdkintl.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkkeynames.c Keep XF86 keysym names working 2013-04-19 20:11:39 -04:00
gdkkeys.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdkkeys.h Use proper quotes in gdk 2014-02-05 15:08:42 -05:00
gdkkeysprivate.h gdk: Refactor gdk_keyval_convert_case() 2013-04-16 15:30:14 +02:00
gdkkeysyms-compat.h Update gdkkeysyms.h header 2013-04-19 20:11:38 -04:00
gdkkeysyms-update.pl gdkkeysyms-update: Remove workarounds for old bugs 2013-07-17 16:40:05 -04:00
gdkkeysyms.h Update gdkkeysyms.h header 2013-04-19 20:11:38 -04:00
gdkkeyuni.c docs: use Returns: consistently 2014-02-19 18:56:05 -05:00
gdkmain.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkmarshalers.list Bug 631599 - Allow to use arbitrary surfaces for offscreen windows 2010-10-14 13:25:23 +02:00
gdkoffscreenwindow.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdkpango.c docs: Another round of markup removal 2014-03-29 00:24:15 -04:00
gdkpango.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkpixbuf-drawable.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdkpixbuf.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkprivate.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkproperty.c docs: use apostrophes in *n't 2014-02-07 13:32:47 -05:00
gdkproperty.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkrectangle.c docs: use proper apostrophe 2014-02-07 13:06:10 -05:00
gdkrectangle.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkrgba.c docs: use Returns: consistently 2014-02-19 18:56:05 -05:00
gdkrgba.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkscreen.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdkscreen.h Revert "Introduce API to get the preferred visual" 2014-02-10 22:15:28 -05:00
gdkscreenprivate.h Revert "Introduce API to get the preferred visual" 2014-02-10 22:15:28 -05:00
gdkselection.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdkselection.h docs: use ` instead of <literal> 2014-02-04 18:24:29 -05:00
gdktestutils.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkthreads.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdktypes.h Docs: remove some leftover markup 2014-03-28 23:51:52 -04:00
gdkversionmacros.h.in Add GDK_VERSION_3_14 2014-04-23 23:25:07 -04:00
gdkvisual.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdkvisual.h docs: use #*-struct instead of <structname> 2014-01-27 19:59:55 -05:00
gdkvisualprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkwindow.c gdk: add many missing (nullable) return value annotations 2014-05-11 11:48:32 -04:00
gdkwindow.h docs: use apostrophes in *n't 2014-02-07 13:32:47 -05:00
gdkwindowimpl.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkwindowimpl.h Implement get_root_origin generically for all backends 2014-03-17 15:51:46 -04:00
gdkx.h Change FSF Address 2012-02-27 17:06:11 +00:00
gen-keyname-table.pl gdk: Make gen-keyname-table.pl work again 2011-10-26 10:36:43 +01:00
keyname-table.h docs: use proper quotations instead of '*' 2014-02-07 14:22:39 -05:00
keynames-translate.txt Add AudioMicMute 2013-07-17 17:52:19 -04:00
keynames.txt Fix key "Page_Down" identified as "Next" 2013-10-24 18:48:33 -04:00
Makefile.am Give CC to instrospection scanner 2014-04-01 11:50:35 +00:00
makefile.msc win32: gdk3 resurrection 2011-01-02 13:33:04 +01:00