From 7f41b913c9b6c7249a5fccf8137f4a06697db0ac Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Wed, 16 Mar 2011 21:41:51 +0000 Subject: Scale mouse pointer position. svn path=/trunk/netsurf/; revision=12081 --- framebuffer/gui.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/framebuffer/gui.c b/framebuffer/gui.c index 75750eb9d..078a2e760 100644 --- a/framebuffer/gui.c +++ b/framebuffer/gui.c @@ -578,6 +578,7 @@ fb_browser_window_click(fbtk_widget_t *widget, fbtk_callback_info *cbi) { struct gui_window *gw = cbi->context; struct browser_widget_s *bwidget = fbtk_get_userpw(widget); + float scale; if (cbi->event->type != NSFB_EVENT_KEY_DOWN && cbi->event->type != NSFB_EVENT_KEY_UP) @@ -589,17 +590,19 @@ fb_browser_window_click(fbtk_widget_t *widget, fbtk_callback_info *cbi) case NSFB_EVENT_KEY_DOWN: switch (cbi->event->value.keycode) { case NSFB_KEY_MOUSE_1: + scale = gw->bw->scale; browser_window_mouse_click(gw->bw, - BROWSER_MOUSE_PRESS_1, - cbi->x + bwidget->scrollx, - cbi->y + bwidget->scrolly); + BROWSER_MOUSE_PRESS_1, + (cbi->x + bwidget->scrollx) / scale, + (cbi->y + bwidget->scrolly) / scale); break; case NSFB_KEY_MOUSE_3: + scale = gw->bw->scale; browser_window_mouse_click(gw->bw, - BROWSER_MOUSE_PRESS_2, - cbi->x + bwidget->scrollx, - cbi->y + bwidget->scrolly); + BROWSER_MOUSE_PRESS_2, + (cbi->x + bwidget->scrollx) / scale, + (cbi->y + bwidget->scrolly) / scale); break; case NSFB_KEY_MOUSE_4: @@ -621,17 +624,19 @@ fb_browser_window_click(fbtk_widget_t *widget, fbtk_callback_info *cbi) case NSFB_EVENT_KEY_UP: switch (cbi->event->value.keycode) { case NSFB_KEY_MOUSE_1: + scale = gw->bw->scale; browser_window_mouse_click(gw->bw, - BROWSER_MOUSE_CLICK_1, - cbi->x + bwidget->scrollx, - cbi->y + bwidget->scrolly); + BROWSER_MOUSE_CLICK_1, + (cbi->x + bwidget->scrollx) / scale, + (cbi->y + bwidget->scrolly) / scale); break; case NSFB_KEY_MOUSE_3: + scale = gw->bw->scale; browser_window_mouse_click(gw->bw, - BROWSER_MOUSE_CLICK_2, - cbi->x + bwidget->scrollx, - cbi->y + bwidget->scrolly); + BROWSER_MOUSE_CLICK_2, + (cbi->x + bwidget->scrollx) / scale, + (cbi->y + bwidget->scrolly) / scale); break; default: @@ -654,10 +659,9 @@ fb_browser_window_move(fbtk_widget_t *widget, fbtk_callback_info *cbi) struct gui_window *gw = cbi->context; struct browser_widget_s *bwidget = fbtk_get_userpw(widget); - browser_window_mouse_track(gw->bw, - 0, - cbi->x + bwidget->scrollx, - cbi->y + bwidget->scrolly); + browser_window_mouse_track(gw->bw, 0, + (cbi->x + bwidget->scrollx) / gw->bw->scale, + (cbi->y + bwidget->scrolly) / gw->bw->scale); return 0; } -- cgit v1.2.3