Graham Gower wrote:
> 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,
>
Hi Graham,

thanks for the patch;

I'll confirm that there are no immediate obvious adverse effects in
desktop mode;

it seems to me that, as the nsgtk_window_motion_notify_event() function
should return a gboolean, perhaps return TRUE is marginally less smooth
than return FALSE;

you would need to confirm that return FALSE has the necessary effect in
the touchscreen environment;

aside from that, I've implemented the change in the gtkmain branch at least

Best regards

Mark

http://www.halloit.com

Key ID 046B65CF


Reply via email to