aboutsummaryrefslogtreecommitdiff
path: root/sway
AgeCommit message (Collapse)Author
2018-06-27Fix nitpicksRyan Dwyer
2018-06-26Remove incorrect assertion and supporting codeRyan Dwyer
Children can exist when destroying a container, such as when destroying the last output. Sway is not terminating in that case.
2018-06-26Fix crash when closing output window from outer sessionRyan Dwyer
Emitting the close event needs to happen before container_output_destroy, because container_output_destroy sets the sway_output to NULL and sway_output is used in IPC.
2018-06-26Fix crash when disconnecting outputRyan Dwyer
We were freeing the sway_output immediately upon disconnect which left a dangling pointer in the output's container. It then tried to use the pointer when the container is freed. We don't need to store the sway_output in an output's container which is destroying, so the fix is to set the pointer to NULL and remove the use in container_free. Also added an arrange when the output is disconnected for good measure.
2018-06-26Remove timer when transaction destroysRyan Dwyer
2018-06-26Damage output when views toggle fullscreenRyan Dwyer
Also add workspace to the transaction when a view maps in fullscreen mode.
2018-06-26Rename view's free callback to destroyRyan Dwyer
2018-06-26Damage output when a fullscreen view unmapsRyan Dwyer
Also moved the arranging into view_unmap to avoid excessive code duplication.
2018-06-25Rename progress_queue to transaction_progress_queueRyan Dwyer
2018-06-25Fix potential crash when fullscreen view unmapsRyan Dwyer
It happened when a view is a grandchild or deeper of the workspace, is fullscreen, and unmaps. The workspace would not be included in the transaction and its pointer to the fullscreen view was left dangling.
2018-06-25Implement per-configure debug timingsRyan Dwyer
2018-06-25Implement transaction timings debugRyan Dwyer
Launch sway with SWAY_DEBUG=txn_timings to enable it.
2018-06-24Fix another crash when moving out of stacks or tabsRyan Dwyer
2018-06-24Implement atomic layout updates for xwayland viewsRyan Dwyer
2018-06-24Fix crash when running move <direction> in an empty workspaceRyan Dwyer
2018-06-24Fix crash when unmapping a view with reapable parentsRyan Dwyer
container_destroy was calling container_reap_empty, which calls container_destroy and so on. Eventually the original container_destroy would return a NULL pointer to the caller which caused a crash. This also fixes an arrange on the wrong container when moving views in and out of stacks.
2018-06-24Fix crash related to stacks and tabsRyan Dwyer
2018-06-24Force transactions to complete in orderRyan Dwyer
This forces transactions to complete in order by using a singly linked list stored in the sway server.
2018-06-23Fix crash when deleting last child in a tabbed or stacked containerRyan Dwyer
There was no `current` child because the container was destroyed. This makes it fall back to looking in the parent's current children list.
2018-06-23Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-23Implement atomic layout updates for tree operationsRyan Dwyer
This implements atomic layout updates for when views map, reparent or unmap.
2018-06-22Merge pull request #2155 from ael-code/fix_output_command_failureDrew DeVault
bugfix: avoid access after free
2018-06-22bugfix: avoid access after freeael-code
if src is NULL due to a previous error we cannot use it in the command result string. Moreover if `src` points to `p.we_wordv[0]` we cannot use it after `wordfree(&p)` in the command result string. Bonus feature: If there was an error accessing the file, the string rapresentation of the error is now included in the command result string.
2018-06-22Merge pull request #2146 from ↵Drew DeVault
tobiasblass/prepare_server_before_dropping_privileges Perform (partial) server initialization before dropping privileges.
2018-06-22Init the dmabuf exporting protocol in wlrootsRostislav Pehlivanov
Allows desktop capture via the dmabuf-capture wlroots example client.
2018-06-19Perform (partial) server initialization before dropping privileges.Tobias Blass
Some operations during backend creation (e.g. becoming DRM master) require CAP_SYS_ADMIN privileges. At this point, sway has dropped them already, though. This patch splits the privileged part of server_init into its own function and calls it before dropping its privileges. This fixes the bug with minimal security implications.
2018-06-18Preserve buffers during transactionsRyan Dwyer
* Also fix parts of the rendering where it was rendering the pending state instead of current.
2018-06-18Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-16Update for swaywm/wlroots#1060emersion
2018-06-12Fix keyboard shortcut handling inconsistenciesfrsfnrrg
* Ensure that modifier keys are identified even when the next key does not produce a keysym. This requires that modifier change tracking be done for each sway_shortcut_state. * Permit regular and --release shortcuts on the same key combination. Distinct bindings are identified for press and release cases; note that the release binding needs to be identified for both key press and key release events. * Maintain ascending sort order for the shortcut state list, and keep track of the number of pressed key ids, for simpler (and hence faster) searching of the list of key bindings. * Move binding duplicate detection into get_active_binding to avoid duplicating error messages.
2018-06-12Sort binding key listsfrsfnrrg
Sort the list comprising the set of keys for the binding in ascending order. (Keyboard shortcuts depend only on the set of simultaneously pressed keys, not their order, so this change should have no external effect.) This simplifies comparisons between bindings.
2018-06-11Merge remote-tracking branch 'upstream/master' into atomicRyan Dwyer
2018-06-09Merge pull request #2124 from emersion/drag-iconsDrew DeVault
Render drag icons
2018-06-09Implement gaps (PR #2047)Nate Symer
2018-06-09Render drag iconsemersion
2018-06-09Fix compilation errors related to disabled outputsemersion
2018-06-09Refactor everything that needs to arrange windowsRyan Dwyer
* The arrange_foo functions are now replaced with arrange_and_commit, or with manually created transactions and arrange_windows x2. * The arrange functions are now only called from the highest level functions rather than from both high level and low level functions. * Due to the previous point, view_set_fullscreen_raw and view_set_fullscreen are both merged into one function again. * Floating and fullscreen are now working with transactions.
2018-06-09Make main properties be the pending stateRyan Dwyer
2018-06-09WIP: Atomic layout updates ground workRyan Dwyer
2018-06-08Switch restore workspaces to a nested for-loopBrian Ashworth
2018-06-08Restore workspaces to outputs based on priorityBrian Ashworth
2018-06-08Merge pull request #2119 from martinetd/gcc-strtruncationemersion
sway/criteria: gcc string truncation warning fix
2018-06-08sway/criteria: gcc string truncation warning fixDominique Martinet
2018-06-08sway exec command: use waitpid instead of waitDominique Martinet
2018-06-07Remove strip quoting and fix strncpy-overlapBrian Ashworth
2018-06-07Merge pull request #2084 from RedSoxFan/runtime-var-expansionemersion
Runtime variable expansion
2018-06-06Switch output storing from list_t to wl_listBrian Ashworth
2018-06-06Address emersions comments on output re-enablingBrian Ashworth
2018-06-06Store sway_outputs so that they can be reenabledBrian Ashworth
2018-06-06Remove tab/stack check for focusing after a splitBrian Ashworth