mirror of
https://github.com/labwc/labwc.git
synced 2026-02-15 22:05:25 -05:00
interactive: Fix crash if a window is destroyed while moving it
Need to clean this up if it's our grabbed window! Signed-off-by: Joshua Ashton <joshua@froggi.es>
This commit is contained in:
parent
a9f11c5fc7
commit
3e973c92ab
4 changed files with 10 additions and 0 deletions
|
|
@ -38,3 +38,10 @@ interactive_begin(struct view *view, enum input_mode mode, uint32_t edges)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void interactive_end(struct view *view) {
|
||||
if (view->server->grabbed_view == view) {
|
||||
view->server->input_mode = LAB_INPUT_STATE_PASSTHROUGH;
|
||||
view->server->grabbed_view = NULL;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,6 +95,7 @@ handle_destroy(struct wl_listener *listener, void *data)
|
|||
if (view->toplevel_handle) {
|
||||
wlr_foreign_toplevel_handle_v1_destroy(view->toplevel_handle);
|
||||
}
|
||||
interactive_end(view);
|
||||
wl_list_remove(&view->link);
|
||||
ssd_destroy(view);
|
||||
free(view);
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ handle_destroy(struct wl_listener *listener, void *data)
|
|||
if (view->toplevel_handle) {
|
||||
wlr_foreign_toplevel_handle_v1_destroy(view->toplevel_handle);
|
||||
}
|
||||
interactive_end(view);
|
||||
view->xwayland_surface = NULL;
|
||||
wl_list_remove(&view->link);
|
||||
wl_list_remove(&view->map.link);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue