]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/tbargtk.cpp
fixed serious bug in wxFont::operator== (ignored weight)
[wxWidgets.git] / src / gtk1 / tbargtk.cpp
index b78ce9d916df3e24127b852c73763c2b784f4536..e0e94b95f49cd8cccb317f14e5a71990ec2abd21 100644 (file)
@@ -128,12 +128,12 @@ static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget),
 }
 
 //-----------------------------------------------------------------------------
-// "enter_notify_event"
+// "enter_notify_event" / "leave_notify_event"
 //-----------------------------------------------------------------------------
 
-static gint gtk_toolbar_enter_callback( GtkWidget *WXUNUSED(widget), 
-                                        GdkEventCrossing *WXUNUSED(gdk_event),
-                                        wxToolBarTool *tool )
+static gint gtk_toolbar_tool_callback( GtkWidget *WXUNUSED(widget), 
+                                       GdkEventCrossing *gdk_event,
+                                       wxToolBarTool *tool )
 {
     if (g_isIdle) wxapp_install_idle_handler();
 
@@ -142,7 +142,10 @@ static gint gtk_toolbar_enter_callback( GtkWidget *WXUNUSED(widget),
     wxToolBar *tb = (wxToolBar *)tool->GetToolBar();
     
     // emit the event
-    tb->OnMouseEnter( tool->GetId() );
+    if( gdk_event->type == GDK_ENTER_NOTIFY )
+        tb->OnMouseEnter( tool->GetId() );
+    else
+        tb->OnMouseEnter( -1 );
   
     return FALSE;
 }
@@ -349,7 +352,11 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
 
             gtk_signal_connect( GTK_OBJECT(tool->m_item),
                                 "enter_notify_event", 
-                                GTK_SIGNAL_FUNC(gtk_toolbar_enter_callback),
+                                GTK_SIGNAL_FUNC(gtk_toolbar_tool_callback),
+                                (gpointer)tool );
+            gtk_signal_connect( GTK_OBJECT(tool->m_item),
+                                "leave_notify_event", 
+                                GTK_SIGNAL_FUNC(gtk_toolbar_tool_callback),
                                 (gpointer)tool );
             break;