aboutsummaryrefslogtreecommitdiff
path: root/sway
AgeCommit message (Collapse)Author
2019-02-05Fix close_popups for xdg-shellemersion
wlr_xdg_popup_destroy will destroy popups, so we need to walk the tree carefully. It's enough to just destroy all direct children, since destroying the parent will also destroy all children.
2019-02-05output_cmd_background: fix no file + valid modeBrian Ashworth
If output_cmd_background is given a valid mode as the first argument, then there is no file given and an error should be returned. join_args should not be called with an argc of zero since it sets the last character to the null terminator. With an argc of zero, the length is zero causing a heap buffer overflow when setting the byte before the start of argv to '\0'. This probably will not ever generate a segfault, but may cause data corruption to whatever is directly before it in memory. To make other such cases easier to detect, this also adds a sway_assert in join_args when argc is zero.
2019-02-05Initialize server so input manager is available.Connor E
2019-02-05If validating the config, do it as early as possible.Connor E
2019-02-05Merge pull request #3579 from RedSoxFan/fix-workspace-gaps-double-freeDrew DeVault
cmd_workspace_gaps: fix double free on bad amount
2019-02-05cmd_workspace_gaps: fix double free on bad amountBrian Ashworth
This fixes a double free in cmd_workspace_gaps when the amount given is invalid. The end pointer from strtol is part of the argument and should not be freed. Freeing the end pointer could result in a double free or bad free depending on whether or not the end pointer was at the start of the argument
2019-02-05IPC_COMMAND: split on newlineBrian Ashworth
This splits commands given in IPC_COMMAND on newline to match i3's behavior.
2019-02-05Fix quote strippingemersion
Let's not use !strcmp(…) anymore.
2019-02-05execute_command: dont strip quotes for exec_alwaysBrian Ashworth
This removes quote stripping for `exec_always` in `execute_command`. Since `exec_always` commands will be deferred in the config and processed by `execute_command`, the quotes need to be left intact like they are for `exec`.
2019-02-05load_include_configs: fix wordexp fail conditionBrian Ashworth
This fixes the failure condition for the wordexp call in load_include_configs. The only success value is zero. Since the error codes are positive, having the check be less than zero was causing segfaults on failure when accessing the words.
2019-02-03Merge pull request #3562 from ↵Drew DeVault
vilhalmer/focus_follows_mouse-workspace-last-inactive Focus workspace inactive node with focus_follows_mouse
2019-02-03seat_cmd_cursor: do not create non-existing seatBrian Ashworth
If a seat does not exist in seat_cmd_cursor, do not create it. A seat without any attachments is useless since it will have no capabilities. This changes `input_manager_get_seat` to have an additional argument that dictates whether or not to create the seat if it does not exist.
2019-02-03Fall back to wildcard in sway_cursor_constrainvilhalmer
2019-02-03Skip constraining cursor if no seat configvilhalmer
2019-02-03Skip wildcard seat config in destroy_removed_seatsvilhalmer
2019-02-03Focus ws inactive node with focus_follows_mousevilhalmer
2019-02-03Merge pull request #3551 from c-edw/RevertDoubleFreesDrew DeVault
Revert double frees.
2019-02-02cmd_seat: allow - to be used as alias for currentBrian Ashworth
This allows for `-` (hyphen) to be used as an alias for the current seat while sway is running. This alias was chosen since it is unlikely to interfere with any desirable seat identifier
2019-02-03seat_cmd_attach: defer while readingBrian Ashworth
Since the seats and inputs are not yet available while the config is being read, defer seat attachment requests
2019-02-01Revert "More frees."Connor E
This reverts commit eda1bf769f239a9e8d5a9907255a330e3113a649.
2019-02-01Revert "Add some missing frees."Connor E
This reverts commit b5d95f264d5b08f6228e05be680ee36fc06ca6d6.
2019-02-01Merge pull request #3543 from emersion/relative-pointer-usecDrew DeVault
relative-pointer-v1: time is in usec, not msec
2019-01-31pointer_constraint: change to a seat subcommandBrian Ashworth
This changes the `pointer_constraint` command to be a subcommand of seat to allow for per-seat settings. The current implementation that is not a seat subcommand will only operate on the current seat and will segfault in the config due to `config->handler_context.seat` only being set at runtime. This also allows for the wildcard identifier to be used to alter the pointer constraint settings on all seats and allows for the setting to be merged with the rest of the seat config.
2019-01-31Updates for scdoc 1.8.1Drew DeVault
2019-01-30Add details on `--whole-window` for bindsymAshkan Kiani
Updates sway.5 to include information on the usage of the `--whole-window` option in the context of the `bindsym` command, which modifies mouse bindings to allow them to operate over the whole window instead of just the titlebar. Also includes the disclaimer about mouse bindings only working over the title bar. Also fixes the escaping of the `BTN_LEFT` and `BTN_RIGHT` key mention. Add notes on --border and --exclude-titlebar Update the flags for bindcode command.
2019-01-30relative-pointer-v1: time is in usec, not msecemersion
2019-01-30Send pointer frames on tool eventsDrew DeVault
2019-01-30Missed a spot in pointer constraintsDrew DeVault
2019-01-30Add pointer_constraint commandDrew DeVault
2019-01-30Add relative pointerabsrd
2019-01-30Implement pointer-constraints-unstable-v1Las
2019-01-30criteria & scratchpad verify if show in another workspace (#3522)athrungithub
check if scratchpad is show in another workspace
2019-01-29Cleanup config reading failure error logsBrian Ashworth
This cleans up the log when sway fails to read a config file. The following changes have been made: - A missing error message has been added to the log when the config file is a directory instead of a regular file - In main, `goto` statements have been added after the `sway_terminate` calls instead of wrapping every block in `if (!terminate_request)` - Unnecessary NULL-checks around calls to free in `main` have been removed - Deferred command execution has been extracted to a separate function and the `Running deferred commands` log message will not be shown when there are no deferred commands.
2019-01-28Document cursor moving between adjacent outputsPeter Grayson
Add a sentence to sway-output.5.scd to highlight that the cursor can only be moved between immediately adjacent outputs. References issue #3529 Signed-off-by: Peter Grayson <pete@jpgrayson.net>
2019-01-29Remove bad assertion in container_handle_fullscreen_reparentRyan Dwyer
The assertion could trigger when called from workspace_wrap_children.
2019-01-28Cleanup log_envemersion
SWAY_CURSOR_* are not used anymore. LD_PRELOAD_PATH doesn't exist and has been replaced with LD_PRELOAD.
2019-01-28Check xdg_surface's role before using its toplevelmwenzkowski
Don't access xdg_surface->toplevel if xdg_surface->role is equal to WLR_XDG_SURFACE_ROLE_NONE, since this could lead to crash. The same checks are added for xdg_surface_v6. Fixes #3311
2019-01-28Introduce container_is_scratchpad_hiddenRyan Dwyer
Just a convenience function that improves readability of the code. Other things worth noting: * container_get_siblings and container_sibling_index no longer use the const keyword * container_handle_fullscreen_reparent is only ever called after attaching the container to a workspace, so its con->workspace check has been changed to an assertion
2019-01-28Center surface inside container when it's too smallRyan Dwyer
The goal here is to center fullscreen views when they are both too small for the output and refuse to resize to the output's dimensions. It has the side effect of also centering the view when it's too small for its container. Example clients that have this behaviour are emersion's hello-wayland and weston. It works by introducing surface_{x,y,width,height} properties to the container struct. The x and y represent layout-local coordinates where the surface will be rendered. The width and height are only used to track the surface's previous dimensions so we can detect when the client has resized it and recenter and apply damage accordingly. The new surface properties are calculated when a transaction is applied, as well as when a view resizes itself unexpectedly. The latter is done in view_update_size. This function was previously restricted to views which are floating, but can now be called for any views. For views which refuse to resize *smaller* than a particular size, such as gnome-calculator, the surface is still anchored to the top left as per the current behaviour.
2019-01-27Merge pull request #3423 from RyanDwyer/fullscreen-globalDrew DeVault
Implement fullscreen global
2019-01-27Merge pull request #3519 from emersion/pointer-frameDrew DeVault
Update for swaywm/wlroots#1503
2019-01-27Remove unnecessary underscores in man pagesDrew DeVault
2019-01-27Update for swaywm/wlroots#1503emersion
2019-01-25Implement fullscreen globalRyan Dwyer
2019-01-24Use sway_log_errno instead of strerrorIan Fan
2019-01-24Update for swaywm/wlroots#1402emersion
2019-01-23Make json-c include respect pkg-config --cflagsJan Beich
json-c.pc contains `Cflags: -I${includedir}/json-c`, so `<json-c/json.h>` won't be found unless the parent directory is searched by default.
2019-01-22Fix dead stores found by scan-buildM Stoeckl
In addition to removing unused code, two minor problems are fixed: (1) `resize set` and `resize adjust` did not error when given too many arguments. (2) `orientation` was incorrectly overridden to be 'U' for scroll events in the swaybar tray `handle_click` function.
2019-01-22Merge pull request #3494 from ianyfan/commandsDrew DeVault
i3 command behaviour compatibility fixes
2019-01-22root_scratchpad_remove_container: do not showBrian Ashworth
This removes the call to `root_scratchpad_show` from `root_scratchpad_remove_container` and places it in the `cmd_move_container`. This also moved the IPC `window::move` event to `cmd_scratchpad`.