window: Break widget grab before shell surface move or grab
This commit is contained in:
@@ -1365,6 +1365,12 @@ window_menu_func(struct window *window, int index, void *data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
break_grab(struct window *window)
|
||||||
|
{
|
||||||
|
window->focus_widget = NULL;
|
||||||
|
window->widget_grab_button = 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
input_handle_button(void *data,
|
input_handle_button(void *data,
|
||||||
@@ -1392,6 +1398,7 @@ input_handle_button(void *data,
|
|||||||
if (!window->shell_surface)
|
if (!window->shell_surface)
|
||||||
break;
|
break;
|
||||||
input_set_pointer_image(input, time, POINTER_DRAGGING);
|
input_set_pointer_image(input, time, POINTER_DRAGGING);
|
||||||
|
break_grab(window);
|
||||||
wl_shell_surface_move(window->shell_surface,
|
wl_shell_surface_move(window->shell_surface,
|
||||||
input_device, time);
|
input_device, time);
|
||||||
break;
|
break;
|
||||||
@@ -1405,6 +1412,7 @@ input_handle_button(void *data,
|
|||||||
case WINDOW_RESIZING_BOTTOM_RIGHT:
|
case WINDOW_RESIZING_BOTTOM_RIGHT:
|
||||||
if (!window->shell_surface)
|
if (!window->shell_surface)
|
||||||
break;
|
break;
|
||||||
|
break_grab(window);
|
||||||
wl_shell_surface_resize(window->shell_surface,
|
wl_shell_surface_resize(window->shell_surface,
|
||||||
input_device, time,
|
input_device, time,
|
||||||
location);
|
location);
|
||||||
|
|||||||
Reference in New Issue
Block a user