diff options
author | Owen Taylor <otaylor@redhat.com> | 1999-01-09 00:21:37 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 1999-01-09 00:21:37 +0000 |
commit | 95843529d1fb5efc65784f69245159fdbfe84822 (patch) | |
tree | 5e4f4673a31f4b74eb481e46ee14d1f575c11882 /gdk/gdkdnd.c | |
parent | b56693d114a9033d5d371b668ac5304a88d6effd (diff) | |
download | gtk+-95843529d1fb5efc65784f69245159fdbfe84822.tar.gz |
Fixed some list-manipulation breakage.
Fri Jan 8 19:00:17 1999 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c (gdk_window_cache_filter): Fixed
some list-manipulation breakage.
* gdk/gdkdnd.c (gdk_window_cache_destroy): Free
window cache structure.
* gtk/gtkdnd.c (gtk_drag_set_icon_pixmap): Set an
event mask on the drag window so clicking on it
doesn't pop up root menus, etc.
* gtk/gtkdnd.c (gtk_drag_button_release_cb): Remove
signal handlers at button release.
Diffstat (limited to 'gdk/gdkdnd.c')
-rw-r--r-- | gdk/gdkdnd.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gdk/gdkdnd.c b/gdk/gdkdnd.c index 728bdb7f5d..c3fdaa58be 100644 --- a/gdk/gdkdnd.c +++ b/gdk/gdkdnd.c @@ -1,5 +1,5 @@ /* GDK - The GIMP Drawing Kit - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * Copyright (C) 1995-1999 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -244,6 +244,8 @@ gdk_window_cache_filter (GdkXEvent *xev, { cache->children = g_list_remove_link (cache->children, node); node->next = above_node->next; + if (node->next) + node->next->prev = node; node->prev = above_node; above_node->next = node; } @@ -254,6 +256,7 @@ gdk_window_cache_filter (GdkXEvent *xev, case CreateNotify: { XCreateWindowEvent *xcwe = &xevent->xcreatewindow; + if (!g_hash_table_lookup (cache->child_hash, GUINT_TO_POINTER (xcwe->window))) gdk_window_cache_add (cache, xcwe->window, @@ -378,6 +381,8 @@ gdk_window_cache_destroy (GdkWindowCache *cache) g_list_foreach (cache->children, (GFunc)g_free, NULL); g_list_free (cache->children); g_hash_table_destroy (cache->child_hash); + + g_free (cache); } static Window |