aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIsaac Freund <ifreund@ifreund.xyz>2021-07-25 22:22:46 +0200
committerIsaac Freund <ifreund@ifreund.xyz>2021-07-25 22:22:46 +0200
commit988a4623ab9250701f3d95d8fe1fd4f4f4321c2f (patch)
tree4151d1ec4275d750b04c58fea4a984c52673e828
parenteab9c0901ab09040f362559d33e0391708c6db11 (diff)
downloadriver-988a4623ab9250701f3d95d8fe1fd4f4f4321c2f.tar.gz
river-988a4623ab9250701f3d95d8fe1fd4f4f4321c2f.tar.xz
view: ensure saved buffers are always dropped
Currently if a view is moved from layout to fullscreen while a transaction involving that view is in progress the saved buffers are not dropped, which causes stale state to be rendered.
-rw-r--r--river/XdgToplevel.zig5
1 files changed, 5 insertions, 0 deletions
diff --git a/river/XdgToplevel.zig b/river/XdgToplevel.zig
index 45bfcc8..bd55969 100644
--- a/river/XdgToplevel.zig
+++ b/river/XdgToplevel.zig
@@ -272,6 +272,11 @@ fn handleCommit(listener: *wl.Listener(*wlr.Surface), surface: *wlr.Surface) voi
const self_tags_changed = view.pending.tags != view.current.tags;
view.current = view.pending;
if (self_tags_changed) view.output.sendViewTags();
+
+ // This is necessary if this view was part of a transaction that didn't get completed
+ // before some change occured that caused shouldTrackConfigure() to return false.
+ view.dropSavedBuffers();
+
view.output.damage.addWhole();
server.input_manager.updateCursorState();
}