Free the translate queue when closing a display
Not that many people are ever going to hit this. https://bugzilla.gnome.org/show_bug.cgi?id=645236
This commit is contained in:
@ -1729,6 +1729,9 @@ gdk_x11_display_finalize (GObject *object)
|
|||||||
|
|
||||||
_gdk_x11_cursor_display_finalize (GDK_DISPLAY (display_x11));
|
_gdk_x11_cursor_display_finalize (GDK_DISPLAY (display_x11));
|
||||||
|
|
||||||
|
/* Empty the event queue */
|
||||||
|
_gdk_x11_display_free_translate_queue (GDK_DISPLAY (display_x11));
|
||||||
|
|
||||||
/* Atom Hashtable */
|
/* Atom Hashtable */
|
||||||
g_hash_table_destroy (display_x11->atom_from_virtual);
|
g_hash_table_destroy (display_x11->atom_from_virtual);
|
||||||
g_hash_table_destroy (display_x11->atom_to_virtual);
|
g_hash_table_destroy (display_x11->atom_to_virtual);
|
||||||
|
@ -153,6 +153,19 @@ queue_item_free (GdkWindowQueueItem *item)
|
|||||||
g_free (item);
|
g_free (item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_gdk_x11_display_free_translate_queue (GdkDisplay *display)
|
||||||
|
{
|
||||||
|
GdkX11Display *display_x11 = GDK_X11_DISPLAY (display);
|
||||||
|
|
||||||
|
if (display_x11->translate_queue)
|
||||||
|
{
|
||||||
|
g_queue_foreach (display_x11->translate_queue, (GFunc)queue_item_free, NULL);
|
||||||
|
g_queue_free (display_x11->translate_queue);
|
||||||
|
display_x11->translate_queue = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gdk_window_queue (GdkWindow *window,
|
gdk_window_queue (GdkWindow *window,
|
||||||
GdkWindowQueueItem *item)
|
GdkWindowQueueItem *item)
|
||||||
|
@ -138,6 +138,8 @@ void _gdk_x11_window_translate (GdkWindow *window,
|
|||||||
gint dx,
|
gint dx,
|
||||||
gint dy);
|
gint dy);
|
||||||
|
|
||||||
|
void _gdk_x11_display_free_translate_queue (GdkDisplay *display);
|
||||||
|
|
||||||
void _gdk_x11_selection_window_destroyed (GdkWindow *window);
|
void _gdk_x11_selection_window_destroyed (GdkWindow *window);
|
||||||
gboolean _gdk_x11_selection_filter_clear_event (XSelectionClearEvent *event);
|
gboolean _gdk_x11_selection_filter_clear_event (XSelectionClearEvent *event);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user