gtk2/gdk
Emmanuele Bassi 79c3ff3c4e threads: Do not release the GDK lock if it hasn't been acquired yet
Since GLib ≥ 2.41, attempting to release an unlocked mutex will abort(),
as it happens on most systems already.

Given the lack of proper documentation on how to use GDK with threads,
there is code in the wild that does:

    gdk_threads_init ();
    gdk_init ();

    ...

    gtk_main ();

instead of the idiomatically correct:

    gdk_threads_init ();
    gdk_threads_enter ();

    gtk_init ();

    ...

    gtk_main ();

    ...

    gdk_threads_leave ();

Which means that gtk_main() will try to release the GDK lock, and thus
trigger an error from GLib.

we cannot really fix all the wrong code everywhere, and since it does
not cost us anything, we can work around the issue inside GDK itself, by
trying to acquire the GDK lock inside gdk_threads_leave() with
trylock().

https://bugzilla.gnome.org/show_bug.cgi?id=735428
2014-08-26 20:07:33 -04:00
..
broadway Cleanup invalid comments (duplication of words) 2014-08-26 19:55:38 -04:00
deprecated Mark the GdkColor struct as deprecated 2014-08-20 17:19:30 +02:00
quartz gdkwindow-quartz: Support native fullscreen mode 2014-08-25 12:52:47 +02:00
wayland wayland: Fix x/y coordinate arguments on wl_data_device events 2014-08-26 14:46:13 +02:00
win32 win32: Set the right source device 2014-08-15 13:04:57 -04:00
x11 x11: Fix possible leak of GdkEvents 2014-08-22 13:24:48 +02: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 threads: Do not release the GDK lock if it hasn't been acquired yet 2014-08-26 20:07:33 -04:00
gdk.h Deprecate GdkColor 2014-05-22 09:09:55 -04: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 Revert "docs: Fix broken gtk-doc formatting" 2014-08-18 08:18:02 -04:00
gdkcairo.h Deprecate GdkColor 2014-05-22 09:09:55 -04: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: assorted introspection and documentation fixes 2014-05-19 11:47:59 -07:00
gdkcursor.h Drop GDK_MULTIHEAD_SAFE 2014-06-11 21:55:15 -04: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: Explain the relation between device type and mode 2014-07-21 22:16:04 +02: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: Document the behavior of device grabs on slave devices 2014-07-21 22:16:05 +02: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: assorted introspection and documentation fixes 2014-05-19 11:47:59 -07: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 GdkDisplay: Remove unused GdkKeyboardGrabInfo struct 2014-06-11 08:30:04 +12:00
gdkdnd.c gdk: assorted introspection and documentation fixes 2014-05-19 11:47:59 -07: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 Drop GDK_MULTIHEAD_SAFE 2014-06-11 21:55:15 -04:00
gdkevents.h Drop GDK_MULTIHEAD_SAFE 2014-06-11 21:55:15 -04: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 Handle resolution changes in the GDK backend code 2014-07-13 15:35:23 -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 Drop GDK_MULTIHEAD_SAFE 2014-06-11 21:55:15 -04: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 Drop GDK_MULTIHEAD_SAFE 2014-06-11 21:55:15 -04:00
gdkmarshalers.list Bug 631599 - Allow to use arbitrary surfaces for offscreen windows 2010-10-14 13:25:23 +02:00
gdkoffscreenwindow.c gdkwindow: Provide a default implementation of process_updates_recurse 2014-06-22 10:20:50 -04:00
gdkpango.c docs: Another round of markup removal 2014-03-29 00:24:15 -04:00
gdkpango.h Drop GDK_MULTIHEAD_SAFE 2014-06-11 21:55:15 -04:00
gdkpixbuf-drawable.c Forgotten file 2014-05-22 09:31:15 -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 Handle resolution changes in the GDK backend code 2014-07-13 15:35:23 -04:00
gdkscreen.h Revert "Introduce API to get the preferred visual" 2014-02-10 22:15:28 -05:00
gdkscreenprivate.h Handle resolution changes in the GDK backend code 2014-07-13 15:35:23 -04:00
gdkselection.c gdk: assorted introspection and documentation fixes 2014-05-19 11:47:59 -07:00
gdkselection.h Drop GDK_MULTIHEAD_SAFE 2014-06-11 21:55:15 -04: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 Drop GDK_MULTIHEAD_SAFE 2014-06-11 21:55:15 -04:00
gdkvisualprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkwindow.c Cleanup invalid comments (duplication of words) 2014-08-26 19:55:38 -04:00
gdkwindow.h gdk: Add GDK_WINDOW_SUBSURFACE window type 2014-08-26 12:58:13 +02:00
gdkwindowimpl.c gdkwindow: Provide a default implementation of process_updates_recurse 2014-06-22 10:20:50 -04:00
gdkwindowimpl.h gdkwindow: Don't bother with a return parameter for queue_antiexpose 2014-06-21 18:45:39 -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 Fix various warnings about unused things 2014-08-13 23:38:47 +00:00
makefile.msc win32: gdk3 resurrection 2011-01-02 13:33:04 +01:00