Ryan Dwyer
1e4807efa0
Don't return pending children in seat_get_active_current_child
...
Fixes #2192 .
seat_get_active_current_child is intended to return a child of the given
container which has finished its mapping transaction and is able to be
rendered on screen. The previous implementation was capable of returning
a pending child, which caused a child of a tabbed or stacked view to be
rendered prematurely while it was mapping.
6 years ago
Ryan Dwyer
a2fbb20a61
Merge remote-tracking branch 'upstream/master' into atomic
7 years ago
Armin Preiml
1eede432fc
fix handling key modifiers if not pressed at first
...
fixes #2169
7 years ago
Ryan Dwyer
bf38081382
Merge branch 'master' into xwayland-wants-float
7 years ago
Tony Crisci
e9ad10c2d6
dont focus-follow-mouse when keyboard grab
7 years ago
Ryan Dwyer
32b865e610
Fix crash when deleting last child in a tabbed or stacked container
...
There was no `current` child because the container was destroyed. This
makes it fall back to looking in the parent's current children list.
7 years ago
emersion
cda66e9a26
Automatically float xwayland windows
7 years ago
frsfnrrg
ca061ba8bf
Fix keyboard shortcut handling inconsistencies
...
* 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.
7 years ago
emersion
cfd02918c0
Render drag icons
7 years ago
Scott Leggett
609c420501
Initialise previous cursor position.
...
Fix the problem with focus jumping to the container under the cursor
when first starting sway.
7 years ago
Ryan Dwyer
bcdb676abb
Don't set focus to NULL when clicking a surface which has no container
7 years ago
Ryan Dwyer
9253278328
Restore focus when unmapping layer shell surfaces
7 years ago
Ryan Dwyer
57e78414fa
Fix seat_get_active_child
...
seat_get_active_child is used for tabbed and stacked containers to get
the active child. The previous implementation used seat_get_focus_inactive
then ascended the tree to the child of the tabbed/stacked container, but
this fails when the workspace itself is stacked or tabbed and the most
recently active child is floating.
The new implementation takes a more simple approach, where it directly
scans the focus stack for the first immediate child which isn't the
floating container.
Fixes #2098 .
7 years ago
Brian Ashworth
7c810dc344
Make command block implementation generic
7 years ago
frsfnrrg
78b7b46895
Style fix, redundant entry removal, fix extra keysym delete
7 years ago
frsfnrrg
480f0c593c
Rename update_shortcut_model to update_shortcut_state
7 years ago
frsfnrrg
83d559dd03
Rename check_shortcut_model to get_active_binding
7 years ago
frsfnrrg
c53e4e6cde
Style fixed for keyboard.c
7 years ago
frsfnrrg
f2fe93d171
Remove almost-always redundant loop in key handling
7 years ago
frsfnrrg
a056419ad7
Rewrite shortcut handling code to avoid hardcoded values
...
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.
7 years ago
Drew DeVault
e605dc43bb
Fix mouse warping interaction with layout coords
7 years ago
Ryan Dwyer
e4e912ea91
Store swayc coordinates as layout-local
7 years ago
Ryan Dwyer
1f2e399ade
Implement floating
7 years ago
Ryan Dwyer
7c7d24600b
Fix ancestor typos
7 years ago
Drew DeVault
b2c0ba5b18
Merge pull request #2050 from smlx/focus-fix
...
Focus containers only on entry.
7 years ago
frsfnrrg
a78a5684ea
Implement bindsym/bindcode --locked
...
Adds the --locked flag to bindsym and bindcode commands.
When a keyboard's associated seat has an exclusive client
(i.e, a screenlocker), then bindings are only executed if
they have the locked flag. When there is no such client,
this restriction is lifted.
7 years ago
Scott Leggett
4d8120ccf3
Improve comment.
7 years ago
Scott Leggett
b57f88e7db
Avoid assert on container type.
7 years ago
Scott Leggett
1b8de39287
Move previous cursor_position inline.
7 years ago
Scott Leggett
d1ebbebea0
Remove unused function.
7 years ago
Scott Leggett
0039f7a4fd
Simplify logic, remove redundant variables.
7 years ago
Scott Leggett
dd86444e59
Rely on view_is_visible rather thank walking the tree ourselves.
7 years ago
Scott Leggett
4cd304e4ba
Store previous position in sway_cursor.
7 years ago
Scott Leggett
06098bef98
Focus containers only on entry.
7 years ago
Drew DeVault
fea654a6ce
Replace oft-failing abort with if statement
...
Fixes #2045
7 years ago
Ivan Chebykin
464ec44b00
Check for next_focus before assert
7 years ago
Ivan Chebykin
6e6b0decd9
Fix usage of sway_assert
7 years ago
Ivan Chebykin
820a8c9c2d
Moved visibility check of of loop, added asserts
7 years ago
Ivan Chebykin
740234a4bc
Break after first tabbed/stacked layout
7 years ago
Ivan Chebykin
53516fa03f
Fix mouse focusing for horizontal/vertical views in tabbed containers
7 years ago
Ivan Chebykin
f85d3e15ba
Fixed styling issues
7 years ago
Ivan Chebykin
e19fe56e2f
Focus inactive container instead of checking cursor position
7 years ago
Ivan Chebykin
3b67253312
Skip all nested containers
7 years ago
Ivan Chebykin
c62efbb5ce
Implement correct focusing for tabbed containers
7 years ago
Ivan Chebykin
c1be4b0153
Fix focusing from other containers
7 years ago
Ivan Chebykin
87af08966a
Don't focus tabbed and stacked containers on mouseover
7 years ago
Drew DeVault
8bbf78fdd4
Fix focus follows mouse with no focus
7 years ago
Ryan Dwyer
efc07fb3d4
Don't track damage for views on inactive tabs
7 years ago
Ryan Dwyer
c08f9bf257
Implement tabbed layout
7 years ago
Brian Ashworth
82cd55a670
Fix border commands from changing focus
7 years ago
Drew DeVault
a3d3c819cf
Fix focus_follows_mouse over swaybar
...
If you moved your mouse over swaybar (e.g. to scroll between
workspaces), focus would move to the workspace. This is not the right
thing to do. The solution is complicated by the fact that if you move
your mouse into a new output with an empty workspace, that workspace
_should_ receive focus.
7 years ago
Mattias Eriksson
8fbafbfab5
Idle handling for dpms/lockscreen et al
...
Swayidle handles idle events and allows
for dpms and lockscreen handling. It also
handles systemd sleep events, and can
raise a lockscreen on sleep
Fixes #541
7 years ago
emersion
50298dc901
Send pointer discrete axis values and source
...
Update for swaywm/wlroots#970
7 years ago
Ryan Dwyer
83e314bf51
Highlight all child borders when using focus parent
7 years ago
emersion
70b80b4698
Damage container on focus
7 years ago
Drew DeVault
029c9b1796
Merge pull request #1907 from emersion/backend-input-mapping
...
Default to backend-wise input device mapping, if any
7 years ago
Drew DeVault
d233e75eec
Hide cursor on touch down
7 years ago
emersion
424006089e
Default to backend-wise input device mapping, if any
7 years ago
Drew DeVault
52aa245b24
Implement basic touch support
...
This required changing container_at_cursor to container_at_coords so
that we could get the appropriate surface (and sx/xy) without moving the
cursor.
Future work:
- Simulate a cursor for clients which have not bound to wl_touch
- Keep sending motion events when moving outside the surface (#1892 )
- Bind gestures to sway commands
7 years ago
emersion
976e6b99b6
Merge branch 'master' into refactor-arrange-windows
7 years ago
Ryan Dwyer
167c2e1aa9
Refactor arrange_windows()
...
Replaces arrange_windows() with arrange_root(), arrange_output(),
arrange_workspace() and arrange_children_of().
Also makes fullscreen views save and restore their dimensions, which
allows it to preserve any custom resize and is also a requirement for
floating views once they are implemented.
7 years ago
emersion
860d2384b4
Update for swaywm/wlroots#923
7 years ago
emersion
ff61df17ff
Add map_from_region command
7 years ago
emersion
3ed3bdf03f
Fix segfault when switching back to workspace with osu!
7 years ago
emersion
4cf77e1de4
Default to current time when triggering cursor events
7 years ago
emersion
33ed279494
Update cursor when workspace focus changes
7 years ago
Drew DeVault
777800e37a
Fix qutebrowser crash on context menu dismissal
7 years ago
Drew DeVault
21eb63cc9e
Merge branch 'master' into fullscreen
7 years ago
Ryan Dwyer
5b30391383
Make key repeat configurable
...
This creates two input commands for configuring the repeat delay and rate.
Example config:
input "myidentifier" {
repeat_delay 250
repeat_rate 25
}
7 years ago
Ryan Dwyer
8d06b222f0
Fullscreen rendering and input fixes.
...
* Render background when using fullscreen, because transparency.
* Check that fullscreen surface allows input.
* Don't look for surfaces in top layer if there's a fullscreen view.
7 years ago
Ryan Dwyer
35ccdd67a8
More fullscreen fixes.
...
* Render fullscreen views without wlr function, which makes popups and
lockscreen work.
* Don't allow input events to surfaces behind fullscreen views.
* Use correct output dimensions (for rotated outputs).
7 years ago
Ryan Dwyer
c685ef081f
Create sway_workspace struct.
7 years ago
Ryan Dwyer
52420cc24d
Implement fullscreen.
7 years ago
db
f555edf353
remove empty workspace when focusing its output
...
Until now, focus changing code only considered cleaning up the last focused
workspace. This commit adds removal of empty workspace from output that just
received focus on a different workspace.
Fixes : #1797
7 years ago
Dominique Martinet
1fd21650d7
seat_set_focus_wrap: fix use-after-free when destroying last focused container
7 years ago
Danny Bautista
1edb2bd892
Implement cursor event simulation with sway commands.
7 years ago
Drew DeVault
07b6be6214
Merge pull request #1769 from acrisci/focus-inactive-fixes
...
Focus inactive fixes
7 years ago
Drew DeVault
0e3ddf255e
Add input "identifier" map_to_output "identifier"
7 years ago
Tony Crisci
ae78f6fb93
Merge branch 'wlroots' into focus-inactive-fixes
7 years ago
Drew DeVault
9c5a88a7bd
Fix cursor motion issues
...
Use only one canonical cursor x/y position and send cursor enter when
mouse is warped.
Tangentally related to #1714
7 years ago
emersion
5ebc99253a
Use wlr_surface_point_accepts_input for unmanaged surfaces
7 years ago
Tony Crisci
46280460a5
push all parents of focused container in focus stack
7 years ago
Drew DeVault
9114d3b84c
Implement tablet tool support
7 years ago
Tony Crisci
de811823b6
seat focus inactive children foreach
7 years ago
Tony Crisci
c0f9ee7bd1
seat get focus inactive view
7 years ago
emersion
2b357af7ee
Give keyboard focus to unmanaged xwayland surfaces
...
This fixes dmenu
7 years ago
Drew DeVault
603e0e42c5
Add debug tree view
7 years ago
Drew DeVault
cca420b2f8
Fix focus_follows_mouse issues
7 years ago
Drew DeVault
b08f7e5183
Fix deletion of still-visible workspaces on unfocus
7 years ago
emersion
641807d920
Handle unmanaged surfaces motion
7 years ago
Tony Crisci
65f254f3fb
Merge branch 'wlroots' into fix-focus-inactive
7 years ago
Tony Crisci
deda37469a
fix focus child
7 years ago
emersion
8eff00f723
Remove unused SWAY_VIEW_TYPES
7 years ago
Tony Crisci
3e61718053
try to fix focus-inactive
7 years ago
Drew DeVault
d2d050d59c
Address review feedback
7 years ago
Drew DeVault
b7e7794912
Implement input-inhibit in sway, swaylock
7 years ago
Drew DeVault
06fbd51ff5
Add input inhibitor to input manager
7 years ago
Drew DeVault
3ede718c06
Refocus the last focused container on lock exit
7 years ago
Tony Crisci
741e3959e3
Merge branch 'wlroots' into split-containers2
7 years ago
Tony Crisci
97b171649d
move output damage to workspace destructor
7 years ago
Tony Crisci
b4c5f79725
move view and workspace destructors to container.c
7 years ago
Drew DeVault
0bf3b88019
Give layer shells under the shell layer focus
7 years ago
Drew DeVault
56078edd65
Give exclusive focus to layers above shell layer
7 years ago
Tony Crisci
a89096278b
Merge branch 'wlroots' into split-containers
7 years ago
Tony Crisci
d434da5632
Merge branch 'wlroots' into split-containers
7 years ago
emersion
a4a241697a
Merge branch 'wlroots' into view-redesign
7 years ago
emersion
2f64ce86c4
Xwayland unmanaged views aren't views anymore
7 years ago
Tony Crisci
357a4401fa
address feedback
7 years ago
Tony Crisci
2187684bd0
Merge branch 'wlroots' into split-containers
7 years ago
Tony Crisci
c7a6524954
fix segfault
7 years ago
Tony Crisci
5e024278a6
Merge branch 'wlroots' into seat-fixes
7 years ago
Tony Crisci
22287b42bf
dont copy input config
7 years ago
Tony Crisci
35445b40a2
remove unused attachment config
7 years ago
Tony Crisci
a82c107c76
80col
7 years ago
Drew DeVault
b2d871cfe2
Partially implement move command
...
Works:
- move [container|window] to workspace <name>
- Note, this should be able to move C_CONTAINER but this is untested
- move [workspace] to output [left|right|up|down|<name>]
Not implemented yet:
- move [left|right|up|down]
- move scratchpad
- move position
7 years ago
Tony Crisci
53bb7ea996
dont copy seat config on the seat
7 years ago
Tony Crisci
0828c77251
rename input-manager functions
7 years ago
Tony Crisci
e677c5b204
rename seat functions
7 years ago
Tony Crisci
eda425fdab
fix some segfaults
7 years ago
Tony Crisci
2aec85bf24
clean up view destroy seat cleanup
7 years ago
Tony Crisci
6f7b33e691
handle container destroy in the seat
7 years ago
Tony Crisci
7706d83160
basic split containers
7 years ago
Drew DeVault
122b96abed
Merge pull request #1684 from swaywm/follow-warp
...
Implement focus_follows_mouse, mouse_warping
7 years ago
Drew DeVault
f2332dc75c
Address review feedback
7 years ago
Drew DeVault
b9d2983324
Fix interaction between warping and following
7 years ago
Drew DeVault
9b38ef950f
Implement focus_follows_mouse
...
Also contains two other small changes:
- Clicking any button will focus the container clicked (not just left)
- Remove seamless_mouse (doesn't make sense on wlroots)
7 years ago
Drew DeVault
ae6d459000
Implement mouse warping
7 years ago
emersion
98b67e2399
Fix xwayland configure in set_size
7 years ago
Drew DeVault
eb5a8e03ff
Check for null container
7 years ago
Drew DeVault
e4fd47d3a1
Merge pull request #1682 from emersion/unmanaged-no-container
...
Make it clear that unmanaged views don't have a container
7 years ago
Drew DeVault
ccdcaa478f
Fix bug with previous commit
7 years ago
emersion
a44a71c116
Make it clear that unmanaged views don't have a container
...
view->swayc is NULL anyway.
7 years ago
Drew DeVault
8aa195e311
Fix #1104
7 years ago
Drew DeVault
5c08e13e50
Set Xwayland seat on focus
...
Necessary to make primary selection syncronize
7 years ago
emersion
b237fa0b22
Set xwayland cursor
7 years ago
Drew DeVault
212b503992
Use wlr_surface_point_accepts_input
7 years ago
Drew DeVault
f5470f3338
Pass pointer events to surface layers
7 years ago
emersion
9665642765
Merge branch 'wlroots' into client-cursors
7 years ago
emersion
eb716c6c43
Fix segfaults when focusing a workspace
7 years ago
emersion
03255fd202
Fix pointer events for hidden workspaces
7 years ago
emersion
6c9d67b105
Handle set_cursor requests from clients
...
Allow clients to set a custom cursor if they have the seat's
pointer focus.
7 years ago
Drew DeVault
01af343912
Destroy empty workspaces when moving away
7 years ago
Drew DeVault
f26ecd9f58
Merge remote-tracking branch 'origin/wlroots' into swaybar-layers
7 years ago
Tony Crisci
8f490d7d2d
Fix oversights from previous pull request
7 years ago
Tony Crisci
dc8c9fbeb6
Revert "Merge pull request #1653 from swaywm/revert-1647-refactor-tree"
...
This reverts commit 472e81f35d
, reversing
changes made to 6b7841b11f
.
7 years ago
Drew DeVault
d0c7f66e95
Revert "Refactor tree"
7 years ago
Tony Crisci
92c58b1e63
rename container_for_each_descendent
7 years ago
Drew DeVault
6836074fed
Implement enough IPC for swaybar to work
7 years ago
Tony Crisci
4c394a0e9e
address feedback
7 years ago
Tony Crisci
eca029f218
more renaming things
7 years ago