aboutsummaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
Diffstat (limited to 'shell')
-rw-r--r--shell/e-shell-switcher.c9
-rw-r--r--shell/e-shell-view.c25
-rw-r--r--shell/e-shell-view.h2
3 files changed, 23 insertions, 13 deletions
diff --git a/shell/e-shell-switcher.c b/shell/e-shell-switcher.c
index 195dc7c896..9e8f9a3a44 100644
--- a/shell/e-shell-switcher.c
+++ b/shell/e-shell-switcher.c
@@ -609,15 +609,20 @@ tool_item_get_button (GtkWidget *widget)
static gboolean
tool_item_button_cb (GtkWidget *internal_widget,
- GdkEventButton *event,
+ GdkEvent *button_event,
GtkAction *action)
{
+ guint event_button = 0;
+
g_return_val_if_fail (GTK_IS_ACTION (action), FALSE);
- if (event->button == 2) {
+ gdk_event_get_button (button_event, &event_button);
+
+ if (event_button == 2) {
gtk_action_activate (action);
return TRUE;
}
+
return FALSE;
}
diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c
index 90fdbc852e..16d09fcb2d 100644
--- a/shell/e-shell-view.c
+++ b/shell/e-shell-view.c
@@ -1786,7 +1786,7 @@ e_shell_view_unblock_update_actions (EShellView *shell_view)
* e_shell_view_show_popup_menu:
* @shell_view: an #EShellView
* @widget_path: path in the UI definition
- * @event: a #GdkEventButton
+ * @button_event: a #GdkEvent, or %NULL
*
* Displays a context-sensitive (or "popup") menu that is described in
* the UI definition loaded into @shell_view<!-- -->'s user interface
@@ -1801,10 +1801,12 @@ e_shell_view_unblock_update_actions (EShellView *shell_view)
GtkWidget *
e_shell_view_show_popup_menu (EShellView *shell_view,
const gchar *widget_path,
- GdkEventButton *event)
+ GdkEvent *button_event)
{
EShellWindow *shell_window;
GtkWidget *menu;
+ guint event_button = 0;
+ guint32 event_time;
g_return_val_if_fail (E_IS_SHELL_VIEW (shell_view), NULL);
@@ -1814,14 +1816,17 @@ e_shell_view_show_popup_menu (EShellView *shell_view,
menu = e_shell_window_get_managed_widget (shell_window, widget_path);
g_return_val_if_fail (GTK_IS_MENU (menu), NULL);
- if (event != NULL)
- gtk_menu_popup (
- GTK_MENU (menu), NULL, NULL, NULL, NULL,
- event->button, event->time);
- else
- gtk_menu_popup (
- GTK_MENU (menu), NULL, NULL, NULL, NULL,
- 0, gtk_get_current_event_time ());
+ if (button_event != NULL) {
+ gdk_event_get_button (button_event, &event_button);
+ event_time = gdk_event_get_time (button_event);
+ } else {
+ event_time = gtk_get_current_event_time ();
+ }
+
+ gtk_menu_popup (
+ GTK_MENU (menu),
+ NULL, NULL, NULL, NULL,
+ event_button, event_time);
return menu;
}
diff --git a/shell/e-shell-view.h b/shell/e-shell-view.h
index 736af40b6a..fe2b63c5b2 100644
--- a/shell/e-shell-view.h
+++ b/shell/e-shell-view.h
@@ -225,7 +225,7 @@ void e_shell_view_unblock_update_actions
(EShellView *shell_view);
GtkWidget * e_shell_view_show_popup_menu (EShellView *shell_view,
const gchar *widget_path,
- GdkEventButton *event);
+ GdkEvent *button_event);
GalViewInstance *
e_shell_view_new_view_instance (EShellView *shell_view,
const gchar *instance_id);