Hi !

Some time last year, I implemented a very simple QQuickStyle for Oxygen. However, Kirigami applications wouldn't display the iconic gradient background, as Kirigami Pages feature their own background. Upon further inspection, I figured a/the reason why that background was enforced: StackView transitions between pages required it, as a transparent background visually breaks the transitions.

I came up with the following patch:
https://invent.kde.org/plaristote/kirigami

First thing it does, is getting rid of the Page's custom background, which allows the Window's background to be visible (at least when the Window component is used, which isn't always the case: I believe systemsettings is an instance of that).

Since that breaks the page transitions, it also uses ShaderEffect on the Page element, which duplicates the Window's background, as an underlay, updating the offset as the transition updates, so the background remains still. The effect gets enabled when the StackView status for the page is either Activating or Deactivating.

Lastly, I added a test at tests/BackgroundTest.qml, which creates a Window using a background with flashy colors in a gradient: opening a new page should show the page's content being effectively hidden or revealed by the next page, as it slides over the previous page, all while the background seems to remain still.

I'm not quite sure how acceptable that would be. It can't be as efficient as displaying a plain background. And I don't have a device to check just how that behaves on limited hardware running Plasma Mobile. I'm also not sure how to start a pull request, assuming that is even appropriate at this point.

I'm hoping to get some pointers from the people directly involved with the KDE frameworks.

Cheers !



Reply via email to