[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