summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--framebuffer/fbtk/event.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/framebuffer/fbtk/event.c b/framebuffer/fbtk/event.c
index c1c4bc1ee..8dc1b02b3 100644
--- a/framebuffer/fbtk/event.c
+++ b/framebuffer/fbtk/event.c
@@ -134,6 +134,16 @@ fbtk_warp_pointer(fbtk_widget_t *widget, int x, int y, bool relative)
cloc.y0 = y;
}
+ /* ensure cursor location lies within the root widget */
+ if (cloc.x0 < root->x)
+ cloc.x0 = root->x;
+ if (cloc.x0 > (root->x + root->width))
+ cloc.x0 = (root->x + root->width);
+ if (cloc.y0 < root->y)
+ cloc.y0 = root->y;
+ if (cloc.y0 > (root->y + root->height))
+ cloc.y0 = (root->y + root->height);
+
if (root->u.root.grabbed == NULL) {
/* update the pointer cursor */
nsfb_cursor_loc_set(root->u.root.fb, &cloc);