diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-05-18 16:46:12 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-05-18 16:46:12 +0000 |
commit | 383fa6b0b0a2a8311acb2ccd480af0ac1a0462f7 (patch) | |
tree | c158c0ce6abe78f73b02527b0422f5d7fff48977 | |
parent | 615b4d8c65b4140dcca15ba6cf43baf21c98dd5c (diff) | |
parent | f637ab57f14c239fd5b6b50da646705f20cb9136 (diff) | |
download | gtk+-383fa6b0b0a2a8311acb2ccd480af0ac1a0462f7.tar.gz |
Merge branch 'matthiasc/for-master' into 'master'
colorscale: Bring back the right-click on slider
See merge request GNOME/gtk!1933
-rw-r--r-- | gtk/gtkcolorscale.c | 25 |
1 files changed, 25 insertions, 0 deletions
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"); } @@ -257,6 +270,18 @@ hold_action (GtkGestureLongPress *gesture, } 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) { GtkColorScalePrivate *priv = gtk_color_scale_get_instance_private (GTK_COLOR_SCALE (object)); |