aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-03-03Cursor: allow resizing from all edgesIsaac Freund1-45/+157
Co-authored-by: Leon Henrik Plickat <leonhenrik.plickat@stud.uni-goettingen.de>
2023-03-03deps: update zig-wlroots to fix Xwayland crashIsaac Freund2-2/+2
2023-03-03Xwayland: hide override redirect windows if lockedIsaac Freund1-0/+11
2023-03-03Root: keep all fullscreen views the correct sizeIsaac Freund3-41/+16
Currently we may resize fullscreen views when they become visible/not visible when switching tags even if their fullscreen state remains constant. This is suboptimal, and as it turns out also much more complex to implement.
2023-03-02XdgToplevel: fix size_changed check on commitIsaac Freund1-16/+18
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.
2023-03-02Xwayland: fix has_fixed_size heuristic for floatingIsaac Freund1-1/+2
2023-03-02View: handle destroy during inflight layout demandIsaac Freund4-47/+39
2023-03-02river: render floating views above the layoutIsaac Freund2-5/+20
2023-03-01View: fix frame perfection on unmapIsaac Freund2-3/+15
2023-03-01View: only send configures through transactionsIsaac Freund7-82/+39
This reduces the number of separate configure events sent to clients through better batching and is also more correct.
2023-03-01Output: fix background of transformed outputsIsaac Freund2-13/+18
2023-03-01Root: fix use of view.current before updateIsaac Freund1-2/+2
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.
2023-03-01View: clamp to output on exiting float/fullscreenIsaac Freund4-42/+51
2023-03-01View: move borders state to State structIsaac Freund5-10/+9
This state affects rendering, so it should pass through the transaction system like the rest.
2023-03-01Root: fix more fullscreen bugsIsaac Freund2-28/+39
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.
2023-03-01session-lock: fix race with multiple outputsIsaac Freund1-2/+10
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
2023-03-01Output: inline renderOutput functionIsaac Freund2-68/+40
Having this in a separate file no longer makes sense since the switch to the scene graph.
2023-03-01Root: centralize focus(null) calls in applyPending()Isaac Freund11-39/+21
2023-02-28csd-filter-add/remove: add missing applyPending()Isaac Freund1-0/+2
A transaction is now necessary to update border state.
2023-02-28river: fix various fullscreen related bugsIsaac Freund5-87/+111
2023-02-28LayerSurface: fix use-after-free on destroyIsaac Freund4-10/+12
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().
2023-02-28OutputStatus: rework implementationIsaac Freund5-128/+147
This was motivated by the view tags not being proplerly updated by Root.commitTransaction() when there were no views on an output.
2023-02-28river: rework core data structures & transactionsIsaac Freund34-1537/+1021
2023-02-28View: use saved surface trees for transactionsIsaac Freund4-108/+86
2023-02-28Xwayland: render using the scene graphIsaac Freund6-59/+79
2023-02-28DragIcon: render using the scene graphIsaac Freund5-20/+99
2023-02-28xdg-shell: implement version 5Isaac Freund2-1/+3
2023-02-28XdgPopup: reimplement using the scene graphIsaac Freund7-10/+185
xdg-shell version 3 is now implemented, supporting popup repositioning.
2023-02-28LayerSurface: render using the scene graphIsaac Freund7-290/+152
This also brings a lot of code cleanup and proper support for version 4 of the protocol.
2023-02-28View: remove dead codeIsaac Freund1-18/+0
wl_output.enter/leave is handled by wlr_scene now.
2023-02-28Xwayland: create scene treeIsaac Freund1-2/+8
2023-02-28View: implement borders with scene graphIsaac Freund4-12/+56
2023-02-28Output: use separate scene trees for layersIsaac Freund6-20/+92
2023-02-28session-lock: use the scene graphIsaac Freund9-62/+135
2023-02-28Cursor: remove surfaceAt()Isaac Freund6-307/+152
We now use the wlr_scene API to find out what is at the cursor location.
2023-02-28render: use wlr_scene to render viewsIsaac Freund13-440/+77
2023-02-28wlr-foreign-toplevel-management: remove protocolIsaac Freund2-77/+2
This can be re implemented after the migration to the scene graph is complete.
2023-02-28render: remove damage trackingIsaac Freund14-503/+7
This will be handled by wlr_scene shortly.
2023-02-28pointer-constraints: remove protocolIsaac Freund5-207/+6
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.
2023-02-28Keyboard: fix keyboard-layout mapping crashIsaac Freund1-1/+4
2023-02-27deps: update to latest zig-wayland/zig-wlrootsIsaac Freund2-0/+0
2023-02-27deps: update to latest zig-wayland/zig-wlrootsIsaac Freund3-1/+1
2023-02-10Seat: guard setFocusRaw() usage while lockedIsaac Freund2-0/+4
Focusing a layer shell or Xwayland override redirect surface while locked is a bug.
2023-02-03docs: remove repology badge from readmeIsaac Freund1-7/+3
It's getting too big and has too much redundant information.
2023-02-03docs: fix typos in riverctl man pageIsaac Freund1-6/+6
2023-01-30wlr-output-management: fix bug due to zig miscompilationIsaac Freund1-1/+1
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.
2023-01-25session-lock: fix assertion failure on hot-plug while lockedIsaac Freund1-1/+5
2023-01-24wlr-output-management: leverage new wlroots APIsIsaac Freund2-45/+18
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.
2023-01-24wlr-output-management: apply adaptive sync stateAlexander Courtis1-0/+1
2023-01-21idle-inhibit: fix use-after-freeIsaac Freund1-1/+2
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!