Commit Graph

1295 Commits

Author SHA1 Message Date
Isaac Freund c78d31acf4 view: save and restore floating dimensions
When a floating view is fullscreened and returned to floating, it should
remember its previous floating size/position.
2020-06-29 11:15:55 +02:00
Isaac Freund 5474b656ee docs: add toggle-fullscreen 2020-06-29 01:50:26 +02:00
Isaac Freund 7b6e05005d render: draw fullscreen views properly
- use a solid black background
- only draw the overlay layer
2020-06-29 01:46:24 +02:00
Isaac Freund eb1e66b0fe seat: prioritize fullscreen views for focus 2020-06-29 01:04:37 +02:00
Isaac Freund acd08840ab command: disable focus-view in fullscreen 2020-06-29 01:04:37 +02:00
Isaac Freund 3cbd95fadc river: implement toggle-fullscreen
The command works, but behaves a little strangely. Also, fullscreen
views are not yet rendered on an opqaue backdrop.
2020-06-29 01:00:57 +02:00
Isaac Freund 82a444a7c0 view: use saved geometry for borders if needed
This fixes the issues caused by 60f06a1 and greatly simplifies the code.
Turns out we were already tracking the dimensions needed.
2020-06-28 20:45:17 +02:00
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
Anatole Lefort 8223c8c08e docs: fix typo in README.md 2020-06-22 17:23:40 +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 6e23344e06 rivertile: fix underflow if views < masters 2020-06-19 13:53:20 +02:00
Isaac Freund 582164ce41 code: refactor Server.start()
This was needlessly verbose
2020-06-17 22:17:51 +02:00
Isaac Freund 189d9f2d8b editorconfig: add scdoc config 2020-06-17 16:22:53 +02:00
Isaac Freund d61eee65ac docs: tweak readme 2020-06-17 12:41:37 +02:00
Lennard Hofmann 1cc02603b2 docs: small man pages fixes and updates
- Previous hard-coded settings can be now be changes with riverctl or
  via environment variables
- Update "See also"
- Mod → Mod1
2020-06-17 12:14:23 +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
Isaac Freund e7bf1940da river-control: send output on success, fix issues
Add an output arg to the success event on the callback. This allows for
implementing commands that return values, which are planned.

Replace the array of null terminated strings with a series of requests
each adding a single string to the args array. This is more idiomatic
wayland.

Add a seat argument to the run_command request to allow for proper
multi-seat support in the future.

Add missing destructor request.
2020-06-16 18:27:40 +02:00
Isaac Freund 5d9eb6a40a contrib: use rivertile in config.sh example 2020-06-16 17:46:57 +02:00
Isaac Freund 56212eb302 docs: update readme
- clarify design goals
- mention scdoc dependency
- improve build command example
2020-06-16 17:39:46 +02:00
Isaac Freund 74f0423c08 contrib: add tiled layout in python 2020-06-16 17:18:29 +02:00
Isaac Freund 751760287c docs: add rivertile man page 2020-06-16 17:06:24 +02:00
Isaac Freund e2c034b76a rivertile: create default layout generator 2020-06-16 15:48:50 +02:00
Leon Henrik Plickat ec0631dcef Doc: Add layout documentation 2020-06-16 15:48:53 +02:00
Leon Henrik Plickat 4cbef71a8d Contrib: Add debug layouts 2020-06-16 15:48:53 +02:00
Leon Henrik Plickat 5de21d0d23 Commands: rework layout command 2020-06-16 15:48:53 +02:00