aboutsummaryrefslogtreecommitdiff
path: root/sway
AgeCommit message (Collapse)Author
2018-07-19Merge pull request #2308 from RyanDwyer/fix-double-transactionemersion
Fix crash and render issues involving cursor_send_pointer_motion
2018-07-19Fix crash and render issues involving cursor_send_pointer_motionRyan Dwyer
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-19Fix crash when moving workspace to outputRyan Dwyer
2018-07-18Don't unfocus when an override redirect window is mappedemersion
2018-07-18Handle xwayland override_redirect flag changeemersion
This fixes syncplay menus.
2018-07-17Merge pull request #2292 from emersion/update-cursor-on-focusDrew DeVault
Update cursor on focus change
2018-07-18Merge branch 'master' into destroy-output-destroy-empty-workspacesRyan Dwyer
2018-07-17Update cursor on focus changeemersion
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-17Fix memory leak in sway/desktop/idle_inhibit_v1.cfrsfnrrg
2018-07-17Fix memory leak in handle_layer_shell_surfacefrsfnrrg
2018-07-17Free individual criteria in free_configfrsfnrrg
Also free cmd_list when cleaning up a struct criteria.
2018-07-17Fix uninitialized pointer in view_unmapfrsfnrrg
Otherwise, sway crashes due to uninitialized pointer dereference when AddressSanitizer is active.
2018-07-16Merge branch 'master' into default-floating-borderBrian Ashworth
2018-07-16Revert "config: free include path on successful load"Drew DeVault
This reverts commit 92450883d7b148d408b42c3553a60340a14771f6.
2018-07-17Remove superfluous IPC urgent eventsRyan Dwyer
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-17Implement default_floating_border command and adjust CSD behaviourRyan Dwyer
2018-07-16Merge pull request #2276 from RyanDwyer/urgencyDrew DeVault
Implement urgency base functionality
2018-07-16Focus view before running criteria when mappingRyan Dwyer
2018-07-16Implement no_focus commandRyan Dwyer
2018-07-16Render containers as urgent if they have an urgent childRyan Dwyer
2018-07-16Fix tab split focus bugRyan Dwyer
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-16Mark containers as urgent in IPC if they have urgent viewsRyan Dwyer
2018-07-16Update workspace urgent state when views close or move workspacesRyan Dwyer
2018-07-16Make container_for_each_descendant_dfs descend into floating viewsRyan Dwyer
2018-07-16Fix crash in ipc_json_describe_viewRyan Dwyer
I didn't expect a function called ipc_json_describe_view to be passed a container which wasn't a view :\
2018-07-16Add documentation for urgent commandRyan Dwyer
2018-07-16Implement xwayland urgency hintRyan Dwyer
2018-07-16Fix urgency IPC eventsRyan Dwyer
2018-07-16Implement urgency base functionalityRyan Dwyer
Introduces a command to manually set urgency, as well as rendering of urgent views, sending the IPC event, removing urgency after focused for one second, and matching urgent views via criteria.
2018-07-15config output: free command string if unusedIan Fan
2018-07-15config: free include path on successful loadIan Fan
2018-07-15bar: free old position when changingIan Fan
2018-07-15Add error handling for getting config file sizeIan Fan
2018-07-15Fix config buffer overflow and logicIan Fan
2018-07-15Make focus part of transactionsRyan Dwyer
Rather than maintain copies of the entire focus stack, this PR transactionises the focus by introducing two new properties to the container state and using those when rendering. * `bool focused` means this container has actual focus. Only one container should have this equalling true in its current state. * `struct sway_container *focus_inactive_child` points to the immediate child that was most recently focused (eg. for tabbed and stacked containers).
2018-07-15Merge pull request #2272 from RyanDwyer/simplify-transactionsDrew DeVault
Simplify transactions by using a dirty flag on containers
2018-07-15Merge pull request #2266 from emersion/remove-orbital-screenshooterDrew DeVault
Remove orbital screenshooter
2018-07-14Add extended debugging flagsDrew DeVault
We currently have several ways of setting debug flags, including command line arguments, environment variables, and compile-time macros. This replaces the lot with command line flags.
2018-07-15Set signature to voidRyan Dwyer
2018-07-14Simplify transactions by utilising a dirty flag on containersRyan Dwyer
This PR changes the way we handle transactions to a more simple method. The new method is to mark containers as dirty from low level code (eg. arranging, or container_destroy, and eventually seat_set_focus), then call transaction_commit_dirty which picks up those containers and runs them through a transaction. The old methods of using transactions (arrange_and_commit, or creating one manually) are now no longer possible. The highest-level code (execute_command and view implementation handlers) will call transaction_commit_dirty, so most other code just needs to set containers as dirty. This is done by arranging, but can also be done by calling container_set_dirty.
2018-07-14Implement tap_button_map for input devicesBrian Ashworth
2018-07-14Force min/max size when resizing floating containersRyan Dwyer
2018-07-14Implement resize grow|shrink <direction> <amount> or <amount>Ryan Dwyer
2018-07-14Implement resize command for floating viewsRyan Dwyer
Implements the following for floating views: * resize set <width> <height> * resize <grow|shrink> <width|height|up|down|left|right> <amount>
2018-07-13Simplify popup_unconstrainemersion
Just use the parent output.
2018-07-13Remove orbital screenshooteremersion
2018-07-13Fix output_has_opaque_lockscreenemersion
2018-07-13Merge pull request #2252 from rkubosz/scroll-button-optionDrew DeVault
feature: scroll button option for input devices
2018-07-13add error handling for scroll button out of rangeRobert Kubosz
user will be informed if the scroll button indentifier values causes underflow or overflow.
2018-07-13Merge branch 'master' into xwayland-floating-bordersRyan Dwyer