diff options
author | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-07-19 19:49:50 +1000 |
---|---|---|
committer | Ryan Dwyer <ryandwyer1@gmail.com> | 2018-07-19 19:49:50 +1000 |
commit | 8533c35a9f15288bb9bade57d972cf0ad0724ec4 (patch) | |
tree | 7d6c9bb874f6c2136a1307506bb5483ac104e41a /sway/commands/border.c | |
parent | 4931d0ddc5d9de1f823af7efd931702b2fa80260 (diff) |
Fix crash and render issues involving cursor_send_pointer_motion
Fixes #2303, as well as a crash.
To replicate the crash:
* Have multiple outputs
* In config: for_window [<criteria>] workspace foo
* Also in config: workspace foo output <left-output-name>
* Focus the right output, and ensure workspace foo doesn't exist
* Launch the app that triggers the criteria
When the view maps, it calls workspace_switch which calls
send_set_focus which calls cursor_send_pointer_motion which calls
transaction_commit_dirty. This call to transaction_commit_dirty is not
meant to happen at this time because the tree isn't guaranteed to be in
a consistent state, but I'm not sure how exactly this leads to the crash
or render issues.
In this case the transaction is already committed by the view
implementation's handle_map function. So the solution is to remove it
from cursor_send_pointer_motion and add it to the other functions in
cursor.c which call cursor_send_pointer_motion.
Diffstat (limited to 'sway/commands/border.c')
0 files changed, 0 insertions, 0 deletions