aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-02-22input/cursor: allow whole-window bindings on wsBrian Ashworth
To match i3's behavior, this allows mouse bindings to be triggered over a workspace when `--whole-window` is given.
2019-02-22Merge pull request #3740 from Emantor/fix/ipc_allocsIan Fan
Fix small memory leaks reported in #3658
2019-02-22move scratchpad: hide visible scratchpad containerBrian Ashworth
This makes it so running `move [to] scratchpad` on a container already in the scratchpad does not return an error. To match i3's behavior, a visible scratchpad container will be hidden and a hidden scratchpad container will be treated as a noop.
2019-02-22commands/move: reintroduce wrongly removed NULL checkRouven Czerwinski
Commit d3d7956576341bbbfb60d045175b0e8a44752e0b removed this NULL check, which leads to the following backtrace: #0 0x0000557bd201df46 in node_is_view (node=0x0) at ../sway/sway/tree/node.c:41 #1 0x0000557bd1ff5d4e in seat_get_focus_inactive (seat=0x557bd3fc7580, node=0x0) at ../sway/sway/input/seat.c:968 current = 0x557bd2033485 #2 0x0000557bd2009f24 in cmd_move_container (argc=3, argv=0x557bd46b19c0) at ../sway/sway/commands/move.c:557 new_output_last_focus = 0x0 error = 0x0 node = 0x557bd469f360 workspace = 0x557bd4572ee0 container = 0x557bd469f360 no_auto_back_and_forth = false seat = 0x557bd3fc7580 old_parent = 0x0 old_ws = 0x557bd4572ee0 old_output = 0x557bd411f740 destination = 0x557bd46a0cc0 new_output = 0x557bd411f740 new_output_last_ws = 0x0 focus = 0x557bd469f360 __PRETTY_FUNCTION__ = "cmd_move_container" new_workspace = 0x557bd4572ee0 […] Reintroduce the NULL check to fix the bug. Fixes #3746
2019-02-21Handle NULL from output_get_active_workspaceBrian Ashworth
This modifies the places where output_get_active_workspace is called to handle a NULL result. Some places already handled it and did not need a change, some just have guard off code blocks, others return errors, and some have sway_asserts since the case should never happen. A lot of this is probably just safety precautions since they probably will never be called when `output_get_active_workspace` is not fully configured with a workspace.
2019-02-21Merge pull request #3743 from RedSoxFan/fix-output-get-active-workspaceDrew DeVault
output_get_active_workspace: check workspaces length
2019-02-21output_get_active_workspace: check workspaces lengthBrian Ashworth
If an output's node was dirty and the transaction was committed before a workspace was moved to or created for the output, the instruction would have a bad value for `state->active_workspace` due to a missing length check in `output_get_active_workspace`. If there was no focus on the output, the first workspace was being returned. If the workspace list was currently empty, the value was either garbage, or in the case of an output being disabled and re-enabled, a workspace that may have been previously freed. This just adds the length check to avoid returning out of bounds value.
2019-02-21run_as_ipc_client: free response after running the IPC commandRouven Czerwinski
Fixes memory leaks in the form of: Direct leak of 24 byte(s) in 1 object(s) allocated from: #0 0x7f5f7c2f4f30 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xedf30) #1 0x563c799569f2 in ipc_recv_response ../common/ipc-client.c:94 #2 0x563c79957062 in ipc_single_command ../common/ipc-client.c:138 #3 0x563c798a56cc in run_as_ipc_client ../sway/main.c:127 #4 0x563c798a6a3a in main ../sway/main.c:349 #5 0x7f5f7b4d609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
2019-02-21ipc-client: free payload after sending it over the socketRouven Czerwinski
Fixes memory leaks in the form of: Direct leak of 20 byte(s) in 1 object(s) allocated from: #0 0x7f5f7c2f4f30 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xedf30) #1 0x563c7995b36a in join_args ../common/stringop.c:268 #2 0x563c798a6a1a in main ../sway/main.c:348 #3 0x7f5f7b4d609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
2019-02-20output_evacuate: call workspace_consider_destroyBrian Ashworth
This calls `workspace_consider_destroy` on the workspace that was visible on an output that a workspace was just evacuated to. This prevents having hidden empty workspaces.
2019-02-20Merge pull request #3735 from emersion/primary-selection-v1Drew DeVault
Add wp-primary-selection-unstable-v1
2019-02-20Add wp-primary-selection-unstable-v1emersion
2019-02-19Merge pull request #3728 from ljedrz/polish_readmeDrew DeVault
Add Polish README
2019-02-19layout cmd: always operate on parent container, like i3Fixes #3724Eric Drechsel
2019-02-19Don't use SOCK_CLOEXECemersion
Manually set the CLOEXEC flag instead, since SOCK_CLOEXEC isn't POSIX.
2019-02-19ci: add FreeBSDemersion
2019-02-19Add Polish READMEljedrz
2019-02-19Merge pull request #3726 from emersion/alpine-ciDrew DeVault
ci: add Alpine build
2019-02-19ci: add Alpine CIemersion
2019-02-18Merge pull request #3714 from emersion/fix-drag-icon-map-listenerDrew DeVault
Fix drag icon map listener not removed
2019-02-18Merge pull request #3715 from yorickvP/ipc-visibleDrew DeVault
Feature: Add 'visible' key to view json response
2019-02-18Add 'visible' key to view json responseYorick van Pelt
2019-02-18Fix drag icon map listener not removedemersion
2019-02-18Merge pull request #3712 from RedSoxFan/fix-typo-seat-cursorDrew DeVault
seat_cmd_cursor: fix typo in expected syntax
2019-02-18Merge pull request #3713 from RedSoxFan/fix-mouse-bindingsDrew DeVault
Use container under cursor for mouse bindings
2019-02-17Use container under cursor for mouse bindingsBrian Ashworth
This matches i3's behavior of executing mouse bindings in regards to the container under the cursor instead of what is focused.
2019-02-17seat_cmd_cursor: fix typo in expected syntaxBrian Ashworth
This just fixes a typo in the expected syntax for seat_cmd_cursor
2019-02-17workspace_next_name: fallback to next available numberBrian Ashworth
This changes `workspace_next_name` to use the next available number as the workspace name instead of the number of outputs. This fixes the case where a number that is already in use could be returned. The workspace numbers in use have no relation to the number of outputs so it makes more sense to use the lowest available number
2019-02-17Add workspace {prev,next}_on_output --createDrew DeVault
This creates the next workspace if you hit the end.
2019-02-17Remove refs to unimplemented debuglog commandDrew DeVault
Closes #3695
2019-02-16Disconnect swaybg instead of killing itemersion
This is much more reliable. This also fixes race conditions when killing swaybg while it's doing a wl_display_roundtrip.
2019-02-17Fix Meson subproject boolean default optionsemersion
2019-02-16sway-input.5: document wildcard and identifier troubleshootingBrian Ashworth
This documents the wildcard character for both inputs and seats. There is also a tip added on trying the wildcard to verify a setting if the identifier does not appear to be working.
2019-02-16Remove unused header include/sway/tree/output.hemersion
2019-02-16Fix reload freeze when not modsetting current modeBrian Ashworth
This fixes the issue of the display freezing on reload with wlroots#1545. On master, all output configs are applied on reload. This may cause an output to have its config applied up to three times, instead of just once. The three cases are: output name, output identifier, and wildcard. Not only is this inefficient, but it can cause swaybg to be spawned and immediately killed. However, swaybg requires two roundtrips of wl_display (to obtain needed globals) before it enters its normal event loop. Modesetting will roundtrip the wl_display. Without modesetting, waitpid for killing swaybg could block infinitely due to swaybg being blocked by wl_display_roundtrip. This only configured an output once. It either uses the wildcard config or creates an empty wildcard config and applies that. This also fixes a bug where an output would not be reset when there is no output config to apply to it.
2019-02-16Merge pull request #3701 from emersion/meson-subproject-disable-unneededDrew DeVault
Disable unneeded wlroots subproject features
2019-02-16tray: fix memory leaksIan Fan
2019-02-16tray: when a service is lost, remove all matching itemsIan Fan
Before, only the first matching item would be removed, which could leave stale items.
2019-02-16Check layout before getting pointer surface coordsVincent Vanlaer
This fixes issues of clients at the edge of the screen, like swaybar, ignoring buttons.
2019-02-16Disable unneeded wlroots subproject featuresemersion
2019-02-16Merge pull request #3698 from yabirgb/masterDrew DeVault
Spanish translation of the README
2019-02-16Fix accentsYábir García
2019-02-16Add spanish link to the home READMEYábir García
2019-02-16Spanish translation of the READMEYábir Benchakhtir
2019-02-15Merge pull request #3692 from ianyfan/swaybarDrew DeVault
Fix crash and memory leak on bar termination
2019-02-15tray: use correct parameter to set bus slot to floatingIan Fan
Counter-intuitively, `sd_bus_slot_set_floating` expects 0 to set it to floating.
2019-02-15swaybar: prevent signal handler from firing during terminationIan Fan
This prevents a heap-use-after-free crash when sway terminates.
2019-02-15apply_output_config: dpms on before modesetBrian Ashworth
On the DRM backend, if an output is dpms'd off and a different output is hotplugged, the CRTC for the output is reclaimed. When modesetting an output without a CRTC, a CRTC will not be given to an output that is not desired to be enabled. This splits setting the dpms state in apply_output_config. If the output should be dpms on, the it is enabled before attempting to modeset. Otherwise, it is dpms'd off after setting everything else. This also adds DPMS_ON to the default output configs.
2019-02-14seatop_move_tiling: do not move to descendantBrian Ashworth
In seatop_move_tiling, it is possible to cause a stack overflow by dragging a container into one of its descendants. This disables the ability to move into a descendant.
2019-02-14seat: allow tree focus changes while layer focusedBrian Ashworth
This allows the focused inactive tree node and visible workspaces to be changed while a surface layer has focus. The layer temporarily loses focus, the tree focus changes, and the layer gets refocused.