[Differential] [Commented On] D3777: notice when the only screen changes
mart (Marco Martin)
noreply at phabricator.kde.org
Sat Dec 24 09:03:09 UTC 2016
mart added a comment.
In https://phabricator.kde.org/D3777#71209, @davidedmundson wrote:
> Oh! I think I now see why we have this bug.
>
> We get a disconnect then connect, which from Qt5.5 goes:
>
> Old Real Screen
> Fake Screen
> New Real Screen
>
> You never get any signals when you're going to or from the fake screen (by design), but implicitly that means we miss a real change.
>
> Is that the conclusion you had reached from debug?
yes, I think what's happening, when the output switches the chain of events is
QXcbConnection::destroyScreen()
if (virtualDesktop->screens().count() == 1) {
// If there are no other screens on the same virtual desktop,
// then transform the physical screen into a fake screen.
then the new output is enabled:
QXcbConnection::updateScreens()
...
} else if (!screen && output.connection == XCB_RANDR_CONNECTION_CONNECTED) {
...
// Transform the fake screen into a physical screen
screen->setOutput(output.output, outputInfo.data());
and in this, no primaryScreenChanged, not screenAdded/screenRemoved got emitted, because the only qscreen pointer was massaged into being fake, then real again, but the instance is always there.
REPOSITORY
R120 Plasma Workspace
REVISION DETAIL
https://phabricator.kde.org/D3777
EMAIL PREFERENCES
https://phabricator.kde.org/settings/panel/emailpreferences/
To: mart, #plasma
Cc: davidedmundson, plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20161224/55b0f603/attachment.html>
More information about the Plasma-devel
mailing list