]> git.saurik.com Git - wxWidgets.git/commitdiff
[ 1718338 ] wxToolBarGTK: Implement tool right-click handling
authorRobert Roebling <robert@roebling.de>
Wed, 16 May 2007 08:51:23 +0000 (08:51 +0000)
committerRobert Roebling <robert@roebling.de>
Wed, 16 May 2007 08:51:23 +0000 (08:51 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/gtk/tbargtk.cpp

index 4fb659d82427ffee8c79cc901cee5f172a057085..85a0268c517acbf9698c1fe9a957e163ed57fcc3 100644 (file)
@@ -187,6 +187,30 @@ static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget),
 }
 }
 
+//-----------------------------------------------------------------------------
+// "right-click"
+//-----------------------------------------------------------------------------
+extern "C" {
+static gboolean gtk_toolbar_tool_rclick_callback(GtkWidget *WXUNUSED(widget),
+                                                 GdkEventButton *event,
+                                                 wxToolBarToolBase *tool)
+{
+    if (event->button != 3)
+        return FALSE;
+
+    wxToolBar *tbar = (wxToolBar *)tool->GetToolBar();
+
+    if (tbar->m_blockEvent) return TRUE;
+
+    if (g_blockEventsOnDrag) return TRUE;
+    if (!tool->IsEnabled()) return TRUE;
+
+    tbar->OnRightClick( tool->GetId(), (int)event->x, (int)event->y );
+
+    return TRUE;
+}
+}
+
 //-----------------------------------------------------------------------------
 // "enter_notify_event" / "leave_notify_event"
 //-----------------------------------------------------------------------------
@@ -452,6 +476,9 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
                 g_signal_connect (tool->m_item, "leave_notify_event",
                                   G_CALLBACK (gtk_toolbar_tool_callback),
                                   tool);
+                g_signal_connect(tool->m_item, "button-press-event",
+                                  G_CALLBACK (gtk_toolbar_tool_rclick_callback),
+                                  tool);
             }
             break;