summaryrefslogtreecommitdiffstats
path: root/sway
Commit message (Collapse)AuthorAge
...
| * When unfloating, return container to previously focused tiled containerLibravatar Ryan Dwyer2018-07-28
| | | | | | | | | | | | This introduces seat_get_focus_inactive_tiling and updates `focus mode_toggle` to use it instead, because the previous method wasn't guaranteed to return a tiling view.
| * Operate on floating split container when a child is focusedLibravatar Ryan Dwyer2018-07-28
| |
| * Fix crash when a child of a floating container is in the scratchpadLibravatar Ryan Dwyer2018-07-28
| |
| * Fix clicking a floating split containerLibravatar Ryan Dwyer2018-07-28
| | | | | | | | | | | | | | It would focus the split container rather than the child. This commit makes it track the child and the split container separately and send the surface click to the child.
| * Allow containers to floatLibravatar Ryan Dwyer2018-07-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Things worth noting: * When a fullscreen view unmaps, the check to unset fullscreen on the workspace has been moved out of view_unmap and into container_destroy, because containers can be fullscreen too * The calls to `container_reap_empty_recursive(workspace)` have been removed from `container_set_floating`. That function reaps upwards so it wouldn't do anything. I'm probably the one who originally added it... * My fix (b14bd1b0b1536039e4f46fe94515c7c44e7afc61) for the tabbed child crash has a side effect where when you close a floating container, focus is not given to the tiled container again. I've removed my fix and removed the call to `send_cursor_motion` from `seat_set_focus_warp`. We should consider calling it from somewhere earlier in the call stack.
* | Merge pull request #2368 from RyanDwyer/handle-out-of-fdsLibravatar Drew DeVault2018-07-28
|\ \ | | | | | | Handle out-of-fd situations gracefully for transaction and urgent timers
| * | Include errno.hLibravatar Ryan Dwyer2018-07-28
| | |
| * | Show errno description in logLibravatar Ryan Dwyer2018-07-28
| | |
| * | Handle out-of-fd situations gracefully for transaction and urgent timersLibravatar Ryan Dwyer2018-07-28
| |/
* / Fix crash when a deferred command destroys a workspaceLibravatar Ryan Dwyer2018-07-28
|/ | | | | | | | | | | | | | | | | Example config that produces the crash (with a single output): workspace 1 workspace 2 Prior to this commit, container_workspace_free would manually mark the L_FLOATING container as destroying and free it. This assumed the L_FLOATING container would never be involved in a transaction. This was a safe assumption when it was implemented, but became an incorrect assumption once parent/child relationships became transactionised. This commit removes the L_FLOATING free from container_workspace_free. When the workspace is destroyed, it starts the normal destroy process on the L_FLOATING container so it can be freed via transactions.
* Second attempt at fixing transaction use-after-freeLibravatar Ryan Dwyer2018-07-28
| | | | | | | | | The solution used in 073ac425d5bf6f6393eb91d9b5f84e3caa68f511 doesn't work in all cases because the freed instruction might be ahead in the list, not necessarily behind. The new solution delays running the queue until after the loop has finished iterating, thus avoiding the problem completely.
* Fix use after free in transactionsLibravatar Ryan Dwyer2018-07-28
| | | | | | | In set_instructions_ready, calling set_instruction_ready may cause any number of transactions to get applied, which removes them from the list being iterated. The iteration variables need to be adjusted accordingly.
* Preserve workspace nameLibravatar Mihai Coman2018-07-28
|
* Fix assign to workspaceLibravatar Ryan Dwyer2018-07-27
|
* Refactor view_mapLibravatar Ryan Dwyer2018-07-26
| | | | | | | | | | | * Move workspace selection into separate function * Instead of keeping a `prev_focus` variable, do the check in `should_focus` (ie. views can only take focus if they're mapped into the active workspace) * Fix assign-to-output - it previously set `prev_focus` but should be `target_sibling` * Remove call to `workspace_switch` as we'll only ever focus the view if it's in the active workspace
* Fix indentLibravatar Ryan Dwyer2018-07-26
|
* Allow containers to be fullscreenLibravatar Ryan Dwyer2018-07-26
|
* Fix LEDs for configured modifier statesLibravatar ProgAndy2018-07-25
|
* Restrict CapsLock and NumLock commands to the configuration fileLibravatar ProgAndy2018-07-25
|
* Add documentation for xkb_capslock/xkb_numlockLibravatar ProgAndy2018-07-25
|
* Add xkb_numlock/xkb_capslock commands (#2311)Libravatar ProgAndy2018-07-25
|
* Implement setting NumLock and CapsLock statusLibravatar ProgAndy2018-07-25
| | | | | | After setting the keymap, try to enable NumLock and disable CapsLock. This only works if sway has the xkb master state and controls the keyboard. Prepare configuration settings for later use as well.
* fix #2355: "move workspace to output up" crashesLibravatar Cédric Cabessa2018-07-25
| | | | | | | | | when using 2 display, if scaling is different `container_update_textures_recursive` is called when moving workspace on different display. We need to call `container_update_title_textures` only for container of type "CONTAINER" or "VIEW" in order to be consistent with the assert in `update_title_texture`.
* Merge pull request #2353 from emersion/render-opaque-overlayLibravatar Drew DeVault2018-07-25
|\ | | | | Improve rendering with a fullscreen opaque overlay surface
| * Improve rendering with a fullscreen opaque overlay surfaceLibravatar emersion2018-07-25
| | | | | | | | | | | | | | | | | | | | | | | | The rendering code doesn't use the exclusive input surface at all anymore to decide to skip rendering of shell surfaces. This fixes a weird situation in which a client requests exclusive input but isn't an overlay layer surface. The renderer also renders all overlay surfaces in this situation, not just one. This simplifies the code and fixes rendering when there are more than one overlay surfaces (e.g. for a virtual keyboard to type the lockscreen password).
* | Merge pull request #2350 from ppascher/xwayland-optionalLibravatar Drew DeVault2018-07-25
|\ \ | | | | | | Added meson option to allow building sway without xwayland support
| * | more style fixes, reorder config.h includeLibravatar Pascal Pascher2018-07-25
| | |
| * | reverted includes of "sway/config.h" and replaced with "config.h" from meson ↵Libravatar Pascal Pascher2018-07-25
| | | | | | | | | | | | build
| * | more style fixes, included "sway/config.h" where neededLibravatar Pascal Pascher2018-07-25
| | |
| * | style fixes, exclude sway/desctop/xwayland.c when enable_xwayland: falseLibravatar Pascal Pascher2018-07-24
| | |
| * | Added meson option "enable_xwayland" (default: true) to enable/disable ↵Libravatar Pascal Pascher2018-07-24
| | | | | | | | | | | | xwayland support
* | | Fix crash when closing last child of a tabbed containerLibravatar Ryan Dwyer2018-07-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The crash only occurs if the mouse cursor is above the tabbed container when the last child is closed. Introduced in 03d49490ccff3c5c81bea73622c8616fa61eb3dd, over a week ago and unnoticed until now :O The above commit changes the behaviour of a focus change. When you change focus, it sends pointer motion which makes the client set a new cursor image. We already had this behaviour for workspace switching, but this commit adds it for view switching too, such as in a tabbed container or when closing a view. The sequence of events that leads to the crash is: * The last child of a tabbed container unmaps, which triggers a `destroy` event before we've cleaned up the child or reaped the tabbed container. * The seat code listens to the `destroy` event and removes the seat container from the focus stack. As part of this, it decides to set focus to the parent (my fix alters this decision). * When setting focus to the new parent, the container motion is sent as per the previously mentioned commit. * The motion code uses `container_at`, which encounters the tabbed container and its child in a half destroyed state, and everything blows up from there. `con->parent` is needed because scratchpad containers don't have parents if they're hidden, so this probably fixes a crash when a hidden scratchpad container closes too. The `con->parent->children->length > 1` check should catch any cases where the parent is about to be reaped.
* | | Change button var passed to seat_begin_moveLibravatar Brian Ashworth2018-07-24
| | |
* | | Implement floating_modifier <mod> [inverse|normal]Libravatar Brian Ashworth2018-07-24
|/ /
* | Merge pull request #2165 from swaywm/pid-workspacesLibravatar Drew DeVault2018-07-24
|\ \ | | | | | | Implement pid->workspace tracking
| * | Address @emersion's review commentsLibravatar Drew DeVault2018-07-24
| | |
| * | Merge branch 'master' into pid-workspacesLibravatar Drew DeVault2018-07-23
| |\|
| * | Implement pid->workspace trackingLibravatar Drew DeVault2018-07-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | When you spawn a process with the exec command, sway now notes the workspace you had focused and the pid of the child process, then assigns that workspace to the child when its window appears. Some of this is carried over from sway 0.15, but with some major refactoring and centralization of state.
* | | Fix crash when clicking certain surfacesLibravatar Ryan Dwyer2018-07-24
| | | | | | | | | | | | cont was NULL.
* | | Make mod+resize work in any directionLibravatar Ryan Dwyer2018-07-24
| | | | | | | | | | | | | | | | | | | | | This makes it so if you hold mod and right click on a surface to resize it, the resize direction is chosen based on which quarter of the surface you've clicked. The previous implementation only resized towards the bottom right.
* | | Merge branch 'master' into mouse-bindingsLibravatar Ryan Dwyer2018-07-24
|\ \ \
| * | | Also extract first workspace name from bindcodesLibravatar frsfnrrg2018-07-23
| | | |
| * | | Address review comments on parse_booleanLibravatar Brian Ashworth2018-07-23
| | | |
| * | | Switch to using a function to parse booleansLibravatar Brian Ashworth2018-07-23
| | |/ | |/|
* | | Invoke mouse bindingsLibravatar frsfnrrg2018-07-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The mouse binding logic is inspired/copied from the keyboard binding logic; we store a sorted list of the currently pressed buttons, and trigger a binding when the currently pressed (or just recently pressed, in the case of a release binding) buttons, as well as modifiers/container region, match those of a given binding. As the code to execute a binding is not very keyboard specific, keyboard_execute_command is renamed to seat_execute_command and moved to where the other binding handling functions are. The call to transaction_commit_dirty has been lifted out.
* | | Parse mouse binding optionsLibravatar frsfnrrg2018-07-23
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First, the existing sway_binding structure is given an enumerated type code. As all flags to bindsym/bindcode are boolean, a single uint32 is used to hold all flags. The _BORDER, _CONTENTS, _TITLEBAR flags, when active, indicate in which part of a container the binding can trigger; to localize complexity, they do not overlap with the command line arguments, which center around _TITLEBAR being set by default. The keyboard handling code is adjusted for this change, as is binding_key_compare; note that BINDING_LOCKED is *not* part of the key portion of the binding. Next, list of mouse bindings is introduced and cleaned up. Finally, the binding command parsing code is extended to handle the case where bindsym is used to describe a mouse binding rather than a keysym binding; the difference between the two may be detected as late as when the first key/button is parsed, or as early as the first flag. As bindings can have multiple keycodes/keysyms/buttons, mixed keysym/button sequences are prohibited.
* | Fix some cases where the cursor doesn't updateLibravatar Ryan Dwyer2018-07-24
| | | | | | | | | | | | | | cursor_set_image only uploads the named image if it doesn't match the previous named image. This means when setting the cursor image to a surface as given by a client, we have to clear the currently stored image.
* | Add missing checks to fix 2339Libravatar Brian Ashworth2018-07-23
| |
* | fix crash on new output while swaylock is runningLibravatar somdoron2018-07-23
| |
* | Store scratchpad list in sway_root instead of serverLibravatar Ryan Dwyer2018-07-23
| |