From: Consolatis <35009135+Consolatis@users.noreply.github.com> Date: Tue, 7 Mar 2023 21:59:56 +0000 (+0100) Subject: Prevent rare crash due to layering move / resize / menu operations X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=5aa5c123711ee4674830acc5907e0df44e321153;p=proto%2Flabwc.git Prevent rare crash due to layering move / resize / menu operations Fixes #817 Reported-by: @kode54 --- diff --git a/src/action.c b/src/action.c index 96b02145..bea2d896 100644 --- a/src/action.c +++ b/src/action.c @@ -211,6 +211,12 @@ void action_list_free(struct wl_list *action_list) static void show_menu(struct server *server, struct view *view, const char *menu_name) { + if (server->input_mode != LAB_INPUT_STATE_PASSTHROUGH + && server->input_mode != LAB_INPUT_STATE_MENU) { + /* Prevent opening a menu while resizing / moving a view */ + return; + } + bool force_menu_top_left = false; struct menu *menu = menu_get_by_id(menu_name); if (!menu) { diff --git a/src/interactive.c b/src/interactive.c index 482b20ea..728c92e1 100644 --- a/src/interactive.c +++ b/src/interactive.c @@ -28,6 +28,10 @@ interactive_begin(struct view *view, enum input_mode mode, uint32_t edges) struct seat *seat = &server->seat; struct wlr_box geometry = view->current; + if (server->input_mode != LAB_INPUT_STATE_PASSTHROUGH) { + return; + } + switch (mode) { case LAB_INPUT_STATE_MOVE: if (view->fullscreen) {