summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-05-18 16:46:12 +0000
committerMatthias Clasen <mclasen@redhat.com>2020-05-18 16:46:12 +0000
commit383fa6b0b0a2a8311acb2ccd480af0ac1a0462f7 (patch)
treec158c0ce6abe78f73b02527b0422f5d7fff48977
parent615b4d8c65b4140dcca15ba6cf43baf21c98dd5c (diff)
parentf637ab57f14c239fd5b6b50da646705f20cb9136 (diff)
downloadgtk+-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.c25
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));