[Gnucash-changes] Patch from Scott Oonk to re-enable mouse scrolling in the account

David Hampton hampton at cvs.gnucash.org
Sun Oct 23 18:41:44 EDT 2005


Log Message:
-----------
Patch from Scott Oonk to re-enable mouse scrolling in the account
register.

Tags:
----
gnucash-gnome2-dev

Modified Files:
--------------
    gnucash/src/register/register-gnome:
        gnucash-sheet.c

Revision Data
-------------
Index: gnucash-sheet.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/register/register-gnome/gnucash-sheet.c,v
retrieving revision 1.19.4.18
retrieving revision 1.19.4.19
diff -Lsrc/register/register-gnome/gnucash-sheet.c -Lsrc/register/register-gnome/gnucash-sheet.c -u -r1.19.4.18 -r1.19.4.19
--- src/register/register-gnome/gnucash-sheet.c
+++ src/register/register-gnome/gnucash-sheet.c
@@ -1172,33 +1172,38 @@
         return TRUE;
 }
 
-static void
-gnucash_sheet_scroll_event(GnucashSheet *sheet, GdkEventButton *event)
+static gboolean
+gnucash_scroll_event (GtkWidget *widget, GdkEventScroll *event)
 {
+        GnucashSheet *sheet;
         GtkAdjustment *vadj;
-        gfloat multiplier = 1.0;
         gfloat v_value;
 
+        g_return_val_if_fail(widget != NULL, TRUE);
+        g_return_val_if_fail(GNUCASH_IS_SHEET(widget), TRUE);
+        g_return_val_if_fail(event != NULL, TRUE);
+
+        sheet = GNUCASH_SHEET (widget);
         vadj = sheet->vadj;
         v_value = vadj->value;
-        if (event->state & GDK_SHIFT_MASK)
-                multiplier = sheet->num_visible_blocks / 2;
 
-        switch (event->button)
+        switch (event->direction)
         {
-                case 4:
-                        v_value -= vadj->step_increment * multiplier;
+                case GDK_SCROLL_UP:
+                        v_value -= vadj->step_increment;
                         break;
-                case 5:
-                        v_value += vadj->step_increment * multiplier;
+                case GDK_SCROLL_DOWN:
+                        v_value += vadj->step_increment;
                         break;
                 default:
-                        return;
+                        return FALSE;
         }
 
         v_value = CLAMP(v_value, vadj->lower, vadj->upper - vadj->page_size);
 
         gtk_adjustment_set_value(vadj, v_value);
+
+        return TRUE;
 }
 
 static void
@@ -1274,10 +1279,6 @@
 			if (!do_popup)
 				return FALSE;
                         break;
-                case 4:
-                case 5:
-                        gnucash_sheet_scroll_event(sheet, event);
-                        return TRUE;
                 default:
                         return FALSE;
         }
@@ -2337,6 +2338,7 @@
         widget_class->button_press_event = gnucash_button_press_event;
         widget_class->button_release_event = gnucash_button_release_event;
         widget_class->motion_notify_event = gnucash_motion_event;
+        widget_class->scroll_event = gnucash_scroll_event;
 
         widget_class->selection_clear_event = gnucash_sheet_selection_clear;
         widget_class->selection_received = gnucash_sheet_selection_received;


More information about the gnucash-changes mailing list