summaryrefslogtreecommitdiff
path: root/gtk/gtkrange.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkrange.c')
-rw-r--r--gtk/gtkrange.c31
1 files changed, 22 insertions, 9 deletions
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index bb13aecab5..0d32f0bb02 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -35,6 +35,7 @@
#include "gtkorientableprivate.h"
#include "gtkrange.h"
#include "gtkscale.h"
+#include "gtkcolorscaleprivate.h"
#include "gtkscrollbar.h"
#include "gtkwindow.h"
#include "gtkprivate.h"
@@ -2010,6 +2011,7 @@ gtk_range_draw (GtkWidget *widget,
gint focus_padding = 0;
gboolean touchscreen;
gboolean draw_trough = TRUE;
+ gboolean draw_slider = TRUE;
GtkStyleContext *context;
context = gtk_widget_get_style_context (widget);
@@ -2019,7 +2021,15 @@ gtk_range_draw (GtkWidget *widget,
if (GTK_IS_SCALE (widget) &&
gtk_adjustment_get_upper (priv->adjustment) == gtk_adjustment_get_lower (priv->adjustment))
- draw_trough = FALSE;
+ {
+ draw_trough = TRUE;
+ draw_slider = FALSE;
+ }
+ if (GTK_IS_COLOR_SCALE (widget))
+ {
+ draw_trough = FALSE;
+ draw_slider = TRUE;
+ }
if (gtk_widget_get_can_focus (GTK_WIDGET (range)))
gtk_widget_style_get (GTK_WIDGET (range),
@@ -2188,13 +2198,6 @@ gtk_range_draw (GtkWidget *widget,
gtk_style_context_restore (context);
}
}
- else
- {
- gtk_render_background (context, cr,
- x, y, width, height);
- gtk_render_frame (context, cr,
- x, y, width, height);
- }
gtk_style_context_restore (context);
@@ -2270,7 +2273,7 @@ gtk_range_draw (GtkWidget *widget,
cairo_restore (cr);
- if (draw_trough)
+ if (draw_slider)
{
GtkStateFlags state = widget_state;
@@ -2545,6 +2548,16 @@ gtk_range_button_press (GtkWidget *widget,
if (gtk_range_update_mouse_location (range))
gtk_widget_queue_draw (widget);
+ if (priv->mouse_location == MOUSE_SLIDER &&
+ gdk_event_triggers_context_menu ((GdkEvent *)event))
+ {
+ gboolean handled;
+
+ g_signal_emit_by_name (widget, "popup-menu", &handled);
+
+ return TRUE;
+ }
+
if (priv->mouse_location == MOUSE_TROUGH &&
event->button == GDK_BUTTON_PRIMARY)
{