Changeset 62917 in vbox
- Timestamp:
- Aug 3, 2016 2:10:33 PM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 109519
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
r62493 r62917 49 49 # include <QTextStream> 50 50 # endif /* VBOX_GUI_WITH_PIDFILE */ 51 # if defined(VBOX_WS_X11) && QT_VERSION >= 0x050000 52 # include <QScreen> 53 # endif /* VBOX_WS_X11 && QT_VERSION >= 0x050000 */ 51 54 52 55 /* GUI includes: */ … … 405 408 } 406 409 410 #if defined(VBOX_WS_X11) && QT_VERSION >= 0x050000 411 bool VBoxGlobal::isFakeScreenDetected() const 412 { 413 // WORKAROUND: 414 // In 5.6.1 Qt devs taught the XCB plugin to silently swap last detached screen 415 // with a fake one, and there is no API-way to distinguish fake from real one 416 // because all they do is erasing output for the last real screen, keeping 417 // all other screen attributes stale. Gladly output influencing screen name 418 // so we can use that horrible workaround to detect a fake XCB screen. 419 return qApp->screens().size() == 0 /* zero-screen case is impossible after 5.6.1 */ 420 || (qApp->screens().size() == 1 && qApp->screens().first()->name() == ":0.0"); 421 } 422 #endif /* VBOX_WS_X11 && QT_VERSION >= 0x050000 */ 423 407 424 /** 408 425 * Sets the new global settings and saves them to the VirtualBox server. -
trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h
r62493 r62917 172 172 /** Returns the available-geometry of the host-screen which contains @a point. */ 173 173 const QRect availableGeometry(const QPoint &point) const; 174 175 #if defined(VBOX_WS_X11) && QT_VERSION >= 0x050000 176 /** Qt5: X11: Returns whether no or fake screen detected. */ 177 bool isFakeScreenDetected() const; 178 #endif /* VBOX_WS_X11 && QT_VERSION >= 0x050000 */ 174 179 /** @} */ 175 180 -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineLogicNormal.cpp
r62914 r62917 254 254 { 255 255 #if defined(VBOX_WS_X11) && QT_VERSION >= 0x050000 256 /* Prevent handling if fake screen detected: */ 257 if (vboxGlobal().isFakeScreenDetected()) 258 return; 259 256 260 /* Make sure all machine-window(s) have previous but normalized geometry: */ 257 261 foreach (UIMachineWindow *pMachineWindow, machineWindows()) -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp
r62913 r62917 462 462 case QEvent::Resize: 463 463 { 464 #if defined(VBOX_WS_X11) && QT_VERSION >= 0x050000 465 /* Prevent handling if fake screen detected: */ 466 if (vboxGlobal().isFakeScreenDetected()) 467 break; 468 #endif /* VBOX_WS_X11 && QT_VERSION >= 0x050000 */ 469 464 470 QResizeEvent *pResizeEvent = static_cast<QResizeEvent*>(pEvent); 465 471 if (!isMaximizedChecked()) … … 476 482 case QEvent::Move: 477 483 { 484 #if defined(VBOX_WS_X11) && QT_VERSION >= 0x050000 485 /* Prevent handling if fake screen detected: */ 486 if (vboxGlobal().isFakeScreenDetected()) 487 break; 488 #endif /* VBOX_WS_X11 && QT_VERSION >= 0x050000 */ 489 478 490 if (!isMaximizedChecked()) 479 491 { -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineLogicScale.cpp
r62914 r62917 78 78 { 79 79 #if defined(VBOX_WS_X11) && QT_VERSION >= 0x050000 80 /* Prevent handling if fake screen detected: */ 81 if (vboxGlobal().isFakeScreenDetected()) 82 return; 83 80 84 /* Make sure all machine-window(s) have previous but normalized geometry: */ 81 85 foreach (UIMachineWindow *pMachineWindow, machineWindows()) -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp
r62913 r62917 180 180 case QEvent::Resize: 181 181 { 182 #if defined(VBOX_WS_X11) && QT_VERSION >= 0x050000 183 /* Prevent handling if fake screen detected: */ 184 if (vboxGlobal().isFakeScreenDetected()) 185 break; 186 #endif /* VBOX_WS_X11 && QT_VERSION >= 0x050000 */ 187 182 188 QResizeEvent *pResizeEvent = static_cast<QResizeEvent*>(pEvent); 183 189 if (!isMaximizedChecked()) … … 193 199 case QEvent::Move: 194 200 { 201 #if defined(VBOX_WS_X11) && QT_VERSION >= 0x050000 202 /* Prevent handling if fake screen detected: */ 203 if (vboxGlobal().isFakeScreenDetected()) 204 break; 205 #endif /* VBOX_WS_X11 && QT_VERSION >= 0x050000 */ 206 195 207 if (!isMaximizedChecked()) 196 208 {
Note:
See TracChangeset
for help on using the changeset viewer.