-
Notifications
You must be signed in to change notification settings - Fork 177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Transactions attempt #2 #1704
Transactions attempt #2 #1704
Conversation
b8e5b29
to
1d223a1
Compare
7b5642a
to
a5afc69
Compare
e408ffe
to
23de4ce
Compare
23de4ce
to
24a08b7
Compare
7d29de9
to
8723322
Compare
0c30f15
to
a631b61
Compare
Major breaking change no. 1: #1309. Explanation: The current This PR splits the The derived interface Updating plugins is usually relatively straightforward, as most plugins do not care about non-toplevel views anyway:
|
(Relatively) Minor breaking change no. 2: The |
applied the patchset - compiled well finally. the main issue i see so far - animation on close window works terrible. Openin is fine ad smooth, but when closing it closes like skipping the frames - and finally get stuck. A small window (zoom) or transparent window (fade) remains on screen until some activity like mouse move happens. Fire is the only one working OK as the close animation. |
9ce2c67
to
994724d
Compare
So far, core has kept a copy of the unmapped view's contents in an offscreen buffer, so that it can be drawn when the view is unmapped. With scenegraph, the animate plugin can make and draw this copy itself, so there is no need to put this plugin-specific functionality in core.
It will be removed and demoted to an internal detail.
It was used only by xdg-popup now, so the necessary functionality was just merged into it.
view_node_t has been replaced by specific view-node-types for each view implementation.
994724d
to
2fd6a68
Compare
@mark-herbert42 The problem should be fixed with the latest commits. |
Major breaking change no. 3: Transactions are finally here. This means some changes in how toplevel view state is handled:
|
now woks perfectly for me, thank you! |
The position changes for unmap animations which is not what we want.
found one issue - when making server-decorated window fullscreen it is full-screened with decorations. Decorations themselves do not show up - but the space is taken and look transparent. last 2 patches in the series did nod fix it so far. |
Thanks for the heads up, I will have to rework decorations (which I will do soon). |
I've dropped using tilda in favor of xfce4-terminal which suits wayland better. But still some windows opening like tiny squares - for example skype. This comes with transaction patches - before that all worked. |
Modified get_margins() in deco-subsurface. I do no feel qualified enough to commit working code as it looks ugly and i bet it is not optimal - but it fixes fullscreen with server decorations. virtual wf::decoration_margins_t get_margins() override |
With transactions, managing the decoration state gets a bit more difficult, because we need to know the margins individually for each state. Therefore, the decorator_t interface is no longer needed.
@mark-herbert42 I pushed a few updates, can you tell me which of the problems are still reproducible? I hope that decorations at least are fixed now. |
Breaking change no. 4: The decorations API has been changed completely to work with transactions. Key differences:
|
Just a question - id it possible in new decoration design wrap decoration it another "decoration" like was done in window shadows plugin? I do not uderstand this transaction topic at all so may have stupid questions... That design was interesting as it allowed to draw shadows over CSD decorated windows as well like telegram-desktop, which is decorated terribly ugly in Wayland (in Xord it can be server-side decorated). |
It should be possible to decorate a window twice, even though I don't think the results will be very good .. but you could try patching the decoration plugin to ignore the |
so looks that the best way is to look at should_be_decorated() and if should - do full decoration, else - only paint shadow. So only one decoration (CSD is not a "real" decoration ) will be created, and the appearance will be handled by renderer. Still not sure if i ever be able to code such thing... |
A second attempt at bringing transactions to Wayfire, as the previous attempts were not successful due to the lack of scenegraph. Plan: