Skip to content

ext-workspace-v1: sway does not deactivate workspace when focusing a workspace assigned to another output #9139

@kupospelov

Description

@kupospelov

Version: built from HEAD (c857ca3a978896f4f9bdd481ec5cf395662a2dc5).

Repro steps:

  1. Arrange workspaces in this way: Output A (1, 2), Output B (3, 4).
  2. Focus workspace 4 on Output B.
  3. Focus workspace 2 on Output A.
  4. Focus workspace 3 on Output B.

Expected:
Workspace 4 becomes inactive, workspace 3 becomes active.

Actual:
Both workspaces 3 and 4 remain active.

I hacked together a simple ext-workspace-v1 client and added some logs, the sequence of events looks like this:

[Debug] Workspace ext_workspace_handle_v1@4278190082: name = 2
[Debug] Workspace ext_workspace_handle_v1@4278190082: active = true, urgent = false
[Debug] Workspace ext_workspace_handle_v1@4278190082: entered ext_workspace_group_handle_v1@4278190080
[Debug] Workspace ext_workspace_handle_v1@4278190083: name = 1
[Debug] Workspace ext_workspace_handle_v1@4278190083: active = false, urgent = false
[Debug] Workspace ext_workspace_handle_v1@4278190083: entered ext_workspace_group_handle_v1@4278190080
[Debug] Workspace ext_workspace_handle_v1@4278190084: name = 3
[Debug] Workspace ext_workspace_handle_v1@4278190084: active = false, urgent = false
[Debug] Workspace ext_workspace_handle_v1@4278190084: entered ext_workspace_group_handle_v1@4278190081
[Debug] Workspace ext_workspace_handle_v1@4278190085: name = 4
[Debug] Workspace ext_workspace_handle_v1@4278190085: active = true, urgent = false
[Debug] Workspace ext_workspace_handle_v1@4278190085: entered ext_workspace_group_handle_v1@4278190081

// At this point workspaces 2 (assigned to wl_output@8) and 4 (assigned to wl_output@11) are active
[Debug] Workspace manager ext_workspace_manager_v1@6 done
[Debug] Output wl_output@8: scale change: 1
[Debug] Output wl_output@8: done
[Debug] Group ext_workspace_group_handle_v1@4278190080 entered output wl_output@8
[Debug] Layer surface zwlr_layer_surface_v1@10 configured
[Debug] Output wl_output@11: scale change: 2
[Debug] Output wl_output@11: done
[Debug] Group ext_workspace_group_handle_v1@4278190081 entered output wl_output@11
[Debug] Layer surface zwlr_layer_surface_v1@13 configured
[Debug] Workspace manager ext_workspace_manager_v1@6 done
[Info] Output wl_output@11: update frame size to 409600
[Debug] Output wl_output@11: rendering done
[Info] Output wl_output@8: update frame size to 184320
[Debug] Output wl_output@8: rendering done
[Debug] Layer surface zwlr_layer_surface_v1@13 configured
[Debug] Output wl_output@11: buffer 0 released
[Debug] Layer surface zwlr_layer_surface_v1@10 configured
[Debug] Output wl_output@8: buffer 0 released
[Debug] Output wl_output@11: rendering done
[Debug] Output wl_output@8: rendering done
[Debug] Output wl_output@11: buffer 1 released
[Debug] Output wl_output@8: buffer 1 released

// Here I activate workspace 3, note that there was no event to de-activate workspace 4.
[Debug] Workspace ext_workspace_handle_v1@4278190084: active = true, urgent = false
[Debug] Workspace manager ext_workspace_manager_v1@6 done
[Debug] Output wl_output@11: rendering done
[Debug] Output wl_output@8: rendering done
[Debug] Output wl_output@11: buffer 0 released
[Debug] Output wl_output@8: buffer 0 released
[Debug] Output wl_output@11: rendering done
[Debug] Output wl_output@8: rendering done
[Debug] Output wl_output@11: buffer 1 released
[Debug] Output wl_output@8: buffer 1 released

Note that workspace 3 gets an active = true event, but workspace 4 does not get active = false.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugNot working as intended

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions