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).
2018-07-15 22:08:26 +10:00
emersion
63b4bf5000
Update for swaywm/wlroots#1126
2018-07-09 22:54:30 +01:00
Brian Ashworth
c833ae64bc
Fix pointer button events for layer surfaces
2018-07-05 23:01:35 -04:00
Tony Crisci
e9ad10c2d6
dont focus-follow-mouse when keyboard grab
2018-06-24 20:30:43 -04:00
emersion
cfd02918c0
Render drag icons
2018-06-09 13:26:03 +01:00
Scott Leggett
609c420501
Initialise previous cursor position.
...
Fix the problem with focus jumping to the container under the cursor
when first starting sway.
2018-06-06 20:45:02 +10:00
Ryan Dwyer
bcdb676abb
Don't set focus to NULL when clicking a surface which has no container
2018-06-04 11:31:25 +10:00
Ryan Dwyer
e4e912ea91
Store swayc coordinates as layout-local
2018-06-01 23:14:58 +10:00
Ryan Dwyer
1f2e399ade
Implement floating
2018-06-01 23:14:58 +10:00
Scott Leggett
4d8120ccf3
Improve comment.
2018-05-28 02:35:24 +10:00
Scott Leggett
b57f88e7db
Avoid assert on container type.
2018-05-28 02:25:42 +10:00
Scott Leggett
1b8de39287
Move previous cursor_position inline.
2018-05-28 02:14:19 +10:00
Scott Leggett
0039f7a4fd
Simplify logic, remove redundant variables.
2018-05-28 01:38:46 +10:00
Scott Leggett
dd86444e59
Rely on view_is_visible rather thank walking the tree ourselves.
2018-05-28 01:38:46 +10:00
Scott Leggett
4cd304e4ba
Store previous position in sway_cursor.
2018-05-28 01:37:43 +10:00
Scott Leggett
06098bef98
Focus containers only on entry.
2018-05-27 15:29:48 +10:00
Drew DeVault
fea654a6ce
Replace oft-failing abort with if statement
...
Fixes #2045
2018-05-26 10:35:15 -04:00
Ivan Chebykin
464ec44b00
Check for next_focus before assert
2018-05-26 15:54:49 +03:00
Ivan Chebykin
6e6b0decd9
Fix usage of sway_assert
2018-05-26 15:51:36 +03:00
Ivan Chebykin
820a8c9c2d
Moved visibility check of of loop, added asserts
2018-05-26 13:34:14 +03:00
Ivan Chebykin
740234a4bc
Break after first tabbed/stacked layout
2018-05-25 17:45:41 +03:00
Ivan Chebykin
53516fa03f
Fix mouse focusing for horizontal/vertical views in tabbed containers
2018-05-25 17:22:25 +03:00
Ivan Chebykin
f85d3e15ba
Fixed styling issues
2018-05-25 16:54:43 +03:00
Ivan Chebykin
e19fe56e2f
Focus inactive container instead of checking cursor position
2018-05-25 16:54:43 +03:00
Ivan Chebykin
3b67253312
Skip all nested containers
2018-05-25 16:54:43 +03:00
Ivan Chebykin
c62efbb5ce
Implement correct focusing for tabbed containers
2018-05-25 16:54:43 +03:00
Ivan Chebykin
c1be4b0153
Fix focusing from other containers
2018-05-25 16:54:43 +03:00
Ivan Chebykin
87af08966a
Don't focus tabbed and stacked containers on mouseover
2018-05-25 16:54:43 +03:00
Drew DeVault
8bbf78fdd4
Fix focus follows mouse with no focus
2018-05-21 17:21:01 -04:00
Ryan Dwyer
c08f9bf257
Implement tabbed layout
2018-05-21 20:16:56 +10:00
Brian Ashworth
82cd55a670
Fix border commands from changing focus
2018-05-20 23:12:33 -04:00
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.
2018-05-20 14:46:29 -04:00
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
2018-05-13 00:30:09 +02:00
emersion
50298dc901
Send pointer discrete axis values and source
...
Update for swaywm/wlroots#970
2018-05-12 13:56:17 +01:00
Drew DeVault
d233e75eec
Hide cursor on touch down
2018-05-03 10:39:34 -04:00
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
2018-05-02 09:00:26 -04:00
emersion
860d2384b4
Update for swaywm/wlroots#923
2018-04-27 17:30:45 +01:00
emersion
ff61df17ff
Add map_from_region command
2018-04-26 10:53:47 +01:00
emersion
4cf77e1de4
Default to current time when triggering cursor events
2018-04-21 14:07:22 +01:00
emersion
33ed279494
Update cursor when workspace focus changes
2018-04-21 12:46:48 +01:00
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.
2018-04-18 13:06:10 +10:00
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).
2018-04-18 08:35:28 +10:00
Danny Bautista
1edb2bd892
Implement cursor event simulation with sway commands.
2018-04-10 12:40:50 -04:00
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
2018-04-08 12:42:56 -04:00
emersion
5ebc99253a
Use wlr_surface_point_accepts_input for unmanaged surfaces
2018-04-08 11:43:18 -04:00
Drew DeVault
9114d3b84c
Implement tablet tool support
2018-04-08 10:48:13 -04:00
Drew DeVault
cca420b2f8
Fix focus_follows_mouse issues
2018-04-06 09:32:51 -04:00
emersion
641807d920
Handle unmanaged surfaces motion
2018-04-05 18:48:35 -04:00
Drew DeVault
d2d050d59c
Address review feedback
2018-04-04 18:47:48 -04:00
Drew DeVault
b7e7794912
Implement input-inhibit in sway, swaylock
2018-04-04 18:47:48 -04:00