emersion
03d49490cc
Update cursor on focus change
...
This allows to send wl_pointer.enter when switching between views
in a split/tabbed layout for instance. This (1) updates the cursor
image accordingly (2) makes it unnecessary to move the mouse before
scrolling. It's harmless to always call cursor_send_pointer_motion
because in case the focused surface hasn't changed this is a no-op.
The `last_focus != NULL` condition is required otherwise
cursor_send_pointer_motion will crash when sway starts up (the
sway_output doesn't yet have a workspace).
7 years ago
Drew DeVault
d6bd314dff
Merge pull request #2276 from RyanDwyer/urgency
...
Implement urgency base functionality
7 years ago
Ryan Dwyer
9ca5cb7faf
Fix tab split focus bug
...
Fixes a bug where if you have a tab containing a split, then switch from
a non-split tab to the split tab, focus is not changed properly.
7 years ago
Ryan Dwyer
315d5311b2
Implement urgency base functionality
...
Introduces a command to manually set urgency, as well as rendering of
urgent views, sending the IPC event, removing urgency after focused for
one second, and matching urgent views via criteria.
7 years ago
Ryan Dwyer
a120d4c79f
Make focus part of transactions
...
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).
7 years ago
Ryan Dwyer
ee0e1b170e
Fix crash in seat code
...
Container will be NULL if launching swaylock.
7 years ago
dudemanguy
600c126150
fix crash on floating windows
7 years ago
Ryan Dwyer
15dc5286e2
Move floating windows to front when focused
7 years ago
emersion
63b4bf5000
Update for swaywm/wlroots#1126
7 years ago
Ryan Dwyer
0bd41a0dae
Fix focus related damage
...
When you have an unfocused container (so one view is focused_inactive),
and you focus any other view in that container, the view with
focused_inactive was not damaged. This is because we damaged the
previous focus and new focus, but needed to damage the parent of the new
focus.
7 years ago
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.
7 years ago
Ryan Dwyer
a2fbb20a61
Merge remote-tracking branch 'upstream/master' into atomic
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
emersion
cfd02918c0
Render drag icons
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
Drew DeVault
e605dc43bb
Fix mouse warping interaction with layout coords
7 years ago
Ryan Dwyer
1f2e399ade
Implement floating
7 years ago
Ryan Dwyer
7c7d24600b
Fix ancestor typos
7 years ago
Scott Leggett
d1ebbebea0
Remove unused function.
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
Ryan Dwyer
efc07fb3d4
Don't track damage for views on inactive tabs
7 years ago
Brian Ashworth
82cd55a670
Fix border commands from changing focus
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
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
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
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
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
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
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
b08f7e5183
Fix deletion of still-visible workspaces on unfocus
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
56078edd65
Give exclusive focus to layers above shell layer
7 years ago
Tony Crisci
d434da5632
Merge branch 'wlroots' into split-containers
7 years ago
Tony Crisci
357a4401fa
address feedback
7 years ago
Tony Crisci
35445b40a2
remove unused attachment config
7 years ago
Tony Crisci
a82c107c76
80col
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
f2332dc75c
Address review feedback
7 years ago
Drew DeVault
b9d2983324
Fix interaction between warping and following
7 years ago
Drew DeVault
ae6d459000
Implement mouse warping
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
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
Tony Crisci
b90099b4b7
rename container functions
7 years ago
Tony Crisci
874f009866
move tree includes to their own directory
7 years ago
Tony Crisci
946d9459c5
get swayc in direction
7 years ago
Tony Crisci
ce3a1b3922
properly pick next focus
7 years ago
Tony Crisci
145b4fdf58
use bfs iterator to collect focus stack
7 years ago
Tony Crisci
a7d49da239
separate seat get focus and seat get focus inactive
7 years ago
Tony Crisci
5151502298
basic focus overhaul
7 years ago
Drew DeVault
b28602aa74
Implement workspaces
7 years ago
Dominique Martinet
5766f426aa
config reload: destroy old seat when removed from config
...
This adds new sway_seat_destroy and sway_cursor_destroy helpers
and compare new and old config on free
7 years ago
emersion
0c58673c6a
Merge pull request #1574 from acrisci/config-refactor
...
Command criteria
7 years ago
Drew DeVault
c933781fac
Merge pull request #1570 from acrisci/config-references
...
Copy input config references
7 years ago
Tony Crisci
0e3eae4baa
view interface
7 years ago
Tony Crisci
2bf76509f8
update for new wlr-keyboard modifiers
7 years ago
Tony Crisci
9f54cd8935
copy config references for input and seat
7 years ago
Dominique Martinet
67985e9031
sway: change all sway_log to wlr_log
7 years ago
Dominique Martinet
f3d8df45fc
seat_configure_pointer: apply libinput config
...
Restore the code that used to be in config.c:apply_input_config() pre-wlroots
7 years ago
Tony Crisci
63f7fb9517
cleanup
7 years ago
Drew DeVault
b0291d126f
Fix compile error
7 years ago
Tony Crisci
88bcd43ebf
seat fallback config
7 years ago
Tony Crisci
e27eff8a29
send keyboard enter on keyboard configuration
7 years ago
Tony Crisci
b0ed1ad28d
device add/remove logging
7 years ago
Tony Crisci
b3a0309f26
fix logging issue for new wlroots
7 years ago
Tony Crisci
92fef27eaa
basic configuration
7 years ago
Tony Crisci
163edc5a90
sway input device
7 years ago
Tony Crisci
9ae906cd37
sway pointer
7 years ago
Tony Crisci
4d449743c5
keyboard remove
7 years ago
Tony Crisci
609f63934a
basic keyboard
7 years ago
Tony Crisci
6339c4f161
remove pointer device
7 years ago
Tony Crisci
21626e8153
seat focus on button press
7 years ago
Tony Crisci
9333a7eb53
working xcursor
7 years ago
Tony Crisci
7c67bea942
sway xcursor manager
7 years ago
Tony Crisci
d76e745b73
input include directory
7 years ago
Tony Crisci
ec7fc42a00
sway cursor
7 years ago
Tony Crisci
f6f63f60d6
basic input manager and seat
7 years ago