Index: gtk/gtktooltip.c
===================================================================
--- gtk/gtktooltip.c	(revision 18540)
+++ gtk/gtktooltip.c	(working copy)
@@ -523,6 +523,9 @@ find_widget_under_pointer (GdkWindow *wi
 
   gdk_window_get_user_data (window, (void **)&event_widget);
 
+  while (event_widget && GTK_WIDGET_NO_WINDOW (event_widget))
+    event_widget = gtk_widget_get_parent (event_widget);
+
   if (!event_widget)
     return NULL;
 
@@ -540,12 +543,6 @@ find_widget_under_pointer (GdkWindow *wi
       window = gdk_window_get_parent (window);
     }
 
-  if (GTK_WIDGET_NO_WINDOW (event_widget))
-    {
-      child_loc.x += event_widget->allocation.x;
-      child_loc.y += event_widget->allocation.y;
-    }
-
   /* Failing to find widget->window can happen for e.g. a detached handle box;
    * chaining ::query-tooltip up to its parent probably makes little sense,
    * and users better implement tooltips on handle_box->child.
