mirror of
https://github.com/swaywm/sway.git
synced 2024-11-30 03:41:27 +00:00
Fix deletion of still-visible workspaces on unfocus
This commit is contained in:
parent
3499cc6c87
commit
b08f7e5183
|
@ -6,6 +6,7 @@
|
||||||
#include <wlr/types/wlr_output_layout.h>
|
#include <wlr/types/wlr_output_layout.h>
|
||||||
#include <wlr/types/wlr_xcursor_manager.h>
|
#include <wlr/types/wlr_xcursor_manager.h>
|
||||||
#include "sway/tree/container.h"
|
#include "sway/tree/container.h"
|
||||||
|
#include "sway/tree/workspace.h"
|
||||||
#include "sway/input/seat.h"
|
#include "sway/input/seat.h"
|
||||||
#include "sway/input/cursor.h"
|
#include "sway/input/cursor.h"
|
||||||
#include "sway/input/input-manager.h"
|
#include "sway/input/input-manager.h"
|
||||||
|
@ -398,7 +399,8 @@ void seat_set_focus_warp(struct sway_seat *seat,
|
||||||
}
|
}
|
||||||
if (last_ws) {
|
if (last_ws) {
|
||||||
ipc_event_workspace(last_ws, container, "focus");
|
ipc_event_workspace(last_ws, container, "focus");
|
||||||
if (last_ws->children->length == 0) {
|
if (!workspace_is_visible(last_ws)
|
||||||
|
&& last_ws->children->length == 0) {
|
||||||
container_destroy(last_ws);
|
container_destroy(last_ws);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -216,6 +216,7 @@ static bool container_reap_empty(struct sway_container *con) {
|
||||||
break;
|
break;
|
||||||
case C_WORKSPACE:
|
case C_WORKSPACE:
|
||||||
if (!workspace_is_visible(con) && con->children->length == 0) {
|
if (!workspace_is_visible(con) && con->children->length == 0) {
|
||||||
|
wlr_log(L_DEBUG, "Destroying workspace via reaper");
|
||||||
container_workspace_destroy(con);
|
container_workspace_destroy(con);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue