From 2738ff267332f9c9de2d9d74df0bb71c6dc2c761 Mon Sep 17 00:00:00 2001 From: Johan Malm Date: Wed, 3 Mar 2021 21:19:52 +0000 Subject: [PATCH] cursor: cursor_name fix The current implementation detects resize edges over the wlr_surface, sometimes preventing the correct cursor_name to be set. --- src/cursor.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/cursor.c b/src/cursor.c index be9cd44e..1da84fd9 100644 --- a/src/cursor.c +++ b/src/cursor.c @@ -2,8 +2,14 @@ #include "labwc.h" #include "menu/menu.h" -#define RESIZE_BORDER_WIDTH 4 +#define RESIZE_BORDER_WIDTH 2 +/* + * TODO: refactor code to get rid of get_resize_edges() + * Use a wl_list of SSD instead and build RESIZE_BORDER_WIDTH into that. + * Had to set RESIZE_BORDER_WIDTH to 2 for the time being to get + * cursor_name to behave properly when entering surface + */ static uint32_t get_resize_edges(struct view *view, double x, double y) { @@ -172,8 +178,10 @@ process_cursor_motion(struct server *server, uint32_t time) } if (resize_edges) { cursor_name_set_by_server = true; - } - if (!resize_edges && cursor_name_set_by_server) { + } else if (view_area != LAB_DECO_NONE) { + cursor_name = XCURSOR_DEFAULT; + cursor_name_set_by_server = true; + } else if (cursor_name_set_by_server) { cursor_name = XCURSOR_DEFAULT; cursor_name_set_by_server = false; }