mirror of
https://github.com/swaywm/sway.git
synced 2024-11-14 14:34:07 +01:00
Merge pull request #2690 from ianyfan/commands
commands: remove obselete code for sticky windows when switching workspace
This commit is contained in:
commit
ae2055dcf1
@ -389,13 +389,11 @@ bool workspace_switch(struct sway_workspace *workspace,
|
|||||||
struct sway_output *next_output = workspace->output;
|
struct sway_output *next_output = workspace->output;
|
||||||
struct sway_workspace *next_output_prev_ws =
|
struct sway_workspace *next_output_prev_ws =
|
||||||
output_get_active_workspace(next_output);
|
output_get_active_workspace(next_output);
|
||||||
bool has_sticky = false;
|
|
||||||
if (workspace != next_output_prev_ws) {
|
if (workspace != next_output_prev_ws) {
|
||||||
for (int i = 0; i < next_output_prev_ws->floating->length; ++i) {
|
for (int i = 0; i < next_output_prev_ws->floating->length; ++i) {
|
||||||
struct sway_container *floater =
|
struct sway_container *floater =
|
||||||
next_output_prev_ws->floating->items[i];
|
next_output_prev_ws->floating->items[i];
|
||||||
if (floater->is_sticky) {
|
if (floater->is_sticky) {
|
||||||
has_sticky = true;
|
|
||||||
container_detach(floater);
|
container_detach(floater);
|
||||||
workspace_add_floating(workspace, floater);
|
workspace_add_floating(workspace, floater);
|
||||||
if (&floater->node == focus) {
|
if (&floater->node == focus) {
|
||||||
@ -414,14 +412,6 @@ bool workspace_switch(struct sway_workspace *workspace,
|
|||||||
if (next == NULL) {
|
if (next == NULL) {
|
||||||
next = &workspace->node;
|
next = &workspace->node;
|
||||||
}
|
}
|
||||||
if (has_sticky) {
|
|
||||||
// If there's a sticky container, we might be setting focus to the same
|
|
||||||
// container that's already focused, so seat_set_focus is effectively a
|
|
||||||
// no op. We therefore need to send the IPC event and clean up the old
|
|
||||||
// workspace here.
|
|
||||||
ipc_event_workspace(active_ws, workspace, "focus");
|
|
||||||
workspace_consider_destroy(active_ws);
|
|
||||||
}
|
|
||||||
seat_set_focus(seat, next);
|
seat_set_focus(seat, next);
|
||||||
arrange_workspace(workspace);
|
arrange_workspace(workspace);
|
||||||
cursor_send_pointer_motion(seat->cursor, 0, true);
|
cursor_send_pointer_motion(seat->cursor, 0, true);
|
||||||
|
Loading…
Reference in New Issue
Block a user