window: Fix logic for looking up widget default cursor
We may deref a NULL pointer if there is no grab and no focus widget.
diff --git a/clients/window.c b/clients/window.c
index d701889..e9b6a5e 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -2911,12 +2911,15 @@
widget = input->grab;
else
widget = input->focus_widget;
- if (widget && widget->motion_handler)
- cursor = widget->motion_handler(input->focus_widget,
- input, time, sx, sy,
- widget->user_data);
- else
- cursor = input->focus_widget->default_cursor;
+ if (widget) {
+ if (widget->motion_handler)
+ cursor = widget->motion_handler(input->focus_widget,
+ input, time, sx, sy,
+ widget->user_data);
+ else
+ cursor = widget->default_cursor;
+ } else
+ cursor = CURSOR_LEFT_PTR;
input_set_pointer_image(input, cursor);
}