From 7bcefbf72dee4cb60fa51ffc9eb4e0ab26ddab75 Mon Sep 17 00:00:00 2001 From: Achal-Aggarwal Date: Fri, 21 Mar 2014 22:57:41 +0530 Subject: Fix caret cropping using clip rectangle. --- gtk/window.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'gtk') diff --git a/gtk/window.c b/gtk/window.c index 2da346b33..994c6a2ee 100644 --- a/gtk/window.c +++ b/gtk/window.c @@ -1154,9 +1154,21 @@ static void gui_window_place_caret(struct gui_window *g, int x, int y, int heigh { nsgtk_redraw_caret(g); + height -= 2; + y += 1; + + if (y < clip->y0) { + height -= clip->y0 - y + 1; + y = clip->y0 - 1; + } + + if (y + height > clip->y1) { + height = clip->y1 - y + 1; + } + g->caretx = x; - g->carety = y + 1; - g->careth = height - 2; + g->carety = y; + g->careth = height; nsgtk_redraw_caret(g); -- cgit v1.2.3