summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorKristian Rietveld <kris@gtk.org>2003-07-12 13:44:31 +0000
committerKristian Rietveld <kristian@src.gnome.org>2003-07-12 13:44:31 +0000
commit97ddec66d63007dad350dfe3b8ca97e3f29eb2b1 (patch)
tree893230b1c27db126120f4f6fa45b85cdb6416de5 /gtk
parente680d2f5648e732d3f5bf2459e4f076e214d49dd (diff)
downloadgdk-pixbuf-97ddec66d63007dad350dfe3b8ca97e3f29eb2b1.tar.gz
Merged from stable.
Sat Jul 12 15:51:18 2003 Kristian Rietveld <kris@gtk.org> Merged from stable. * gtk/gtktreeview.c (gtk_tree_view_real_collapse_row): use gdk_window_get_pointer instead of gdk_display_get_window_at_pointer to avoid a roundtrip (#110272, Owen Taylor).
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtktreeview.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index c09717a8c..fda9f095f 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -9509,6 +9509,7 @@ gtk_tree_view_real_collapse_row (GtkTreeView *tree_view,
gint x, y;
GList *list;
GdkDisplay *display;
+ GdkWindow *child, *parent;
if (node->children == NULL)
return FALSE;
@@ -9655,12 +9656,19 @@ gtk_tree_view_real_collapse_row (GtkTreeView *tree_view,
* again. To do this, we fake a motion event and send it to ourselves. */
display = gdk_drawable_get_display (tree_view->priv->bin_window);
- if (gdk_display_get_window_at_pointer (display, &x, &y) == tree_view->priv->bin_window)
+ child = tree_view->priv->bin_window;
+ parent = gdk_window_get_parent (child);
+
+ if (gdk_window_get_pointer (parent, &x, &y, NULL) == child)
{
GdkEventMotion event;
+ gint child_x, child_y;
+
+ gdk_window_get_position (child, &child_x, &child_y);
+
event.window = tree_view->priv->bin_window;
- event.x = x;
- event.y = y;
+ event.x = x - child_x;
+ event.y = y - child_y;
/* despite the fact this isn't a real event, I'm almost positive it will
* never trigger a drag event. maybe_drag is the only function that uses