gnucash maint: Multiple changes pushed
John Ralls
jralls at code.gnucash.org
Mon Mar 7 12:18:18 EST 2022
Updated via https://github.com/Gnucash/gnucash/commit/f8fda225 (commit)
via https://github.com/Gnucash/gnucash/commit/b5e0abd3 (commit)
from https://github.com/Gnucash/gnucash/commit/3ab1d32f (commit)
commit f8fda225b83d03d2f8ea14a22ed2d427a7f20f39
Author: John Ralls <jralls at ceridwen.us>
Date: Mon Mar 7 09:17:59 2022 -0800
[register] Enable horizontal scrolling with a touchpad.
diff --git a/gnucash/register/register-gnome/gnucash-sheet.c b/gnucash/register/register-gnome/gnucash-sheet.c
index 218aeb462..acbfcb01c 100644
--- a/gnucash/register/register-gnome/gnucash-sheet.c
+++ b/gnucash/register/register-gnome/gnucash-sheet.c
@@ -1362,12 +1362,21 @@ gnucash_sheet_button_release_event (GtkWidget *widget, GdkEventButton *event)
return TRUE;
}
+static float
+clamp_scrollable_value (float value, GtkAdjustment* adj)
+{
+ float lower = gtk_adjustment_get_lower (adj);
+ float upper = gtk_adjustment_get_upper (adj);
+ float size = gtk_adjustment_get_page_size (adj);
+ return CLAMP(value, lower, upper - size);
+
+}
static gboolean
gnucash_scroll_event (GtkWidget *widget, GdkEventScroll *event)
{
GnucashSheet *sheet;
GtkAdjustment *vadj;
- gfloat v_value;
+ gfloat h_value, v_value;
g_return_val_if_fail (widget != NULL, TRUE);
g_return_val_if_fail (GNUCASH_IS_SHEET(widget), TRUE);
@@ -1386,14 +1395,16 @@ gnucash_scroll_event (GtkWidget *widget, GdkEventScroll *event)
v_value += gtk_adjustment_get_step_increment (vadj);
break;
case GDK_SCROLL_SMOOTH:
+ h_value = gtk_adjustment_get_value (sheet->hadj);
+ h_value += event->delta_x;
+ h_value = clamp_scrollable_value (h_value, sheet->hadj);
+ gtk_adjustment_set_value (sheet->hadj, h_value);
v_value += event->delta_y;
break;
default:
return FALSE;
}
- v_value = CLAMP(v_value, gtk_adjustment_get_lower (vadj),
- gtk_adjustment_get_upper (vadj) - gtk_adjustment_get_page_size (vadj));
-
+ v_value = clamp_scrollable_value (v_value, vadj);
gtk_adjustment_set_value (vadj, v_value);
if (event->delta_y == 0)
commit b5e0abd30ea56b6401ba01e4b8ed383f1953bddb
Author: John Ralls <jralls at ceridwen.us>
Date: Mon Mar 7 09:04:52 2022 -0800
https://bugs.gnucash.org/show_bug.cgi?id=797610
Trackpad scrolling events include an increment so use that instead of
the step size intended for scroll wheels.
diff --git a/gnucash/register/register-gnome/gnucash-sheet.c b/gnucash/register/register-gnome/gnucash-sheet.c
index 03581106b..218aeb462 100644
--- a/gnucash/register/register-gnome/gnucash-sheet.c
+++ b/gnucash/register/register-gnome/gnucash-sheet.c
@@ -1386,10 +1386,7 @@ gnucash_scroll_event (GtkWidget *widget, GdkEventScroll *event)
v_value += gtk_adjustment_get_step_increment (vadj);
break;
case GDK_SCROLL_SMOOTH:
- if (event->delta_y < 0)
- v_value -= gtk_adjustment_get_step_increment (vadj);
- if (event->delta_y > 0)
- v_value += gtk_adjustment_get_step_increment (vadj);
+ v_value += event->delta_y;
break;
default:
return FALSE;
Summary of changes:
gnucash/register/register-gnome/gnucash-sheet.c | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
More information about the gnucash-changes
mailing list