diff options
author | Matthias Clasen <mclasen@redhat.com> | 2018-01-10 18:38:00 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2018-01-16 14:14:10 -0500 |
commit | 75c92ba867fe4fef74940a386dc8e6dd15eab811 (patch) | |
tree | 17b79b22016b036b0ecfd21ac7000480c43abd58 /demos | |
parent | 33e2f31de4b75c0cd7778f10b7392549e05802bc (diff) | |
download | gtk+-75c92ba867fe4fef74940a386dc8e6dd15eab811.tar.gz |
gtk-demo: Stop using ::button-press-event
Use gestures instead.
Diffstat (limited to 'demos')
-rw-r--r-- | demos/gtk-demo/clipboard.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/demos/gtk-demo/clipboard.c b/demos/gtk-demo/clipboard.c index 354af06cbb..4615cdc0c6 100644 --- a/demos/gtk-demo/clipboard.c +++ b/demos/gtk-demo/clipboard.c @@ -207,34 +207,29 @@ paste_image (GtkMenuItem *item, data); } -static gboolean -button_press (GtkWidget *widget, - GdkEventButton *event, - gpointer data) +static void +pressed_cb (GtkGesture *gesture, + int n_press, + double x, + double y, + GtkWidget *image) { GtkWidget *menu; GtkWidget *item; - guint button; - - gdk_event_get_button ((GdkEvent *)event, &button); - - if (button != GDK_BUTTON_SECONDARY) - return FALSE; menu = gtk_menu_new (); item = gtk_menu_item_new_with_mnemonic (_("_Copy")); - g_signal_connect (item, "activate", G_CALLBACK (copy_image), data); + g_signal_connect (item, "activate", G_CALLBACK (copy_image), image); gtk_widget_show (item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new_with_mnemonic (_("_Paste")); - g_signal_connect (item, "activate", G_CALLBACK (paste_image), data); + g_signal_connect (item, "activate", G_CALLBACK (paste_image), image); gtk_widget_show (item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); - gtk_menu_popup_at_pointer (GTK_MENU (menu), (GdkEvent *) event); - return TRUE; + gtk_menu_popup_at_pointer (GTK_MENU (menu), NULL); } GtkWidget * @@ -246,6 +241,7 @@ do_clipboard (GtkWidget *do_widget) GtkWidget *label; GtkWidget *entry, *button; GtkWidget *image; + GtkGesture *gesture; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_display (GTK_WINDOW (window), @@ -322,8 +318,10 @@ do_clipboard (GtkWidget *do_widget) G_CALLBACK (drag_data_received), image); /* context menu on image */ - g_signal_connect (image, "button-press-event", - G_CALLBACK (button_press), image); + gesture = gtk_gesture_multi_press_new (image); + gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), GDK_BUTTON_SECONDARY); + g_object_set_data_full (G_OBJECT (image), "gesture", gesture, g_object_unref); + g_signal_connect (gesture, "pressed", G_CALLBACK (pressed_cb), image); /* Create the second image */ image = gtk_image_new_from_icon_name ("process-stop"); @@ -345,8 +343,10 @@ do_clipboard (GtkWidget *do_widget) G_CALLBACK (drag_data_received), image); /* context menu on image */ - g_signal_connect (image, "button-press-event", - G_CALLBACK (button_press), image); + gesture = gtk_gesture_multi_press_new (image); + gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), GDK_BUTTON_SECONDARY); + g_object_set_data_full (G_OBJECT (image), "gesture", gesture, g_object_unref); + g_signal_connect (gesture, "pressed", G_CALLBACK (pressed_cb), image); } if (!gtk_widget_get_visible (window)) |