| Age | Commit message (Collapse) | Author | Files | Lines |
|
We need to initialize the geometry on map to ensure the first commit is
handled correctly.
Also we don't care about the x/y of the geometry, only the width/height.
|
|
|
|
|
|
|
|
|
|
This reduces the number of separate configure events sent to clients
through better batching and is also more correct.
|
|
|
|
In commitTransaction() we currently the current view state to determine
whether or not to enable the view's scene tree. However we don't update
the view's current state until after that check.
|
|
|
|
This state affects rendering, so it should pass through the transaction
system like the rest.
|
|
Moving fullscreen views between outputs now works properly.
A case in which we did not inform the client that it is no longer
fullscreen has been fixed as well.
|
|
The race is as follows:
1. Output A commits and sets render state to pending_lock_surface
2. Output B commits and sets render state to pending_lock_surface
3. Output A presents and sets render state to lock_surface
4. maybeLock() does not lock because waiting on output B
5. Output A commits and sets render state to pending_lock_surface
6. Output B presents and sets render state to lock_surface
4. maybeLock() does not lock because waiting on output A
|
|
Having this in a separate file no longer makes sense since the switch to
the scene graph.
|
|
|
|
A transaction is now necessary to update border state.
|
|
|
|
The scene_layer_surface may be destroyed before handleDestroy is called,
which means we can't rely on it to access the wlr_layer_surface in
destroyPopups().
|
|
This was motivated by the view tags not being proplerly updated by
Root.commitTransaction() when there were no views on an output.
|
|
|
|
|
|
|
|
|
|
|
|
xdg-shell version 3 is now implemented, supporting popup repositioning.
|
|
This also brings a lot of code cleanup and proper support for
version 4 of the protocol.
|
|
wl_output.enter/leave is handled by wlr_scene now.
|
|
|
|
|
|
|
|
|
|
We now use the wlr_scene API to find out what is at the cursor location.
|
|
|
|
This can be re implemented after the migration to the scene graph is
complete.
|
|
This will be handled by wlr_scene shortly.
|
|
This implementation as it stands is incomplete/buggy and will make
updating to wlr_scene more complex.
It will be reimplemented after updating to wlr_scene is complete.
|
|
|
|
|
|
|
|
Focusing a layer shell or Xwayland override redirect surface while
locked is a bug.
|
|
It's getting too big and has too much redundant information.
|
|
|
|
It looks like having the empty error capture |_| on the else branch of
the if statement causes the else branch to be ignored by the compiler.
This should be a compile error, as the condition of the if statement is
a bool, not an error union.
|
|
|
|
These new functions allow testing commits without messing up the
pending state of the output and needing to rollback. The new apply()
function also makes the code considerably more concise.
|
|
|
|
A user reported a crash that only reproduces when preloading a hardened
malloc implementation. From the stack trace, this use-after-free seems
to be the most likely cause. Yay hardened malloc!
|
|
Outputs that are part of the layout but currently disabled (e.g. due
to use of wlr-output-power-management) are not correctly handled as
river currently waits for them to present a new locked frame before
sending the locked event.
This new frame never comes however since the output is disabled. Fix
this by maintaining the correct Output.lock_render_state as outputs
are enabled/disabled.
Additionally add missing maybeLock() calls to handle the case that all
outputs in the layout are disabled.
|
|
Curently since the struct is semantically passed by value not reference,
there is no guarantee that the `seat_node.data.focused.view == &self`
comparison will work as intended. Since updating to Zig 0.10.0, it seems
this latent bug has now manifested and the focused view title is no
longer sent to the client when it changes.
Fix this by taking the view argument by constant pointer instead.
|
|
|
|
|