Hi,
I'm playing with netsurf-2.1 on a mipsel touchscreen device (64mb ram,
380MHz). I'm happy to say that netsurf performs quite well on these resources,
although more ram would be nice for larger pages. However, the gtk frontend
appears to not work very well in conjunction with a touchscreen.

The first chunk below makes drag scrolling usable. Without it, small movements
cause netsurf to scroll far too much.

The second chunk inhibits propagation of motion events when they are very
small. Small motion events occur all the time when making touches on a
touchscreen and as a result, the BROWSER_MOUSE_CLICK_* states were very
difficult to trigger. This made tapping on links virtually impossible.

-Graham

--- netsurf.orig/gtk/gtk_window.c
+++ netsurf/gtk/gtk_window.c
@@ -220,6 +220,7 @@
                                GDK_BUTTON_PRESS_MASK |
                                GDK_BUTTON_RELEASE_MASK |
                                GDK_POINTER_MOTION_MASK |
+                               GDK_POINTER_MOTION_HINT_MASK |
                                GDK_KEY_PRESS_MASK |
                                GDK_KEY_RELEASE_MASK);
        GTK_WIDGET_SET_FLAGS(GTK_WIDGET(g->drawing_area), GTK_CAN_FOCUS);
@@ -344,6 +345,11 @@
        bool shift = event->state & GDK_SHIFT_MASK;
        bool ctrl = event->state & GDK_CONTROL_MASK;

+#define DIFF(a,b) (a>b?a-b:b-a)
+       if (DIFF(event->x, g->last_x) < 5.0
+        && DIFF(event->y, g->last_y) < 5.0)
+               return;
+
        if (g->mouse->state & BROWSER_MOUSE_PRESS_1){
                /* Start button 1 drag */
                browser_window_mouse_click(g->bw, BROWSER_MOUSE_DRAG_1,

Reply via email to