Commit graph

4413 commits

Author SHA1 Message Date
Ryan Dwyer 8533c35a9f 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.
2018-07-19 19:49:50 +10:00
emersion dfb45ded1c
Merge pull request #2306 from RyanDwyer/move-workspace-crash
Fix crash when moving workspace to output
2018-07-19 08:24:34 +01:00
Ryan Dwyer dad3a8deee Fix crash when moving workspace to output 2018-07-19 16:52:02 +10:00
Ryan Dwyer 08736255a3 Defer the focus commands 2018-07-19 16:41:02 +10:00
Ryan Dwyer a173b79c54 Implement focus output command 2018-07-19 16:33:27 +10:00
Brian Ashworth ec65286606 Fix deferred command handling 2018-07-19 01:39:58 -04:00
Drew DeVault 4931d0ddc5
Merge pull request #2300 from emersion/override-redirect-updates
Handle xwayland override_redirect flag change
2018-07-18 12:42:09 -07:00
emersion 747725b8bb Don't unfocus when an override redirect window is mapped 2018-07-18 20:00:48 +01:00
emersion fb4eca5d56 Handle xwayland override_redirect flag change
This fixes syncplay menus.
2018-07-18 19:10:08 +01:00
Drew DeVault ca695482ec
Merge pull request #2292 from emersion/update-cursor-on-focus
Update cursor on focus change
2018-07-17 19:53:12 -07:00
Drew DeVault 81e4bbf8b2
Merge pull request #2294 from RedSoxFan/fix-swaylock-args
Fix swaylock arguments
2018-07-17 19:52:12 -07:00
Brian Ashworth 7885a138af Fix swaylock arguments 2018-07-17 21:50:15 -04:00
Ryan Dwyer 5903fb4640
Merge pull request #2229 from vilhalmer/destroy-output-destroy-empty-workspaces
Destroy empty workspace when destroying its output
2018-07-18 10:39:08 +10:00
Ryan Dwyer 8ce7e3b44e
Merge branch 'master' into destroy-output-destroy-empty-workspaces 2018-07-18 09:32:03 +10:00
emersion 48b911a459
Merge pull request #2281 from pvsr/X11_click
Send clicks to swaybar blocks as X11 button ids
2018-07-18 00:16:15 +01:00
Peter Rice e43c20134a remove unnecessary parens 2018-07-17 19:04:04 -04:00
emersion 03d49490cc Update cursor on focus change
This allows to send wl_pointer.enter when switching between views
in a split/tabbed layout for instance. This (1) updates the cursor
image accordingly (2) makes it unnecessary to move the mouse before
scrolling. It's harmless to always call cursor_send_pointer_motion
because in case the focused surface hasn't changed this is a no-op.

The `last_focus != NULL` condition is required otherwise
cursor_send_pointer_motion will crash when sway starts up (the
sway_output doesn't yet have a workspace).
2018-07-17 23:04:55 +01:00
Drew DeVault bec982bba6
Merge pull request #2289 from frsfnrrg/memory-fixes
Fix memory leaks and reference to uninitialized
2018-07-17 08:46:53 -07:00
frsfnrrg 3931cb85b2 Fix memory leak in sway/desktop/idle_inhibit_v1.c 2018-07-17 11:35:24 -04:00
frsfnrrg 37471ac649 Fix memory leak in handle_layer_shell_surface 2018-07-17 11:35:24 -04:00
frsfnrrg 600676688a Free individual criteria in free_config
Also free cmd_list when cleaning up a struct criteria.
2018-07-17 11:35:00 -04:00
frsfnrrg b3014f7b16 Fix uninitialized pointer in view_unmap
Otherwise, sway crashes due to uninitialized pointer
dereference when AddressSanitizer is active.
2018-07-17 10:42:48 -04:00
Brian Ashworth f516dbfb6d
Merge pull request #2286 from RyanDwyer/default-floating-border
Implement default_floating_border command and adjust CSD behaviour
2018-07-16 22:21:00 -04:00
Brian Ashworth 10fc7a5b49
Merge branch 'master' into default-floating-border 2018-07-16 22:12:29 -04:00
Drew DeVault db3a363734 Revert "config: free include path on successful load"
This reverts commit 92450883d7.
2018-07-16 21:02:13 -04:00
Drew DeVault 9c8d73dad6
Merge pull request #2287 from RyanDwyer/superfluous-urgent-events
Remove superfluous IPC urgent events
2018-07-16 17:59:30 -07:00
Ryan Dwyer 9cbff272cb Remove superfluous IPC urgent events
When an xwayland view is mapped, the IPC urgent event was being sent on
every surface commit.

I had intentionally ommitted the check because I figured an urgent
surface could update its urgent timestamp by sending urgent a second
time. But that's not how it works in xwayland's case, and it makes for
more complicated code.
2018-07-17 10:27:03 +10:00
Ryan Dwyer 75c699db62 Implement default_floating_border command and adjust CSD behaviour 2018-07-17 10:14:33 +10:00
Drew DeVault 7268d544c2
Merge pull request #2285 from emersion/cleanup-swayidle
swayidle: cleanup
2018-07-16 16:34:04 -07:00
Peter Rice 14511da75d send scroll events to swaybar blocks 2018-07-16 18:55:11 -04:00
Peter Rice 79a998849b make hotspot callback take an x11 button id 2018-07-16 18:55:04 -04:00
Drew DeVault d6bd314dff
Merge pull request #2276 from RyanDwyer/urgency
Implement urgency base functionality
2018-07-16 15:39:08 -07:00
Ryan Dwyer 255dc8bbb0 swaybar: Read urgent colors from IPC 2018-07-17 08:29:43 +10:00
emersion 297e32126f
Merge pull request #2265 from RedSoxFan/implement-1962
Implement swaylock configuration file parsing
2018-07-16 22:25:25 +01:00
emersion 4657ea5a42 swayidle: cleanup
No idea why wlr_output_layout was involved here.
2018-07-16 22:20:53 +01:00
Brian Ashworth 7b91712416 Switch to using getopt_long for config flag 2018-07-16 12:17:40 -04:00
Brian Ashworth 14c949c1c7 Remove leftover parens 2018-07-16 12:17:40 -04:00
Brian Ashworth 85584734ce Remove int cast after changing to size_t 2018-07-16 12:17:40 -04:00
Brian Ashworth d375f6af18 Change to size_t in swaylock's get_config_path 2018-07-16 12:17:40 -04:00
Brian Ashworth 296889f3d7 Implement swaylock configuration file parsing 2018-07-16 12:17:40 -04:00
Drew DeVault 6a9ca6efa0
Merge pull request #2283 from RyanDwyer/no-focus
Implement no_focus command
2018-07-16 08:31:00 -07:00
Ryan Dwyer e2f28c023c Focus view before running criteria when mapping 2018-07-16 22:27:11 +10:00
Ryan Dwyer fc2484095a Implement no_focus command 2018-07-16 22:18:12 +10:00
emersion a588b326c2
Merge pull request #2282 from RyanDwyer/fix-tab-split-focus
Fix tab split focus bug
2018-07-16 09:54:09 +01:00
Ryan Dwyer af5f736277 Render containers as urgent if they have an urgent child 2018-07-16 18:22:27 +10:00
Ryan Dwyer 9ca5cb7faf Fix tab split focus bug
Fixes a bug where if you have a tab containing a split, then switch from
a non-split tab to the split tab, focus is not changed properly.
2018-07-16 18:09:35 +10:00
Ryan Dwyer be28c18ad5 Mark containers as urgent in IPC if they have urgent views 2018-07-16 14:30:31 +10:00
Ryan Dwyer 5f0a4bb6a4 Update workspace urgent state when views close or move workspaces 2018-07-16 13:15:35 +10:00
Ryan Dwyer 560627437b Make container_for_each_descendant_dfs descend into floating views 2018-07-16 12:45:20 +10:00
Ryan Dwyer 64e3bc3ab0 Fix crash in ipc_json_describe_view
I didn't expect a function called ipc_json_describe_view to be passed a
container which wasn't a view :\
2018-07-16 11:55:53 +10:00