From: Matthias Clasen Date: Mon, 18 May 2020 15:31:42 +0000 (-0400) Subject: colorscale: Bring back the right-click on slider X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~17^2~2^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f637ab57f14c239fd5b6b50da646705f20cb9136;p=gtk4.git colorscale: Bring back the right-click on slider This was lost when we converted the color editor to actions. --- diff --git a/gtk/gtkcolorscale.c b/gtk/gtkcolorscale.c index 2471687e4f..8f7354ab7d 100644 --- a/gtk/gtkcolorscale.c +++ b/gtk/gtkcolorscale.c @@ -21,6 +21,7 @@ #include "gtkcolorchooserprivate.h" #include "gtkgesturelongpress.h" +#include "gtkgestureclick.h" #include "gtkcolorutils.h" #include "gtkorientable.h" #include "gtkrangeprivate.h" @@ -53,6 +54,12 @@ static void hold_action (GtkGestureLongPress *gesture, gdouble y, GtkWidget *scale); +static void click_action (GtkGestureClick *gesture, + guint n_presses, + double x, + double y, + GtkWidget *scale); + G_DEFINE_TYPE_WITH_PRIVATE (GtkColorScale, gtk_color_scale, GTK_TYPE_SCALE) void @@ -160,6 +167,12 @@ gtk_color_scale_init (GtkColorScale *scale) GTK_PHASE_TARGET); gtk_widget_add_controller (GTK_WIDGET (scale), GTK_EVENT_CONTROLLER (gesture)); + gesture = gtk_gesture_click_new (); + gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (gesture), GDK_BUTTON_SECONDARY); + g_signal_connect (gesture, "pressed", + G_CALLBACK (click_action), scale); + gtk_widget_add_controller (GTK_WIDGET (scale), GTK_EVENT_CONTROLLER (gesture)); + gtk_widget_add_css_class (GTK_WIDGET (scale), "color"); } @@ -256,6 +269,18 @@ hold_action (GtkGestureLongPress *gesture, "s", gtk_widget_get_name (scale)); } +static void +click_action (GtkGestureClick *gesture, + guint n_presses, + double x, + double y, + GtkWidget *scale) +{ + gtk_widget_activate_action (scale, + "color.edit", + "s", gtk_widget_get_name (scale)); +} + static void scale_finalize (GObject *object) {