diff options
Diffstat (limited to 'frontends')
-rw-r--r-- | frontends/amiga/gui.c | 4 | ||||
-rw-r--r-- | frontends/beos/window.cpp | 7 | ||||
-rw-r--r-- | frontends/framebuffer/gui.c | 7 | ||||
-rw-r--r-- | frontends/gtk/window.c | 12 | ||||
-rw-r--r-- | frontends/riscos/textselection.c | 3 | ||||
-rw-r--r-- | frontends/riscos/window.c | 16 | ||||
-rw-r--r-- | frontends/windows/drawable.c | 50 |
7 files changed, 54 insertions, 45 deletions
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c index 59b621060..916851846 100644 --- a/frontends/amiga/gui.c +++ b/frontends/amiga/gui.c @@ -2438,8 +2438,8 @@ static BOOL ami_gui_event(void *w) break; } - x = (ULONG)((gwin->win->MouseX - bbox->Left) / gwin->gw->scale); - y = (ULONG)((gwin->win->MouseY - bbox->Top) / gwin->gw->scale); + x = (ULONG)((gwin->win->MouseX - bbox->Left)); + y = (ULONG)((gwin->win->MouseY - bbox->Top)); ami_get_hscroll_pos(gwin, (ULONG *)&xs); ami_get_vscroll_pos(gwin, (ULONG *)&ys); diff --git a/frontends/beos/window.cpp b/frontends/beos/window.cpp index 020c86feb..dda255670 100644 --- a/frontends/beos/window.cpp +++ b/frontends/beos/window.cpp @@ -518,9 +518,10 @@ void nsbeos_dispatch_event(BMessage *message) if (gui->mouse.state & BROWSER_MOUSE_MOD_2 && !ctrl) gui->mouse.state ^= BROWSER_MOUSE_MOD_2; - browser_window_mouse_track(gui->bw, (browser_mouse_state)gui->mouse.state, - (int)(where.x / gui->scale), - (int)(where.y / gui->scale)); + browser_window_mouse_track(gui->bw, + (browser_mouse_state)gui->mouse.state, + (int)(where.x), + (int)(where.y)); gui->last_x = (int)where.x; gui->last_y = (int)where.y; diff --git a/frontends/framebuffer/gui.c b/frontends/framebuffer/gui.c index 957223407..588f05b98 100644 --- a/frontends/framebuffer/gui.c +++ b/frontends/framebuffer/gui.c @@ -702,7 +702,7 @@ fb_browser_window_click(fbtk_widget_t *widget, fbtk_callback_info *cbi) gui_drag.state = GUI_DRAG_NONE; /* Tell core */ - browser_window_mouse_track(gw->bw, 0, x/scale, y/scale); + browser_window_mouse_track(gw->bw, 0, x, y); break; } /* This is a click; @@ -723,7 +723,7 @@ fb_browser_window_click(fbtk_widget_t *widget, fbtk_callback_info *cbi) } /* Tell core */ - browser_window_mouse_track(gw->bw, 0, x/scale, y/scale); + browser_window_mouse_track(gw->bw, 0, x, y); break; } /* This is a click; @@ -781,7 +781,6 @@ fb_browser_window_move(fbtk_widget_t *widget, fbtk_callback_info *cbi) browser_mouse_state mouse = 0; struct gui_window *gw = cbi->context; struct browser_widget_s *bwidget = fbtk_get_userpw(widget); - float scale = browser_window_get_scale(gw->bw); int x = cbi->x + bwidget->scrollx; int y = cbi->y + bwidget->scrolly; @@ -812,7 +811,7 @@ fb_browser_window_move(fbtk_widget_t *widget, fbtk_callback_info *cbi) mouse |= BROWSER_MOUSE_HOLDING_2; } - browser_window_mouse_track(gw->bw, mouse, x/scale, y/scale); + browser_window_mouse_track(gw->bw, mouse, x, y); return 0; } diff --git a/frontends/gtk/window.c b/frontends/gtk/window.c index 341eb5db8..ece586a85 100644 --- a/frontends/gtk/window.c +++ b/frontends/gtk/window.c @@ -325,9 +325,7 @@ static gboolean nsgtk_window_motion_notify_event(GtkWidget *widget, if (g->mouse.state & BROWSER_MOUSE_MOD_2 && !ctrl) g->mouse.state ^= BROWSER_MOUSE_MOD_2; - browser_window_mouse_track(g->bw, g->mouse.state, - event->x / browser_window_get_scale(g->bw), - event->y / browser_window_get_scale(g->bw)); + browser_window_mouse_track(g->bw, g->mouse.state, event->x, event->y); return TRUE; } @@ -416,13 +414,9 @@ static gboolean nsgtk_window_button_release_event(GtkWidget *widget, g->mouse.state ^= BROWSER_MOUSE_MOD_2; if (g->mouse.state & (BROWSER_MOUSE_CLICK_1 | BROWSER_MOUSE_CLICK_2)) { - browser_window_mouse_click(g->bw, g->mouse.state, - event->x, - event->y); + browser_window_mouse_click(g->bw, g->mouse.state, event->x, event->y); } else { - browser_window_mouse_track(g->bw, 0, - event->x / browser_window_get_scale(g->bw), - event->y / browser_window_get_scale(g->bw)); + browser_window_mouse_track(g->bw, 0, event->x, event->y); } g->mouse.state = 0; diff --git a/frontends/riscos/textselection.c b/frontends/riscos/textselection.c index e5be27791..2300330db 100644 --- a/frontends/riscos/textselection.c +++ b/frontends/riscos/textselection.c @@ -188,8 +188,9 @@ static void ro_gui_selection_drag_end(wimp_dragged *drag, void *data) return; } - if (ro_gui_window_to_window_pos(g, drag->final.x0, drag->final.y0, &pos)) + if (ro_gui_window_to_window_pos(g, drag->final.x0, drag->final.y0, &pos)) { browser_window_mouse_track(g->bw, 0, pos.x, pos.y); + } } /** diff --git a/frontends/riscos/window.c b/frontends/riscos/window.c index c439b655b..84029ef87 100644 --- a/frontends/riscos/window.c +++ b/frontends/riscos/window.c @@ -3831,8 +3831,9 @@ static void ro_gui_window_scroll_end(wimp_dragged *drag, void *data) ro_warn_user("WimpError", error->errmess); } - if (ro_gui_window_to_window_pos(g, drag->final.x0, drag->final.y0, &pos)) - browser_window_mouse_track(g->bw, 0, pos.x/g->scale, pos.y/g->scale); + if (ro_gui_window_to_window_pos(g, drag->final.x0, drag->final.y0, &pos)) { + browser_window_mouse_track(g->bw, 0, pos.x, pos.y); + } } @@ -4388,11 +4389,14 @@ void ro_gui_window_mouse_at(wimp_pointer *pointer, void *data) os_coord pos; struct gui_window *g = (struct gui_window *) data; - if (ro_gui_window_to_window_pos(g, pointer->pos.x, pointer->pos.y, &pos)) - browser_window_mouse_track(g->bw, - ro_gui_mouse_drag_state(pointer->buttons, + if (ro_gui_window_to_window_pos(g, pointer->pos.x, pointer->pos.y, &pos)) { + browser_window_mouse_track( + g->bw, + ro_gui_mouse_drag_state(pointer->buttons, wimp_BUTTON_DOUBLE_CLICK_DRAG), - pos.x/g->scale, pos.y/g->scale); + pos.x, + pos.y); + } } diff --git a/frontends/windows/drawable.c b/frontends/windows/drawable.c index 3cded7e0c..9383f7069 100644 --- a/frontends/windows/drawable.c +++ b/frontends/windows/drawable.c @@ -378,10 +378,15 @@ nsws_drawable_paint(struct gui_window *gw, HWND hwnd) clip.x1 = ps.rcPaint.right; clip.y1 = ps.rcPaint.bottom; + /** + * \todo work out why the heck scroll needs scaling + */ + browser_window_redraw(gw->bw, -gw->scrollx / gw->scale, -gw->scrolly / gw->scale, - &clip, &ctx); + &clip, + &ctx); } EndPaint(hwnd, &ps); @@ -425,19 +430,21 @@ nsws_drawable_mouseup(struct gui_window *gw, if ((gw->mouse->state & click) != 0) { NSLOG(netsurf, INFO, - "mouse click bw %p, state 0x%x, x %f, y %f", gw->bw, - gw->mouse->state, (x + gw->scrollx) / gw->scale, - (y + gw->scrolly) / gw->scale); + "mouse click bw %p, state 0x%x, x %d, y %d", + gw->bw, + gw->mouse->state, + x + gw->scrollx, + y + gw->scrolly); browser_window_mouse_click(gw->bw, gw->mouse->state, - (x + gw->scrollx), - (y + gw->scrolly)); + x + gw->scrollx, + y + gw->scrolly); } else { browser_window_mouse_track(gw->bw, 0, - (x + gw->scrollx) / gw->scale, - (y + gw->scrolly) / gw->scale); + x + gw->scrollx, + y + gw->scrolly); } gw->mouse->state = 0; @@ -468,16 +475,19 @@ nsws_drawable_mousedown(struct gui_window *gw, if ((GetKeyState(VK_MENU) & 0x8000) == 0x8000) gw->mouse->state |= BROWSER_MOUSE_MOD_3; - gw->mouse->pressed_x = (x + gw->scrollx) / gw->scale; - gw->mouse->pressed_y = (y + gw->scrolly) / gw->scale; + gw->mouse->pressed_x = x + gw->scrollx; + gw->mouse->pressed_y = y + gw->scrolly; - NSLOG(netsurf, INFO, "mouse click bw %p, state %x, x %f, y %f", - gw->bw, gw->mouse->state, (x + gw->scrollx) / gw->scale, - (y + gw->scrolly) / gw->scale); + NSLOG(netsurf, INFO, "mouse click bw %p, state %x, x %d, y %d", + gw->bw, + gw->mouse->state, + x + gw->scrollx, + y + gw->scrolly); - browser_window_mouse_click(gw->bw, gw->mouse->state, - (x + gw->scrollx), - (y + gw->scrolly)); + browser_window_mouse_click(gw->bw, + gw->mouse->state, + x + gw->scrollx, + y + gw->scrolly); return 0; } @@ -496,9 +506,9 @@ nsws_drawable_mousemove(struct gui_window *gw, int x, int y) if ((gw == NULL) || (gw->mouse == NULL) || (gw->bw == NULL)) return 0; - /* scale co-ordinates */ - x = (x + gw->scrollx) ; - y = (y + gw->scrolly); + /* add scroll offsets */ + x = x + gw->scrollx; + y = y + gw->scrolly; /* if mouse button held down and pointer moved more than * minimum distance drag is happening */ @@ -535,7 +545,7 @@ nsws_drawable_mousemove(struct gui_window *gw, int x, int y) gw->mouse->state &= ~BROWSER_MOUSE_MOD_3; - browser_window_mouse_track(gw->bw, gw->mouse->state, x/ gw->scale, y/ gw->scale); + browser_window_mouse_track(gw->bw, gw->mouse->state, x, y); return 0; } |