esjeon created this revision. Herald added a project: Plasma. Herald added a subscriber: plasma-devel. esjeon requested review of this revision.
REVISION SUMMARY This is an attempt to resolve bug 362857. A number of users have complained about restored application not supporting desktop effects, like transparency and blurring. This is caused by a race condition where restored applications start before KWin (and its compositor) finishes its initialization. Under this condition, applications fail to detect compositor and disable desktop effect on themselves. This patch tries to avoid this race condition by inserting delay b/w initialization of KSM server, which starts KWin (or user-designated WM), and start-up phase 0. At the same time, the patch also tries to minimize the actual delay by detecting KWin and compositors using D-Bus and KWindowSystem repectively. TEST PLAN The nature of this bug (graphics!) forces the use of physical machines for testing, but not every machine can reproduce this. Old hardware w/ proprietary graphics driver is recommended. - Pre-requisite: 1. "Restore previous session" option enabled under "Desktop Session". 2. Konsole set up w/ transparent window 3. Verify that the bug is reproducible on your machine (Reboot might be required) - Test 1: session restores normally 1. Login, open Konsole, logout, and re-login 2. Konsole should be restored. - Test 2: KWin w/ compositor, restore w/ desktop effect. 1. Login, open Konsole, reboot, and login. 2. Konsole should be restored w/ transparent background. - Test 3: Other WM w/ compositor, restore w/ desktop effect. 1. Put the following into `~/.xinitrc` (edit it to fit your env.): `export KDEWM=/usr/bin/dwm; picom & exec startplasma-x11` 2. From Linux console, run `xinit`. 3. Konsole should be restored w/ transparent background. REPOSITORY R120 Plasma Workspace REVISION DETAIL https://phabricator.kde.org/D26338 AFFECTED FILES startkde/plasma-session/CMakeLists.txt startkde/plasma-session/main.cpp startkde/plasma-session/startup.cpp startkde/plasma-session/startup.h To: esjeon Cc: plasma-devel, LeGast00n, The-Feren-OS-Dev, jraleigh, zachus, fbampaloukas, GB_2, ragreen, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart