summaryrefslogtreecommitdiff
path: root/gdk/gdkdnd.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>1999-01-09 00:21:37 +0000
committerOwen Taylor <otaylor@src.gnome.org>1999-01-09 00:21:37 +0000
commit95843529d1fb5efc65784f69245159fdbfe84822 (patch)
tree5e4f4673a31f4b74eb481e46ee14d1f575c11882 /gdk/gdkdnd.c
parentb56693d114a9033d5d371b668ac5304a88d6effd (diff)
downloadgtk+-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.c7
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