aboutsummaryrefslogtreecommitdiff
path: root/include/sway/input
AgeCommit message (Collapse)Author
2018-08-12Implement resizing tiled containers via cursorRyan Dwyer
* The OP_RESIZE seat operation has been renamed to OP_RESIZE_FLOATING, and OP_RESIZE_TILING has been introduced. * Similar to the above, seat_begin_resize and handle_resize_motion have been renamed and tiling variants introduced. * resize.c's resize_tiled has to be used, so container_resize_tiled has been introduced in resize.c to allow external code to call it.
2018-08-01ipc: prevent emitting a workspace::focus event when moving a container to a ↵Ian Fan
different workspace or output When a container is moved from, say, workspace 1 to workspace 2, workspace 2 is focused in order to arrange the windows before focus is moved back to workspace 1, which caused a workspace:focus event from workspace 2 to workspace 1 to be emitted. This commit inhibits that event.
2018-07-29Bindings use advised keyboard repeat parametersfrsfnrrg
Now 'repeat_delay' and 'repeat_rate' control the initial delay and rate (per second) of repeated binding invocations. If the repeat delay is zero, binding repetition is disabled. When the repeat rate is zero, the binding is repeated exactly once, assuming no other key events intervene.
2018-07-29Implement key repeat for pressed key bindingsfrsfnrrg
Each sway_keyboard is provided with a wayland timer event source. When a valid keypress binding has been found, a callback to handle_keyboard_repeat is set. Any key event will either clear the callback or (if the new key event is a valid keypress binding) delay the callback again.
2018-07-28Add virtual keyboard protocolDrew DeVault
Ref #2373
2018-07-28When unfloating, return container to previously focused tiled containerRyan Dwyer
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.
2018-07-23Invoke mouse bindingsfrsfnrrg
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.
2018-07-22Store last button and use it when views request to move or resizeRyan Dwyer
2018-07-22Prevent re-uploading the same cursor image multiple timesRyan Dwyer
2018-07-22Replace static handle_end_operation with seat_end_mouse_operationRyan Dwyer
2018-07-22Implement xdg shell request_move and request_resize eventsRyan Dwyer
Also does a few other related things: * Now uses enum wlr_edges instead of our own enum resize_edge * Now uses wlr_xcursor_get_resize_name and removes our own find_resize_edge_name * Renames drag to move for consistency
2018-07-22Implement floating_modifier and mouse operations for floating viewsRyan Dwyer
This implements the following: * `floating_modifier` configuration directive * Drag a floating window by its title bar * Hold mod + drag a floating window from anywhere * Resize a floating view by dragging the border * Resize a floating view by holding mod and right clicking anywhere on the view * Resize a floating view and keep aspect ratio by holding shift while resizing using either method * Mouse cursor turns into resize when hovering floating border or corner
2018-07-18Don't unfocus when an override redirect window is mappedemersion
2018-07-15Make focus part of transactionsRyan Dwyer
Rather than maintain copies of the entire focus stack, this PR transactionises the focus by introducing two new properties to the container state and using those when rendering. * `bool focused` means this container has actual focus. Only one container should have this equalling true in its current state. * `struct sway_container *focus_inactive_child` points to the immediate child that was most recently focused (eg. for tabbed and stacked containers).
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-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-09Render drag iconsemersion
2018-06-01Comment to explain sway_shortcut_state listsfrsfnrrg
2018-06-01Rewrite shortcut handling code to avoid hardcoded valuesfrsfnrrg
The same shortcut algorithm is now used for keycodes, raw keysyms, and translated keysyms. Pressed keysyms are now stored in association with the keycodes that generated them. Modifier keycodes (and associated keysyms) are identified retroactively by the subsequent change to the modifier flags.
2018-05-28Move previous cursor_position inline.Scott Leggett
2018-05-28Store previous position in sway_cursor.Scott Leggett
2018-05-27Focus containers only on entry.Scott Leggett
2018-05-21Don't track damage for views on inactive tabsRyan Dwyer
2018-05-20Fix border commands from changing focusBrian Ashworth
2018-04-21Default to current time when triggering cursor eventsemersion
2018-04-10Clean up cursor simulation code.Danny Bautista
2018-04-10Implement cursor event simulation with sway commands.Danny Bautista
2018-04-08Merge pull request #1769 from acrisci/focus-inactive-fixesDrew DeVault
Focus inactive fixes
2018-04-0880charTony Crisci
2018-04-08Merge branch 'wlroots' into focus-inactive-fixesTony Crisci
2018-04-08Fix cursor motion issuesDrew DeVault
Use only one canonical cursor x/y position and send cursor enter when mouse is warped. Tangentally related to #1714
2018-04-08Implement tablet tool supportDrew DeVault
2018-04-07seat focus inactive children foreachTony Crisci
2018-04-07seat get focus inactive viewTony Crisci
2018-04-07Give keyboard focus to unmanaged xwayland surfacesemersion
This fixes dmenu
2018-04-04Address review feedbackDrew DeVault
2018-04-04Implement input-inhibit in sway, swaylockDrew DeVault
2018-04-04Add input inhibitor to input managerDrew DeVault
2018-04-02Give exclusive focus to layers above shell layerDrew DeVault
2018-04-02Merge branch 'wlroots' into split-containersTony Crisci
2018-04-02dont copy input configTony Crisci
2018-04-02remove unused attachment configTony Crisci
2018-04-02dont copy seat config on the seatTony Crisci
2018-04-02rename input-manager functionsTony Crisci
2018-04-02rename seat functionsTony Crisci
2018-03-31basic split containersTony Crisci
2018-03-31Address review feedbackDrew DeVault
2018-03-30Handle set_cursor requests from clientsemersion
Allow clients to set a custom cursor if they have the seat's pointer focus.
2018-03-29Revert "Merge pull request #1653 from swaywm/revert-1647-refactor-tree"Tony Crisci
This reverts commit 472e81f35d689d67cda241acafda91c688d61046, reversing changes made to 6b7841b11ff4cd35f54d69dc92029855893e5ce0.
2018-03-29Revert "Refactor tree"Drew DeVault