From: Robert Roebling Date: Wed, 16 May 2007 08:51:23 +0000 (+0000) Subject: [ 1718338 ] wxToolBarGTK: Implement tool right-click handling X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/729b47568addbc2cd18378a47cf6010428825f26 [ 1718338 ] wxToolBarGTK: Implement tool right-click handling git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/gtk/tbargtk.cpp b/src/gtk/tbargtk.cpp index 4fb659d824..85a0268c51 100644 --- a/src/gtk/tbargtk.cpp +++ b/src/gtk/tbargtk.cpp @@ -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;