aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-02-11workspace_get_initial_output: handle focused layer1.0-rc2Brian Ashworth1-3/+9
When a layer surface is focused, `seat_get_focused_workspace` will be NULL. This changes `workspace_get_initial_output` to use output of the focus inactive. If the focus inactive is also NULL, then either the first output or the noop output will be used as fallbacks.
2019-02-11Abort early when XDG_RUNTIME_DIR is not setBrian Ashworth1-0/+8
This aborts sway and displays an error message about XDG_RUNTIME_DIR not being set without initializing the wl_display or logging any other information.
2019-02-11fix misc memory leaksBrian Ashworth3-2/+3
This fixes a few misc memory leaks reported by asan: - Items of `config->config_chain` are now freed instead of just the list itself - `bar->swaybar_command` is now freed - The result returned by a seat subcommand is now returned instead of leaked
2019-02-11ipc: handle unnamed xkb_active_layout_nameBrian Ashworth2-3/+3
If the active xkb_layout does not have a name, use `NULL` instead of `json_object_new_string(NULL)`. This also makes it so swaymsg will pretty print this as `(unnamed)`.
2019-02-11view: remove pointer constraints on unmapBrian Ashworth1-0/+7
If the view has any pointer constraints, ensure they are removed before the view is unmapped and the surface is no longer tied to the view.
2019-02-11input/keyboard: respect solo repeat_{rate,delay}Brian Ashworth1-6/+10
If `repeat_rate` or `repeat_delay` is set without the other being set, the default was being used for both. This changes the logic to respect the value given and use the default for the other when only one is set.
2019-02-11fix double free for mode toggle if bar was invisibleRouven Czerwinski1-1/+1
If the bar was set to "invisible" and subsequently "toggle" was send twice, the new mode was never set and the bar->mode was double freed. Fix this by not requiring the bar->mode to be "hide" and instead show it unconditionally, because it was either hidden or invisible. Fixes #3637
2019-02-11container_at_stacked: skip titles when zero pixelsBrian Ashworth1-4/+6
It is possible to make the title bars have a zero pixel height while stacked, by using a blank font and no padding. This causes a division by zero when attempting to calculate the child index in container_at_stacked, which then results in a segfault when attempting to access the child at that bad index (INT_MIN). This just skips the check to see if the cursor is over a title bar of a child of a stacked container when the title bar height is zero since there will be no title bars.
2019-02-11bar_cmd_modifier: add support for noneBrian Ashworth2-12/+20
sway-bar(5) documents `modifier none`, which comes from i3. This implements the functionality for `modifier none` since it was not previously implemented. The bar modifier toggles visibility of the bar when the bar mode is set to hide. When the bar modifier is set to `none`, the ability to toggle visibility of the bar will be disabled.
2019-02-11seat_configure_tablet_tool: configure xcursorBrian Ashworth1-0/+1
Since a tablet tool provides the WL_SEAT_CAPABILITY_POINTER capability, sway will attempt to use the xcursor manager to set a cursor image. If the tablet tool was the first (and possibly only) device to provide the capability for the seat, the xcursor manager was not being configured before attempting to set a cursor image. This was due to `seat_configure_xcursor` only being called in `seat_configure_pointer`. Since the xcursor manager was NULL in this case, it would cause a segfault when attempting to set a cursor image. This adds a call to `seat_configure_xcursor` in `seat_configure_tablet_tool` to ensure that the seat has a xcursor manager.
2019-02-11load_main_config: use given path, store realpathBrian Ashworth1-3/+2
Since `load_include_config` compares against the realpath of a config file when checking if a config has already been added, the main config's realpath has to be added to the config_chain. However, includes from the main config should be processed relative to the path given to allow for symbolic links. This stores the realpath in `config->config_chain`, but uses the given path for all other operations.
2019-02-11Clarify error for options and positional argsBrian Ashworth1-1/+7
When both options and positional arguments are given, sway would print the error `Don't use options with the IPC client`. Over the past several months, it seems like users are including this error message in issues instead of a debug log due to not understanding that the error message means there is an issue with their command. This makes the error message more verbose and will hopefully make it so more users understand that the message is not a bug in sway, but with the command used.
2019-02-11ipc_has_event_listeners: fix inverted check of subscribed_eventsDaniel Eklöf1-1/+1
subscribed_events is a bit mask, with each *set* bit representing an event the client has subscribed to.
2019-02-11load_main_config: add realpath to config_chainBrian Ashworth1-3/+11
Since `load_include_config` compares against the realpath of a config file when checking if a config has already been added, the main config's realpath has to be added to the config_chain.
2019-02-11Fix close_popups for xdg-shellemersion1-12/+4
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-11output_cmd_background: fix no file + valid modeBrian Ashworth2-0/+6
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-11Initialize server so input manager is available.Connor E1-6/+6
2019-02-11If validating the config, do it as early as possible.Connor E1-11/+12
2019-02-11cmd_workspace_gaps: fix double free on bad amountBrian Ashworth1-1/+0
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-11Set version in project fileMichael Vetter2-9/+4
Let's set the version in the meson file instead of declaring it outside. In case git is installed we use the git hash as version. Instead it isn't (like on a clean build system), let's use the version defined in the project.
2019-02-11IPC_COMMAND: split on newlineBrian Ashworth1-0/+10
This splits commands given in IPC_COMMAND on newline to match i3's behavior.
2019-02-11Fix quote strippingemersion1-1/+2
Let's not use !strcmp(…) anymore.
2019-02-11execute_command: dont strip quotes for exec_alwaysBrian Ashworth1-1/+1
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-11swaynag: remove trailing newlines in configBrian Ashworth1-0/+4
Now that swaynag uses getline (instead of the old readline), the trailing newline characters have to be removed when reading the config
2019-02-11load_include_configs: fix wordexp fail conditionBrian Ashworth1-1/+1
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-11seat_cmd_cursor: do not create non-existing seatBrian Ashworth4-9/+13
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-11Focus ws inactive node with focus_follows_mousevilhalmer1-1/+1
2019-02-11Merge pull request #3563 from ↵Brian Ashworth2-1/+10
vilhalmer/fix-wildcard-seat-constrain-crashes-during-reconfig Fix wildcard seat constrain crashes during reconfig
2019-02-03Merge pull request #3551 from c-edw/RevertDoubleFrees1.0-rc1Drew DeVault5-9/+3
Revert double frees.
2019-02-03Merge pull request #3554 from RedSoxFan/seat-current-aliasDrew DeVault2-5/+16
cmd_seat: allow - to be used as alias for current
2019-02-02cmd_seat: allow - to be used as alias for currentBrian Ashworth2-5/+16
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 Ashworth1-0/+3
Since the seats and inputs are not yet available while the config is being read, defer seat attachment requests
2019-02-01Fix #3445: swaybar tray inerited thems not processedStefan Schick1-1/+1
2019-02-01Revert "More frees."Connor E2-3/+0
This reverts commit eda1bf769f239a9e8d5a9907255a330e3113a649.
2019-02-01Revert "Add some missing frees."Connor E3-6/+3
This reverts commit b5d95f264d5b08f6228e05be680ee36fc06ca6d6.
2019-02-01Merge pull request #3543 from emersion/relative-pointer-usecDrew DeVault1-1/+2
relative-pointer-v1: time is in usec, not msec
2019-02-01Merge pull request #3550 from RedSoxFan/seat-pointer-constraintDrew DeVault10-19/+36
pointer_constraint: change to a seat subcommand
2019-01-31pointer_constraint: change to a seat subcommandBrian Ashworth10-19/+36
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-31Rebase #1636 against current masterv44r3-2/+9
2019-01-31readme: scdoc 1.8.1 is now requiredemersion1-1/+1
2019-01-31Updates for scdoc 1.8.1Drew DeVault2-3/+3
2019-01-30Add details on `--whole-window` for bindsymAshkan Kiani1-3/+16
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 msecemersion1-1/+2
2019-01-30Send pointer frames on tool eventsDrew DeVault1-0/+3
2019-01-30Missed a spot in pointer constraintsDrew DeVault1-1/+1
2019-01-30Add pointer_constraint commandDrew DeVault8-0/+66
2019-01-30Add relative pointerabsrd3-0/+21
2019-01-30Implement pointer-constraints-unstable-v1Las8-24/+261
2019-01-30criteria & scratchpad verify if show in another workspace (#3522)athrungithub1-1/+3
check if scratchpad is show in another workspace
2019-01-29Merge pull request #3535 from RedSoxFan/cleanup-log-on-config-failureDrew DeVault3-32/+39
Cleanup config reading failure error logs