Use KWin's D-Bus interface to get desktop layout rows on Wayland
ClosedPublic

Authored by hein on Jan 16 2019, 8:35 AM.

Details

Summary

While I think mixing IPC systems in this class is not the way to go
long-term, we have a strong desire to ship a complete user experience
for virtual desktops on Wayland in 5.15. As D17691 has been delayed
and did not make the Frameworks 5 release we can depend on for 5.15,
this is Plan B.

Diff Detail

Repository
R120 Plasma Workspace
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
hein created this revision.Jan 16 2019, 8:35 AM
Restricted Application added a project: Plasma. · View Herald TranscriptJan 16 2019, 8:35 AM
hein requested review of this revision.Jan 16 2019, 8:35 AM
mart accepted this revision.Jan 16 2019, 9:15 AM
This revision is now accepted and ready to land.Jan 16 2019, 9:15 AM
This revision was automatically updated to reflect the committed changes.
libtaskmanager/virtualdesktopinfo.cpp
218 ↗(On Diff #49596)

Would it be safer to assume there's 1 row until we update.

I'm sure we have some

columns = count / rows

code somewhere

293 ↗(On Diff #49596)

why?

If it's not registered it won't emit the signal anyway so there's no need to disconnect.
And the regular connect would persist regardless.

It would arguably make sense to re-query the initial state on service registration in case it changed whilst kwin was offline - but that's not what this does.

hein added inline comments.Jan 16 2019, 12:23 PM
libtaskmanager/virtualdesktopinfo.cpp
218 ↗(On Diff #49596)

Indeed. I had 1 initially, but somehow it changed during editing. I'll change it.

293 ↗(On Diff #49596)

It's identical to the code in the KCM that passed review, and I didn't want to take any chances with this one due to the timeline. I think I might leave it as-is, since it's going to be replaced in 5.16 anyway.