<table><tr><td style="">zzag updated this revision to Diff 64936.<br />zzag retitled this revision from "[WIP] [plugins/qpa] Port away from Wayland" to "Port QPA away from Wayland".<br />zzag edited the summary of this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-he33i57rg2dtm7k/">(Show Details)</a><br />zzag added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D22810">View Revision</a></tr></table><br /><div><div><p>Update.</p></div></div><br /><div><strong>CHANGES TO REVISION SUMMARY</strong><div><div style="white-space: pre-wrap; color: #74777D;"><span style="padding: 0 2px; color: #333333; background: rgba(151, 234, 151, .6);">So far wayland was used by internal clients to submit raster buffers<br />
and position themselves on the screen. While we didn't have issues with<br />
submitting raster buffers, there were some problems with positioning<br />
task switchers. Mostly, because we had effectively two paths that may<br />
alter geometry.<br />
<br />
A better approach to deal with internal clients is to let our QPA use<br />
kwin core api directly. This way we can eliminate unnecessary roundtrips<br />
as well make geometry handling much easier and comprehensible.<br />
<br />
The last missing piece is shadows. Both Plasma::Dialog and Breeze widget<br />
style use platform-specific APIs to set and unset shadows. We need to<br />
add shadows API to KWindowSystem. Even though some internal clients lack<br />
drop-shadows at the moment, I don't consider it to be a blocker. We can<br />
add shadows back later on.<br />
<br />
</span>CCBUG: 386304</div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R108 KWin</div></div></div><br /><div><strong>CHANGES SINCE LAST UPDATE</strong><div><a href="https://phabricator.kde.org/D22810?vs=64712&id=64936">https://phabricator.kde.org/D22810?vs=64712&id=64936</a></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D22810">https://phabricator.kde.org/D22810</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>abstract_client.cpp<br />
abstract_client.h<br />
autotests/integration/debug_console_test.cpp<br />
autotests/integration/decoration_input_test.cpp<br />
autotests/integration/effects/popup_open_close_animation_test.cpp<br />
autotests/integration/globalshortcuts_test.cpp<br />
autotests/integration/internal_window.cpp<br />
composite.cpp<br />
debug_console.cpp<br />
debug_console.h<br />
deleted.cpp<br />
deleted.h<br />
effects.cpp<br />
geometry.cpp<br />
idle_inhibition.cpp<br />
input.cpp<br />
internal_client.cpp<br />
internal_client.h<br />
layers.cpp<br />
platformsupport/scenes/opengl/abstract_egl_backend.cpp<br />
platformsupport/scenes/opengl/abstract_egl_backend.h<br />
plugins/qpa/CMakeLists.txt<br />
plugins/qpa/backingstore.cpp<br />
plugins/qpa/backingstore.h<br />
plugins/qpa/integration.cpp<br />
plugins/qpa/integration.h<br />
plugins/qpa/nativeinterface.cpp<br />
plugins/qpa/nativeinterface.h<br />
plugins/qpa/sharingplatformcontext.cpp<br />
plugins/qpa/window.cpp<br />
plugins/qpa/window.h<br />
plugins/scenes/opengl/scene_opengl.cpp<br />
plugins/scenes/qpainter/scene_qpainter.cpp<br />
pointer_input.cpp<br />
scene.cpp<br />
scene.h<br />
shell_client.cpp<br />
shell_client.h<br />
tabbox/tabbox.cpp<br />
toplevel.cpp<br />
toplevel.h<br />
wayland_server.cpp<br />
wayland_server.h<br />
workspace.cpp<br />
workspace.h</div></div></div><br /><div><strong>To: </strong>zzag<br /><strong>Cc: </strong>kwin, LeGast00n, The-Feren-OS-Dev, sbergeron, jraleigh, fbampaloukas, GB_2, mkulinski, ragreen, jackyalcine, Pitel, iodelay, crozbo, bwowk, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, hardening, romangg, jensreuterberg, abetts, sebas, apol, mart<br /></div>