From 3a29e436e52a2cc80e81752dfaed3c3d743fae96 Mon Sep 17 00:00:00 2001 From: bi4k8 Date: Sat, 11 Dec 2021 23:24:44 +0000 Subject: [PATCH] fix crash when a minimized window closes e.g., open an editor from a terminal, minimize it, then hit ^C in the terminal simply don't unmap xdg or xwayland views if they are not currently marked as mapped --- src/xdg.c | 12 +++++++----- src/xwayland.c | 10 ++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/xdg.c b/src/xdg.c index f867216f..e9960bc0 100644 --- a/src/xdg.c +++ b/src/xdg.c @@ -364,11 +364,13 @@ xdg_toplevel_view_map(struct view *view) static void xdg_toplevel_view_unmap(struct view *view) { - view->mapped = false; - damage_all_outputs(view->server); - wl_list_remove(&view->commit.link); - wl_list_remove(&view->new_subsurface.link); - desktop_focus_topmost_mapped_view(view->server); + if (view->mapped) { + view->mapped = false; + damage_all_outputs(view->server); + wl_list_remove(&view->commit.link); + wl_list_remove(&view->new_subsurface.link); + desktop_focus_topmost_mapped_view(view->server); + } } static const struct view_impl xdg_toplevel_view_impl = { diff --git a/src/xwayland.c b/src/xwayland.c index 10f7d022..44205a1f 100644 --- a/src/xwayland.c +++ b/src/xwayland.c @@ -279,10 +279,12 @@ map(struct view *view) static void unmap(struct view *view) { - view->mapped = false; - damage_all_outputs(view->server); - wl_list_remove(&view->commit.link); - desktop_focus_topmost_mapped_view(view->server); + if(view->mapped) { + view->mapped = false; + damage_all_outputs(view->server); + wl_list_remove(&view->commit.link); + desktop_focus_topmost_mapped_view(view->server); + } } static void