summaryrefslogtreecommitdiff
path: root/framebuffer/gui.c
diff options
context:
space:
mode:
Diffstat (limited to 'framebuffer/gui.c')
-rw-r--r--framebuffer/gui.c36
1 files 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;
}