Commit Graph

798 Commits

Author SHA1 Message Date
Isaac Freund
2669a615b6 root: refactor transaction initiation
- require the caller to use Root.startTransaction() directly
- introduce View.applyPending() to unify logic
- introduce View.shouldTrackConfigure() to unify more logic
- update all callsites to intelligently rearrange only what is necessary
2020-08-13 11:17:15 +02:00
Isaac Freund
50d008adbb ci: run only on master branch 2020-08-11 22:38:30 +02:00
Leon Henrik Plickat
946e4f21ba Enforce minimum window size also for views with constraints 2020-08-10 22:15:09 +02:00
Leon Henrik Plickat
45a730cbd3 Fix crashing bug for window size smaller than 2 * (border width + gap size) 2020-08-10 19:26:13 +02:00
Isaac Freund
e66c8b0019
code: clean up cursor resize mode
- offset_{x,y} is consistent with delta_{x,y}
- no need to name the type, it's only referenced in one place
2020-08-07 21:36:28 +02:00
Isaac Freund
0c4e3295b1
cursor: implement implicit grabs
When a button is held down and the cursor leaves a surface, events now
continue to be sent to the client. This allows e.g. dragging a scroll
bar from outside the surface.
2020-08-07 13:54:58 +02:00
Isaac Freund
91052f7477
cursor: refactor mode handling 2020-08-07 12:08:58 +02:00
Isaac Freund
96a91fd2f7 view: double buffer focus, use counter not bool
- Double buffering focus state ensures that border color is kept in sync
with the transaction state of views in the layout.
- Using a counter instead of a bool will allow for proper handling of
multiple seats. This is done in the same commit to avoid more churn in
the future.
2020-08-03 18:54:18 +02:00
Isaac Freund
7d77160fe3
view: arrange on unmap if fullscreened from layout
We don't rearrange the layout on fullscreening a view that is part of
the layout since the fullscreened view hides the layout. This means that
if a non-floating fullscreen view is closed the layout needs to be
rearranged.
2020-08-01 20:03:32 +02:00
Isaac Freund
ef4efbcadf
view: fix xdg_toplevel fullscreen request handling 2020-08-01 19:56:34 +02:00
Isaac Freund
845fcad9e6
layout: use fork/execve instead of ChildProcess
This keeps things simpler, and we will need this control anyways in
order to enforce a timeout.
2020-08-01 18:37:06 +02:00
Isaac Freund
05557086e6
output: simplify layout code 2020-08-01 17:34:45 +02:00
Isaac Freund
56df9176b3
server: handle SIGINT/SIGTERM with wl_event_loop
This is cleaner than having a separate signal handler and should be more
consistent/reliable.
2020-08-01 17:27:49 +02:00
Isaac Freund
54b09c4ae9
server: use fork/execve for startup command
std.ChildProcess leaks an fd currently and is more complex than what we
need anyways.
2020-08-01 13:40:41 +02:00
Lennard Hofmann
3e17f12cbb doc: shorten riverctl’s synopsis
The set-option command got removed but was still present in SYNOPSIS,
which confused me. It is not the first time, we forgot to update it.
2020-08-01 12:36:52 +02:00
Isaac Freund
d2ebd5e4e2
view: remember floating dimesions
When a floating view is returned to the layout or made fullscreen, it
now saves the dimesions it had while floating and returns to that same
position/size if made to float again.
2020-07-31 20:22:37 +02:00
Isaac Freund
d6823fe3a0 cursor: handle xwayland views for move/resize 2020-07-31 17:06:26 +02:00
Isaac Freund
7a244092e5 view: sidestep transaction for float/fullscreen
Transactions are only useful when multiple views need to atomically
change size together. Float/fullscreen views are independant of the
layout and should bypass the transaction system.
2020-07-31 17:06:26 +02:00
Isaac Freund
ecef8c2dc4 cursor: forbid move/resize of fullscreen views 2020-07-31 17:06:26 +02:00
Isaac Freund
d87356c93a view: forbid mode change if cursor target
Making a floating view tiled during a resize breaks things badly.
2020-07-31 17:06:26 +02:00
Isaac Freund
9f3ee76e51 cursor: implement resize 2020-07-31 17:06:26 +02:00
Isaac Freund
ac3066d8fc
code: refactor and simplify cursor move mode 2020-07-28 16:17:16 +02:00
Isaac Freund
11a46b80e0
meta: update layer shell xml 2020-07-28 12:32:56 +02:00
Isaac Freund
2f0bd157e3
river-status: note that wl_outputs must be bound 2020-07-24 17:53:53 +02:00
Isaac Freund
3bc799811f
ci: use void linux
arch is taking too long to get wlroots 0.11.0 and I already updated it
for void.
2020-07-18 01:28:41 +02:00
Isaac Freund
627ab7ec8a
cursor: ensure theme loaded on output creation 2020-07-17 20:40:33 +02:00
Isaac Freund
43bcce9afe
code: fix a pair of leaks 2020-07-17 16:01:35 +02:00
Isaac Freund
0091445b9f
cursor: properly set XCURSOR_SIZE if default 2020-07-17 12:58:54 +02:00
Leon Henrik Plickat
228c2c372f Fix bug causing XDG toplevels with a parent to not respect the CSD filter 2020-07-16 21:24:08 +02:00
Leon Henrik Plickat
a93c263502 Implement csd-filter-add and float-filter-add commands 2020-07-16 21:24:08 +02:00
Leon Henrik Plickat
76da7e2b0d Make float_filter a slice list 2020-07-16 21:24:08 +02:00
Isaac Freund
0ebb5ccc17
code: update to wlroots 0.11.0 2020-07-16 21:20:43 +02:00
Leon Henrik Plickat
be29b0ef95 Implement csd_filter list 2020-07-16 17:08:19 +02:00
Isaac Freund
91126388b5 ci: run on all branches 2020-07-15 18:44:33 +02:00
Isaac Freund
101f47d78f
code: use a tagged union to store focus
This simplifies the code and is more robust than two separate pointers.
2020-07-15 14:15:17 +02:00
Isaac Freund
8afe7c2c87
code: simplify direction parsing 2020-07-15 13:03:28 +02:00
Isaac Freund
1389b4a850
code: deduplicate command include code 2020-07-15 12:54:36 +02:00
Isaac Freund
2b2b78dd4d
command: split set-option into "toplevel" commands
`riverctl set-option view_padding 10` becomes `riverctl view-padding 10`

Having set-option doesn't really gain us anything and is more verbose as
well as being slightly inaccurate as the changes instantly apply.
2020-07-15 12:42:20 +02:00
Isaac Freund
6bdb152808
cursor: make xcursor theme configurable
- add a new command to set the theme
- export the theme of the default seat through environment variables
2020-07-14 17:34:29 +02:00
Isaac Freund
f3d4e5ac53
command/spawn: use _exit(2) instead of exit(3)
Something in exit(3) is causing the intermediate fork to segfault.
2020-07-12 12:16:05 +02:00
Isaac Freund
8120829e5c
xwayland: set seat
This makes e.g. the clipboard work.
2020-07-09 22:31:01 +02:00
Isaac Freund
cbf645d468
command/spawn: clean up and disown children
- Call setsid
- Clean up the signal mask.
- Use a double fork so that processes get inherited by init.
2020-07-08 14:00:51 +02:00
Leon Henrik Plickat
d77ac5ac7a cursor: close view on middleclick when pointer_modifier is active 2020-07-08 12:25:52 +02:00
Leon Henrik Plickat
d292e61cfd cursor: implement moving views 2020-07-07 19:06:52 +02:00
Isaac Freund
dfe61fe77d
xwayland: don't crash on null title 2020-07-06 16:10:59 +02:00
Isaac Freund
014963612c
river-status: fix bug sending old output tag state 2020-07-06 11:09:23 +02:00
Isaac Freund
24c0355ba8
layer-shell: respect single anchor exclusive zones 2020-07-05 23:34:59 +02:00
Isaac Freund
341fe1e977
code: handle out of memory as well as possible 2020-07-05 22:49:17 +02:00
Isaac Freund
3752a7879b
server: send SIGTERM to startup process on exit 2020-07-05 15:44:21 +02:00
Isaac Freund
9dd18c6373
server: exit cleanly on SIGINT and SIGTERM 2020-07-05 14:49:34 +02:00