Commit Graph

1282 Commits

Author SHA1 Message Date
cab947b3a3 ci: add gcc to fix build
Zig relies on the existence of a system c compiler in order to
find the native libc include paths.
2021-06-09 20:35:30 +00:00
88410cc2b8 output: destroy Layouts on Output removal
The Layout struct holds a pointer to the Output which becomes invalid
when the Output is destroyed so we must ensure all the layouts of an
Output are destroyed first.
2021-06-09 20:03:19 +00:00
2e7c1dbe6a config: make attach-mode global 2021-06-08 18:26:36 +00:00
75814eb876 view_stack: update tests for zig 0.8.0 2021-06-08 18:25:43 +00:00
68267a4cfe river: don't extend timeout on transaction preemption
This avoids locking up the compositor if a client is unresponsive and
the user continuously initiates new transactions through their actions.
2021-06-08 15:18:45 +00:00
e90474657f view: send activated/fullscreen configures immediately
The transaction system exists to coordinate size changes of all views
in a layout in order to achieve frame perfection. Since many clients
do not need to commit a new buffer in response to a activated state
change alone, this breaks things when such a configure event is tracked
by the transaction system. Instead, simply send activated and fullscreen
configures right away but still track this state in a double-buffered
way so that e.g. border color changes based on focus are frame-perfect.

This also fixes a related issue with the transaction system where views
that did not need to commit in response to our first configure were not
rendered until their next frame.
2021-06-08 06:00:15 +00:00
021fd8f376 code: remove now unnecessary zig fmt directives
zig fmt does what we want since zig 0.8.0
2021-06-08 03:20:56 +00:00
1bacaa5b43 view: get rid of notifyConfiguredOrApplyPending()
This function is only called in one place, just inline the code.
2021-06-08 02:56:19 +00:00
cef6d5a0be render: fix damage tracking of drag icons 2021-06-07 18:34:54 +00:00
0e9dc089d1 render: track subsurfaces created before role assignment 2021-06-05 19:30:43 +00:00
aaf5a190fc doc: correct zig version requirement in readme 2021-06-05 19:15:21 +00:00
c0a2286847 code: update to zig 0.8.0 2021-06-05 17:29:58 +00:00
ca4abd261f xdg-toplevel: remove set_app_id listener 2021-05-31 15:46:39 +00:00
acaf192465 render: actually damage output on view opacity change 2021-05-31 15:21:42 +00:00
9ee788b65e render: damage output on view opacity change 2021-05-31 01:00:49 +00:00
c68b96870f doc: add IRC web client link 2021-05-28 17:39:43 +00:00
13f01bcb4b render: do basic yes/no damage tracking 2021-05-24 16:43:21 +02:00
3390f223a8 example/init: use Mod+Shift E for exit
I keep hitting Mod+E when testing because of colemak.
2021-05-24 00:33:53 +02:00
c5005ba4a8 doc: move IRC channel to libera 2021-05-19 16:55:19 +02:00
6333e465d2 Allow changing output focus with pointer 2021-05-19 14:15:28 +02:00
6ab06120fa rivertile: clamp main_amount 2021-05-19 13:54:54 +02:00
21bb333323 doc: fixed command name in example
send-layout-value → set-layout-value
2021-05-19 13:51:56 +02:00
c8b1017923 river: remove Seat.input_manager
This is no longer needed as server is global.
2021-05-13 15:13:17 +02:00
50cdcf3ee4 river: remove all stored *Root pointers
These are no longer needed as server is global.
2021-05-13 15:08:53 +02:00
3d031631c7 river: remove misc stored *Server pointers
These are no longer needed as server is now global.
2021-05-13 15:06:00 +02:00
ece465b7ed river: remove InputManager.server
The server is now global so this is no longer needed.
2021-05-13 14:53:08 +02:00
ac27db236a river: remove Output.root
The server is now global so this is no longer needed.
2021-05-13 14:35:36 +02:00
89e0d4c083 river: remove Root.server
The server is now global so this is no longer needed.
2021-05-13 14:26:27 +02:00
271b1563a8 river: make server a global variable 2021-05-13 14:25:34 +02:00
7ffa2f4b9e contrib: Update layout.c for river-layout-v2 2021-05-07 00:34:41 +02:00
7ccb4794c9 river: always render floating views above layout views 2021-05-05 15:54:52 +02:00
cccca230f0 rivertile: fix typo in error message 2021-05-05 14:48:47 +02:00
57fe91c5a4 README: don't encourage manual system-wide install 2021-05-04 19:56:48 +02:00
ce69cfc337 doc: remove outdated reference to river-layouts(1) 2021-05-03 13:36:52 +02:00
bcd35e5746 example/init: fix typo in introductory comment 2021-05-03 12:02:29 +02:00
be79ad9042 example/init: Fix typo for main view size change 2021-05-03 12:02:29 +02:00
461cc96bd1 rivertile: add missing try to fix build 2021-05-01 12:54:57 +02:00
4684f9fa47 rivertile: add -h/--help, improve man page 2021-05-01 12:49:49 +02:00
0c8e718d95 cursor: handle popup subsurfaces properly
I added the required functions in wlroots 0.13.0, so use them.
2021-04-27 18:56:06 +02:00
ec2c50b33f deps: update to latest zig-wayland 2021-04-27 12:24:30 +02:00
1b6e6de99e example/init: use riverctl layout value commands 2021-04-27 11:43:45 +02:00
07fd1b86ca rivertile: support command line arguments
Add support for command line arguments to set default values for the
various options of rivertile, bringing us back to rough feature parity
with before the commit removing the river-options protocol.
2021-04-27 00:10:20 +02:00
e80b883a47 river-layout: update to v2
This implements the changes to the river-layout protocol proposed
in the previous commit removing river-options.
2021-04-27 00:10:20 +02:00
871fc7c8de river-options: remove protocol
This protocol involves far too much accidental complexity. The original
motivating use-case was to provide a convenient way to send arbitrary
data to layout clients at runtime in order to avoid layout clients
needing to implement their own IPC and do this over a side-channel.
Instead of implementing a quite complex but still rigid options protocol
and storing this state in the compositor, instead we will simply add
events to the layout protocol to support this use case.

Consider the status quo event sequence:

1. send get_option_handle request (riverctl)
2. roundtrip waiting for first event (riverctl)
3. send set_foo_value request (riverctl)
4. receive set_foo_value request (river)
5. send foo_value event to all current handles (river)
6. receive foo_value event (rivertile)
7. send parameters_changed request (rivertile)
8. receive parameters_changed request (river)
9. send layout_demand (river)

And compare with the event sequence after the proposed change:

1. send set_foo_value request (riverctl)
2. receive set_foo_value request (river)
3. send set_foo_value event (river)
4. send layout_demand (river)

This requires *much* less back and forth between the server and clients
and is clearly much simpler.
2021-04-27 00:10:20 +02:00
a6f908d7eb river: get rid of all server-created options
- Replace the layout option with new default-layout and output-layout
commands.
- Remove the ability to get/set the output title entirely.
2021-04-27 00:10:20 +02:00
84f5283889 pixman: update and fix PointerConstraint 2021-04-22 10:33:28 +02:00
891eb38b33 completions: delete more removed commands 2021-04-21 16:51:53 +02:00
967b274c01 completions: Remove completions for removed subcommand "layout" 2021-04-21 16:47:27 +02:00
924a4707b7 contrib: update layouts for river-layout and river-options
- Remove old layouts which no longer work.
- Add new C layout.
2021-04-20 18:27:03 +02:00
d08032d685 river-options: rework, bump to v2
Options are now all global but may be overridden per-output. If an
output local value is requested but none has been set, the global value
is provided instead. This makes for much better ergonomics when
configuring layout related options in particular.
2021-04-20 18:27:03 +02:00