KWin contextmenus usability and window/app specific palettes
Martin Gräßlin
mgraesslin at kde.org
Sun Mar 19 17:21:12 UTC 2017
Am 2017-03-19 17:02, schrieb René J. V. Bertin:
> Martin Gräßlin wrote:
>
> Thanks for the info.
>
>> I need to explain the whole interaction:
>> 1. Applications can use KColorSchemeManager to set a color scheme.
>> 2. This gets installed as a dynamic property in the QGuiApplication
>
> This happens in KColorSchemeManager or at a lower level?
The dynamic property gets set by KColorSchemeManager.
>
>> 3. plasma-integration reads this dynamic property and installs an X
>> property on each created window
>> 4. KWin reads the property and creates a QPalette from it
>> 5. The palette gets stored for each window and is passed to the
>> decoration and to the useractions context menu
>
> Reading this on is tempted to think that as long as a style handles a
> widget's
> QPalette correctly there should be no issue like what I'm seeing. And
> QtCurve
> does handle palettes correctly for contextmenus, except in KWin5 when
> it's not
> using the standard palette.
>
> It'll probably be easier to understand why the contextmenu isn't
> updated
> correctly when the application changes its palette rather than via a
> special
> rule.
>
>> The code in question is in useractions.cpp in multiple places, just
>> search for setPalette.
>
> Is m_client.data()->palette() how useractions.cpp accesses the dynamic
> property
> mentioned under point 2)?
KWin is only involved starting in point 4. 1-3 are in the application.
Cheers
Martin
More information about the Plasma-devel
mailing list