1 From f2c762968b02b73323a75a723ad664ff1645abde Mon Sep 17 00:00:00 2001
2 From: Michael Natterer <mitch@gimp.org>
3 Date: Fri, 31 Aug 2012 16:24:07 +0200
4 Subject: [PATCH 17/68] gtk: handle gtk-primary-button-warps-slider for the
8 gtk/gtkscrolledwindow.c | 38 +++++++++++++++++++++++++++++++++-----
9 1 file changed, 33 insertions(+), 5 deletions(-)
11 diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
12 index 7680f5d..02745b1 100644
13 --- a/gtk/gtkscrolledwindow.c
14 +++ b/gtk/gtkscrolledwindow.c
15 @@ -2725,6 +2725,10 @@ gtk_scrolled_window_scroll_step_timeout (gpointer data)
19 +gtk_scrolled_window_captured_motion_notify_scrollbar (GtkWidget *widget,
23 gtk_scrolled_window_captured_button_press_scrollbar (GtkWidget *widget,
26 @@ -2808,12 +2812,36 @@ gtk_scrolled_window_captured_button_press_scrollbar (GtkWidget *widget,
27 if ((priv->sb_grab_vscroll || priv->sb_grab_hscroll) &&
28 !priv->sb_drag_slider)
30 - gtk_scrolled_window_scroll_step (scrolled_window);
31 + gboolean primary_warps;
33 + g_object_get (gtk_widget_get_settings (widget),
34 + "gtk-primary-button-warps-slider", &primary_warps,
39 + GdkEventMotion mevent = { 0, };
41 + priv->sb_drag_slider = TRUE;
42 + priv->sb_grab_offset_x = hslider_rect.width / 2;
43 + priv->sb_grab_offset_y = vslider_rect.height / 2;
45 + mevent.window = bevent->window;
46 + mevent.x = bevent->x;
47 + mevent.y = bevent->y;
49 - priv->sb_scroll_timeout_id =
50 - gdk_threads_add_timeout (SCROLL_INTERVAL_INITIAL,
51 - gtk_scrolled_window_scroll_step_timeout,
53 + gtk_scrolled_window_captured_motion_notify_scrollbar (widget,
54 + (GdkEvent *) &mevent);
58 + gtk_scrolled_window_scroll_step (scrolled_window);
60 + priv->sb_scroll_timeout_id =
61 + gdk_threads_add_timeout (SCROLL_INTERVAL_INITIAL,
62 + gtk_scrolled_window_scroll_step_timeout,
69 1.7.10.2 (Apple Git-33)