cursor: Allow cursor button events to trigger cursor_rebase()

This commit is contained in:
Consolatis 2022-09-08 00:57:59 +02:00
parent bc4ce1bd5d
commit 601a6250b7

View file

@ -27,11 +27,6 @@ is_surface(enum ssd_part_type view_area)
void void
cursor_rebase(struct seat *seat, uint32_t time_msec, bool force) cursor_rebase(struct seat *seat, uint32_t time_msec, bool force)
{ {
if (seat->pressed.surface) {
/* Don't leave surface while a button is pressed */
return;
}
double sx, sy; double sx, sy;
struct wlr_scene_node *node; struct wlr_scene_node *node;
enum ssd_part_type view_area = LAB_SSD_NONE; enum ssd_part_type view_area = LAB_SSD_NONE;
@ -44,6 +39,10 @@ cursor_rebase(struct seat *seat, uint32_t time_msec, bool force)
} }
ssd_update_button_hover(node, &seat->server->ssd_hover_state); ssd_update_button_hover(node, &seat->server->ssd_hover_state);
if (seat->pressed.surface && surface != seat->pressed.surface) {
/* Don't leave surface when a button was pressed over another surface */
return;
}
if (surface) { if (surface) {
if (!force && surface == seat->seat->pointer_state.focused_surface) { if (!force && surface == seat->seat->pointer_state.focused_surface) {