Isaac Freund
5b96d831d3
view: replace mode with float/fullscreen bools
...
The enum would be awkward here since if a view is fullscreened while
floating it should still be floating when defullscreened.
2020-06-28 20:30:12 +02:00
Isaac Freund
60f06a1a40
view: draw borders around actual dimensions
...
Previously if the view did not take the size requested, we would draw
the borders around the size we asked the view to take rather than its
actual size.
2020-06-28 01:46:53 +02:00
Isaac Freund
7f2e2610e3
code: fix tests
2020-06-28 00:35:38 +02:00
Isaac Freund
b6ef4c5a1a
cursor: fix viewAt() ordering
...
Focused views must be checked first as they are always rendered on top.
2020-06-28 00:29:44 +02:00
Isaac Freund
9dfcec72a8
view: simplify default float dimension handling
2020-06-27 23:48:04 +02:00
Isaac Freund
c04112b81a
view: introduce state struct to simplify code
...
The state struct holds all of the state that is double-buffered and
applied through transactions. This more explicit handling simplifies
much of the code, and will allow for easier implementation of new
feature such as fullscreen.
2020-06-27 23:18:41 +02:00
Isaac Freund
89d0fb012d
view: use a mode enum instead of floating bool
...
This is in preperation for fullscreen support which will add another
mode to this enum.
This commit also fixes a bug that allowed clicking floating views though
layout views in some cases.
2020-06-27 18:12:18 +02:00
Isaac Freund
3904275373
command: log output of commands run by mappings
2020-06-26 18:43:20 +02:00
Isaac Freund
40597f184d
command: allow output on success, refactor
2020-06-26 17:57:03 +02:00
Isaac Freund
558918d286
config: fix leak of hashmap keys
2020-06-26 12:58:11 +02:00
Isaac Freund
dfb03fd0cb
command: dupe mode name memory
...
The hashmap doesn't take ownership of the memory pointer to by these
slices, so we need to dupe them to avoid use-after-free.
2020-06-26 12:46:18 +02:00
Isaac Freund
08d630567f
river-status: fix view-tags array size
2020-06-26 12:31:04 +02:00
Isaac Freund
b6d981254b
seat: pass a null terminated string
2020-06-26 01:13:00 +02:00
Isaac Freund
79bb0accac
code: improve error handling consistency
2020-06-26 00:59:31 +02:00
Isaac Freund
8fc045b445
code: clean up server init
2020-06-26 00:07:02 +02:00
Isaac Freund
a7c422dad7
data-control: implement protocol
2020-06-25 23:08:56 +02:00
Isaac Freund
ebc661f4a7
command: add background_color option
...
This is trivial to support and allows basic customization without
running a layer-shell program such as swaybg. This is especially useful
in low memory situations.
2020-06-19 18:44:28 +02:00
Isaac Freund
2ef8261493
river-status: fix memory leak
2020-06-19 14:48:28 +02:00
Isaac Freund
12d34d4ded
bikeshed: rename util.allocator to util.gpa
...
This is less typing and more clear. A definite win.
2020-06-19 14:32:30 +02:00
Isaac Freund
aae89356a1
code: refactor layoutExternal
...
- Use an arena allocator, cleaner and should be faster.
- Simplify construction of the command to be run
2020-06-19 14:20:29 +02:00
Isaac Freund
37a98e1a7a
layout: fix loop counter
...
The counter should not be incremented if the view was floating.
2020-06-19 14:02:42 +02:00
Isaac Freund
582164ce41
code: refactor Server.start()
...
This was needlessly verbose
2020-06-17 22:17:51 +02:00
Isaac Freund
0efc04508b
cli: allow setting log level with '-l' flag
2020-06-17 02:01:07 +02:00
Isaac Freund
d74323bbbf
code: improve logging functions
...
this implements a modified version of the logging interface proposed
here: https://github.com/ziglang/zig/pull/5348
2020-06-17 01:31:38 +02:00
Isaac Freund
42f8076cec
river-status: fix crash due to bad alignment
...
Using an ArrayList to back the wl_array we need to pass to libwayland
is much safer and avoids this kind of bug.
2020-06-16 22:49:47 +02:00
Isaac Freund
c5de1641dc
code: create util.allocator and use globally
...
river is not a library and passing a general purpose allocators around
everywhere does not make sense and leads to ugly code. This does not
prevent us from using local arenas if they are fitting.
2020-06-16 22:48:08 +02:00
Isaac Freund
fb8d855ec9
code: create voidCast() util function
2020-06-16 20:54:05 +02:00
Isaac Freund
ce18f24129
river-status: actually destroy the manager object
2020-06-16 18:27:46 +02:00
Isaac Freund
f0c3aa3744
river-control: implement protocol changes
2020-06-16 18:27:46 +02:00
Leon Henrik Plickat
5de21d0d23
Commands: rework layout command
2020-06-16 15:48:53 +02:00
Leon Henrik Plickat
2fce8c7108
Output: Add layoutExternal()
2020-06-16 15:48:53 +02:00
Leon Henrik Plickat
754e24a710
Output: Rework layout switching in arrangeViews()
2020-06-16 15:48:53 +02:00
Leon Henrik Plickat
bdc56517e9
Output: Remove layoutMasterStack() and rework layoutFull()
...
layoutFull() now enforces a minimum view size of 50x50
2020-06-16 15:48:53 +02:00
Isaac Freund
e1a1459177
xdg-shell: improve child handling
...
- wait until map to send tiled state
- only set toplevels with no parent to tiled (toplevels with a parent
are generally popup-like things such as a file chooser or yes/no prompt)
- track dimesions and offset of the surface and take offset into account
for rendering.
2020-06-13 23:38:00 +02:00
Isaac Freund
c2d32a44c3
command: add view_padding option
2020-06-13 13:32:35 +02:00
Isaac Freund
4f029aa5c7
command: allow alpha in colors, simplify code
2020-06-13 13:09:43 +02:00
Isaac Freund
40c62577e1
code: simplify option handling
2020-06-13 12:14:36 +02:00
lazy-dolphin
efe2c2ce4b
command: add border_focused_color and border_unfocused_color options
2020-06-13 11:53:39 +02:00
Isaac Freund
0ab2b3134e
code: simplify view rendering
2020-06-11 01:19:59 +02:00
Isaac Freund
8839ae7335
command: don't zoom floating views
2020-06-11 01:15:01 +02:00
Isaac Freund
ff219c7d8d
render: floating as normal, focused views on top
...
This means that floating views can be (partially) obscured by normal
views if they are low in the stack, and that the "full" layout will
work a little nicer as the focused view is always the top rendered.
2020-06-11 00:09:42 +02:00
lazy-dolphin
1b7c1c7b2c
command: implement set-option
...
Only border and padding options are currently available.
2020-06-10 18:08:21 +02:00
Isaac Freund
ddc7da0f16
transactions: save transform, refactor rendering
2020-06-10 00:06:26 +02:00
Isaac Freund
48ea771310
transactions: save and render subsurface buffers
2020-06-09 23:13:14 +02:00
Isaac Freund
052c8e1dcb
transactions: handle preemption take 2
...
This implementation is far simpler than c0d7e71
as it takes advantage of
wlroots's tracking of pending state.
Additionally, we now send frame done events if a view that we are
configuring commits with the wrong dimensions. This is necessary in
order to trigger a redraw for some clients as well as being a more
correct implementation of the protocol.
2020-06-09 20:06:30 +02:00
Isaac Freund
24b1a566de
transactions: revert c0d7e71
2020-06-09 17:04:38 +02:00
Isaac Freund
7c094420ed
transactions: propogate x/y of new box if needed
2020-06-08 14:11:52 +02:00
Isaac Freund
5f2aa02132
transactions: set timeout back to 200ms
...
The change to 1000ms was an accident
2020-06-08 01:16:15 +02:00
Isaac Freund
c0d7e71ec4
transactions: handle preemption properly
...
when a transaction interrupts an ongoing transaction, we must be careful
to handle the configures properly. This commit adds a new member to view
so that we can store the dimensions sent with the last configure in
order to determine if the preempting transaction should override the
ongoing configure or not.
Additionally, some views do not ack a configure if they already have the
requested dimensions. This can happen if a pending configure setting
alternative dimensions is overridden, so in this case we do not wait for
an ack before committing the transaction.
2020-06-08 00:10:30 +02:00
Isaac Freund
7b1e07d3d5
code: remove dead code
2020-06-07 19:40:19 +02:00
Isaac Freund
b8cc4cc22c
river-status: send view_tags on view output change
2020-06-06 15:07:19 +02:00
Isaac Freund
2b10720366
map: allow creating mappings with no modifiers
2020-06-05 10:54:39 +02:00
Isaac Freund
7a40ac370d
river-status: use correct resource and fix crash
2020-06-05 00:24:46 +02:00
Isaac Freund
a63fb461ba
river-status: send view_tags on view map/unmap
2020-06-05 00:24:46 +02:00
Isaac Freund
5aa7fe8af8
river-status: implement protocol
2020-06-04 16:56:58 +02:00
Isaac Freund
03fc51d8d6
Eliminate some magic numbers
2020-06-02 17:02:03 +02:00
Isaac Freund
ea7f5d4064
Use tag masks for tag commands and clean up
2020-06-02 16:38:23 +02:00
Isaac Freund
0e9ecb6051
Rename focus -> focus-view
2020-06-02 14:04:23 +02:00
Isaac Freund
9856bc92ec
Clean up some memory leaks
2020-06-02 13:45:56 +02:00
Isaac Freund
eaf13f3bcf
Don't recreate transaction timer unnecessarily
2020-06-02 00:18:28 +02:00
Isaac Freund
631983b734
Replace _ with - as separator in commands
2020-06-01 20:51:20 +02:00
Isaac Freund
c63420cf45
Use + instead of | to separate modifiers
...
Although | makes more logical sense, it has another meaning in most
shells.
2020-06-01 20:50:22 +02:00
Isaac Freund
7cadd40051
De-hardcode all mappings
...
Move the default mappings to contrib/config.sh.
2020-06-01 20:45:40 +02:00
Isaac Freund
072dd575aa
Add support for running a command on startup
2020-06-01 19:43:21 +02:00
Isaac Freund
939beef168
Split river and riverctl directories
2020-06-01 15:56:50 +02:00