[gtk+] testgtk: Use an event controller for 'testing scrolling'
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] testgtk: Use an event controller for 'testing scrolling'
- Date: Tue, 16 Jan 2018 19:16:30 +0000 (UTC)
commit 6ac33215a598245fe71f11c46a92e3b2d0e184d9
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Jan 1 10:59:48 2018 -0500
testgtk: Use an event controller for 'testing scrolling'
The current code was not working with smooth scroll events,
for starters.
tests/testgtk.c | 26 ++++++++++++--------------
1 files changed, 12 insertions(+), 14 deletions(-)
---
diff --git a/tests/testgtk.c b/tests/testgtk.c
index 5aafd00..9eb693f 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -7057,21 +7057,17 @@ scroll_test_draw (GtkDrawingArea *darea,
cairo_fill (cr);
}
-static gint
-scroll_test_scroll (GtkWidget *widget, GdkEventScroll *event,
- GtkAdjustment *adjustment)
+static void
+scroll_test_scroll (GtkEventControllerScroll *scroll,
+ double dx,
+ double dy,
+ GtkAdjustment *adjustment)
{
- GdkScrollDirection direction;
gdouble new_value;
- gdk_event_get_scroll_direction ((GdkEvent *)event, &direction);
- new_value = gtk_adjustment_get_value (adjustment) + (direction == GDK_SCROLL_UP ?
- -gtk_adjustment_get_page_increment (adjustment) / 2:
- gtk_adjustment_get_page_increment (adjustment) / 2);
+ new_value = gtk_adjustment_get_value (adjustment) + dy * gtk_adjustment_get_page_increment (adjustment) /
2;
new_value = CLAMP (new_value, gtk_adjustment_get_lower (adjustment), gtk_adjustment_get_upper (adjustment)
- gtk_adjustment_get_page_size (adjustment));
- gtk_adjustment_set_value (adjustment, new_value);
-
- return TRUE;
+ gtk_adjustment_set_value (adjustment, new_value);
}
static void
@@ -7116,6 +7112,7 @@ create_scroll_test (GtkWidget *widget)
GtkWidget *drawing_area;
GtkWidget *scrollbar;
GtkAdjustment *adjustment;
+ GtkEventController *controller;
if (!window)
{
@@ -7157,9 +7154,10 @@ create_scroll_test (GtkWidget *widget)
g_signal_connect (drawing_area, "configure_event",
G_CALLBACK (scroll_test_configure), adjustment);
- g_signal_connect (drawing_area, "scroll_event",
- G_CALLBACK (scroll_test_scroll), adjustment);
-
+ controller = gtk_event_controller_scroll_new (drawing_area, GTK_EVENT_CONTROLLER_SCROLL_VERTICAL);
+ g_object_set_data_full (G_OBJECT (drawing_area), "scroll", controller, g_object_unref);
+ g_signal_connect (controller, "scroll", G_CALLBACK (scroll_test_scroll), adjustment);
+
g_signal_connect (adjustment, "value_changed",
G_CALLBACK (scroll_test_adjustment_changed),
drawing_area);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]