? build.sh
? menutooltips.patch
? newcolors
? showattachment.cgi?attach_id=7415
? tooltipmenu
? gtk/menuclip.patch
? gtk/menufix
? gtk/menutooltips.patch
? tests/pixbuf-lowmem
? tests/pixbuf-random
? tests/pixbuf-random-image
? tests/pixbuf-random-seed
? tests/pixbuf-randomly-modified
? tests/pixbuf-randomly-modified-image
? tests/pixbuf-randomly-modified-seed
? tests/pixbuf-read
? tests/test-random-image
? tests/test-random-seed
? tests/test-randomly-modified-seed
? tests/tiffcrasher
? tests/test-images/tiff1_test_1
? tests/test-images/tiff1_test_2
? tests/test-images/tiff1_test_3
Index: gtk/gtkmenu.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkmenu.c,v
retrieving revision 1.102
diff -u -r1.102 gtkmenu.c
--- gtk/gtkmenu.c	16 May 2002 14:00:45 -0000	1.102
+++ gtk/gtkmenu.c	16 May 2002 21:17:33 -0000
@@ -86,6 +86,8 @@
 static void     gtk_menu_paint             (GtkWidget        *widget,
 					    GdkEventExpose   *expose);
 static void     gtk_menu_show              (GtkWidget        *widget);
+static gboolean gtk_menu_event             (GtkWidget	     *widget,
+					    GdkEvent         *event);
 static gboolean gtk_menu_expose            (GtkWidget        *widget,
 					    GdkEventExpose   *event);
 static gboolean gtk_menu_key_press         (GtkWidget        *widget,
@@ -199,6 +201,7 @@
   widget_class->size_request = gtk_menu_size_request;
   widget_class->size_allocate = gtk_menu_size_allocate;
   widget_class->show = gtk_menu_show;
+  widget_class->event = gtk_menu_event;
   widget_class->expose_event = gtk_menu_expose;
   widget_class->key_press_event = gtk_menu_key_press;
   widget_class->motion_notify_event = gtk_menu_motion_notify;
@@ -1845,6 +1848,24 @@
     }
   
   return TRUE;
+}
+
+static gboolean
+gtk_menu_event (GtkWidget    *widget,
+		GdkEvent     *event)
+{
+  GtkWidget *event_widget;
+  
+  /* Tooltips react to events on menu items, but since menus do
+   * gtk_grab_add(), menu items that aren't children of the current
+   * active menu don't see them.  So here we pass the motion event
+   * on to the menu item if it isn't one of our own children
+   */
+  event_widget = gtk_get_event_widget ((GdkEvent*) event);
+  if (GTK_IS_MENU_ITEM (event_widget) && event_widget->parent != widget)
+    gtk_widget_event (event_widget, event);
+  
+  return FALSE;
 }
 
 static gboolean
Index: tests/testgtk.c
===================================================================
RCS file: /cvs/gnome/gtk+/tests/testgtk.c,v
retrieving revision 1.306
diff -u -r1.306 testgtk.c
--- tests/testgtk.c	15 May 2002 21:46:42 -0000	1.306
+++ tests/testgtk.c	16 May 2002 21:17:35 -0000
@@ -3645,6 +3645,8 @@
 			    "Safe file", NULL);
       gtk_tooltips_set_tip (tooltips, gtk_item_factory_get_item (item_factory, "/File/Save As..."),
 			    "Save under a new name", NULL);
+      gtk_tooltips_set_tip (tooltips, gtk_item_factory_get_item (item_factory, "/Preferences/Color"),
+			    "Modify color", NULL);
 
       box1 = gtk_vbox_new (FALSE, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
