Changeset 41487 in vbox for trunk/src/VBox/Frontends/VirtualBox
- Timestamp:
- May 29, 2012 5:13:41 PM (13 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/runtime
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp
r41486 r41487 163 163 /* Process KGuestMonitorChangedEventType_Enabled change event: */ 164 164 if (isHidden() && changeType == KGuestMonitorChangedEventType_Enabled) 165 showInNecessaryMode();165 uisession()->setScreenVisible(m_uScreenId, true); 166 166 /* Process KGuestMonitorChangedEventType_Disabled change event: */ 167 167 else if (!isHidden() && changeType == KGuestMonitorChangedEventType_Disabled) 168 hide(); 168 uisession()->setScreenVisible(m_uScreenId, false); 169 170 /* Update screen visibility status: */ 171 showInNecessaryMode(); 169 172 } 170 173 … … 612 615 #endif /* VBOX_WITH_DEBUGGER_GUI */ 613 616 614 bool UIMachineWindow::shouldWeShowWindow() const615 {616 /* By default, every window should be shown: */617 bool fResult = true;618 /* But if machine is 'turned off': */619 if (uisession()->isTurnedOff())620 {621 /* If machine is in 'saved' state: */622 if (uisession()->isSaved())623 {624 /* We are getting shown-state from saved-state: */625 BOOL fEnabled = true;626 ULONG guestOriginX = 0, guestOriginY = 0, guestWidth = 0, guestHeight = 0;627 machine().QuerySavedGuestScreenInfo(m_uScreenId, guestOriginX, guestOriginY, guestWidth, guestHeight, fEnabled);628 fResult = fEnabled;629 }630 /* If machine is in 'powered off', 'teleported' or 'aborted' state: */631 else632 {633 /* Shown-state is 'enabled' only for 1st monitor: */634 fResult = m_uScreenId == 0;635 }636 }637 return fResult;638 }639 640 617 /* static */ 641 618 Qt::WindowFlags UIMachineWindow::windowFlags(UIVisualStateType visualStateType) -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.h
r41486 r41487 109 109 110 110 /* Helpers: */ 111 bool shouldWeShowWindow() const;112 111 const QString& defaultWindowTitle() const { return m_strWindowTitlePrefix; } 113 112 static Qt::WindowFlags windowFlags(UIVisualStateType visualStateType); -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
r41484 r41487 92 92 prepareConsoleEventHandlers(); 93 93 94 /* Prepare screens: */ 95 prepareScreens(); 96 94 97 /* Prepare framebuffers: */ 95 98 prepareFramebuffers(); … … 655 658 } 656 659 660 void UISession::prepareScreens() 661 { 662 /* Get machine: */ 663 CMachine machine = m_session.GetMachine(); 664 665 /* Prepare initial screen visibility status: */ 666 m_monitorVisibilityVector.resize(machine.GetMonitorCount()); 667 m_monitorVisibilityVector.fill(false); 668 m_monitorVisibilityVector[0] = true; 669 670 /* If machine is in 'saved' state: */ 671 if (isSaved()) 672 { 673 /* Update screen visibility status from saved-state: */ 674 for (int i = 0; i < m_monitorVisibilityVector.size(); ++i) 675 { 676 BOOL fEnabled = true; 677 ULONG guestOriginX = 0, guestOriginY = 0, guestWidth = 0, guestHeight = 0; 678 machine.QuerySavedGuestScreenInfo(i, guestOriginX, guestOriginY, guestWidth, guestHeight, fEnabled); 679 m_monitorVisibilityVector[i] = fEnabled; 680 } 681 } 682 } 683 657 684 void UISession::prepareFramebuffers() 658 685 { … … 1073 1100 } 1074 1101 1102 bool UISession::isScreenVisible(ulong uScreenId) const 1103 { 1104 Assert(uScreenId < (ulong)m_monitorVisibilityVector.size()); 1105 return m_monitorVisibilityVector.value((int)uScreenId, false); 1106 } 1107 1108 void UISession::setScreenVisible(ulong uScreenId, bool fIsMonitorVisible) 1109 { 1110 Assert(uScreenId < (ulong)m_monitorVisibilityVector.size()); 1111 if (uScreenId < (ulong)m_monitorVisibilityVector.size()) 1112 m_monitorVisibilityVector[(int)uScreenId] = fIsMonitorVisible; 1113 } 1114 1075 1115 UIFrameBuffer* UISession::frameBuffer(ulong uScreenId) const 1076 1116 { -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h
r41484 r41487 147 147 void setMouseIntegrated(bool fIsMouseIntegrated) { m_fIsMouseIntegrated = fIsMouseIntegrated; } 148 148 149 /* Screen visibility status: */ 150 bool isScreenVisible(ulong uScreenId) const; 151 void setScreenVisible(ulong uScreenId, bool fIsMonitorVisible); 152 149 153 /* Returns existing framebuffer for the given screen-number; 150 154 * Returns 0 (asserts) if screen-number attribute is out of bounds: */ … … 202 206 /* Prepare helpers: */ 203 207 void prepareConsoleEventHandlers(); 208 void prepareScreens(); 204 209 void prepareFramebuffers(); 205 210 void prepareMenuPool(); … … 210 215 void cleanupMenuPool(); 211 216 void cleanupFramebuffers(); 217 //void cleanupSession() {} 212 218 void cleanupConsoleEventHandlers(); 213 219 … … 227 233 228 234 UIMachineMenuBar *m_pMenuPool; 235 236 /* Screen visibility vector: */ 237 QVector<bool> m_monitorVisibilityVector; 229 238 230 239 /* Frame-buffers vector: */ -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp
r41486 r41487 166 166 { 167 167 /* Show window if we have to: */ 168 if ( shouldWeShowWindow())168 if (uisession()->isScreenVisible(m_uScreenId)) 169 169 { 170 170 /* Make sure the window is placed on valid screen … … 186 186 #endif /* Q_WS_MAC */ 187 187 } 188 /* Else hide window: */ 189 else hide(); 188 190 } 189 191 -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp
r41486 r41487 506 506 { 507 507 /* Show window if we have to: */ 508 if ( shouldWeShowWindow())508 if (uisession()->isScreenVisible(m_uScreenId)) 509 509 show(); 510 /* Else hide window: */ 511 else 512 hide(); 510 513 } 511 514 -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp
r41486 r41487 200 200 { 201 201 /* Show window if we have to: */ 202 if ( shouldWeShowWindow())202 if (uisession()->isScreenVisible(m_uScreenId)) 203 203 show(); 204 /* Else hide window: */ 205 else 206 hide(); 204 207 } 205 208 -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp
r41486 r41487 220 220 { 221 221 /* Show window if we have to: */ 222 if ( shouldWeShowWindow())222 if (uisession()->isScreenVisible(m_uScreenId)) 223 223 { 224 224 /* Show manually maximized window: */ … … 235 235 #endif /* Q_WS_MAC */ 236 236 } 237 /* Else hide window: */ 238 else hide(); 237 239 } 238 240
Note:
See TracChangeset
for help on using the changeset viewer.