From c98e37be1fbb88a0080c14216da393e53733c5fb Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Wed, 21 Sep 2011 21:11:16 +0000 Subject: Better caret positioning in scrolled frames. svn path=/trunk/netsurf/; revision=12851 --- desktop/textinput.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'desktop/textinput.c') diff --git a/desktop/textinput.c b/desktop/textinput.c index 63e17debe..50ea16cc8 100644 --- a/desktop/textinput.c +++ b/desktop/textinput.c @@ -76,8 +76,15 @@ void browser_window_place_caret(struct browser_window *bw, root_bw = browser_window_get_root(bw); browser_window_get_position(bw, true, &pos_x, &pos_y); - x = x * bw->scale + pos_x; - y = y * bw->scale + pos_y; + if (bw->browser_window_type == BROWSER_WINDOW_FRAME) { + x = (x - scrollbar_get_offset(bw->scroll_x)) * bw->scale; + y = (y - scrollbar_get_offset(bw->scroll_y)) * bw->scale; + x += pos_x; + y += pos_y; + } else { + x = x * bw->scale + pos_x; + y = y * bw->scale + pos_y; + } gui_window_place_caret(root_bw->window, x, y, height * bw->scale); bw->caret_callback = caret_cb; -- cgit v1.2.3