summaryrefslogtreecommitdiff
path: root/src/helpers/SubsurfaceTree.cpp
diff options
context:
space:
mode:
authorAndrew Pritchard <awpritchard@gmail.com>2023-04-07 04:18:53 -0700
committerGitHub <noreply@github.com>2023-04-07 12:18:53 +0100
commitdfb78e059394a637e0f36242fe36d118bd1ce3e6 (patch)
tree341fdf9a4fdd8b0d64e6e524a159bdf4e927afe4 /src/helpers/SubsurfaceTree.cpp
parent24ace0378083fef23735ba426f8af3180e67994f (diff)
Fix swiping onto a new workspace with multiple monitors. (#1971)
The previous code could run into issues into the following circumstances: * The focused monitor is on its rightmost workspace with ID `i`. * Another monitor has a workspace with ID `i+1`. * `workspace_swipe_create_new` is enabled. Then, swiping rightwards attempts to target a new workspace with ID `i+1`: completing the swipe gesture unintentionally focuses that workspace on whichever monitor it's already on while leaving the active monitor in a broken state where it shows no windows but creates new windows on the workspace it was previously on; and cancelling the swipe gesture shifts the entire workspace `i+1` to the right by the width of the active monitor. By choosing an ID that doesn't exist, this problematic behavior is avoided. More specifically, it's the smallest ID greater than any existing workspace's ID, because otherwise the new workspace that was seemingly just created to the right of the rightmost workspace could end up somewhere in the middle of the workspace order.
Diffstat (limited to 'src/helpers/SubsurfaceTree.cpp')
0 files changed, 0 insertions, 0 deletions