- Timestamp:
- Sep 26, 2013 12:20:47 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 89333
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
r48548 r48705 80 80 VirtualBox_DEFS = 81 81 VirtualBox_DEFS.debug = VBOX_CHECK_STATE # QT_FATAL_ASSERT 82 VirtualBox_DEFS.darwin = VBOX_GUI_USE_QIMAGE VBOX_GUI_USE_QUARTZ2D 82 VirtualBox_DEFS.darwin = VBOX_GUI_USE_QIMAGE VBOX_GUI_USE_QUARTZ2D VBOX_WITH_TRANSLUCENT_SEAMLESS 83 83 VirtualBox_DEFS.freebsd = VBOX_GUI_USE_QIMAGE 84 84 VirtualBox_DEFS.linux = VBOX_GUI_USE_QIMAGE -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp
r47493 r48705 27 27 # include "UIMessageCenter.h" 28 28 # include "VBoxGlobal.h" 29 # if def Q_WS_X1129 # ifndef VBOX_WITH_TRANSLUCENT_SEAMLESS 30 30 # include "UIMachineWindow.h" 31 # endif /* Q_WS_X11*/31 # endif /* !VBOX_WITH_TRANSLUCENT_SEAMLESS */ 32 32 33 33 /* Other VBox includes: */ … … 375 375 m_asyncVisibleRegion = region; 376 376 377 #ifdef Q_WS_X11 378 /* Qt 4.8.3 under X11 has Qt::WA_TranslucentBackground window attribute broken, 379 * so we are also have to use async visible-region to apply to [Q]Widget [set]Mask 380 * which internally wraps old one known (approved) Xshape extension: */ 377 #ifndef VBOX_WITH_TRANSLUCENT_SEAMLESS 378 /* We have to use async visible-region to apply to [Q]Widget [set]Mask: */ 381 379 m_pMachineView->machineWindow()->setMask(m_asyncVisibleRegion); 382 #endif /* Q_WS_X11*/380 #endif /* !VBOX_WITH_TRANSLUCENT_SEAMLESS */ 383 381 } 384 382 -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBufferQImage.cpp
r47510 r48705 250 250 foreach (const QRect &rect, regionToPaint.rects()) 251 251 { 252 #if def Q_WS_WIN252 #if defined(VBOX_WITH_TRANSLUCENT_SEAMLESS) && defined(Q_WS_WIN) 253 253 /* Replace translucent background with black one, 254 254 * that is necessary for window with Qt::WA_TranslucentBackground: */ … … 256 256 painter.fillRect(rect, QColor(Qt::black)); 257 257 painter.setCompositionMode(QPainter::CompositionMode_SourceAtop); 258 #endif /* Q_WS_WIN */258 #endif /* VBOX_WITH_TRANSLUCENT_SEAMLESS && Q_WS_WIN */ 259 259 260 260 /* Draw image rectangle depending on rectangle width: */ -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.h
r47478 r48705 62 62 CMachine machine() const; 63 63 64 #ifndef VBOX_WITH_TRANSLUCENT_SEAMLESS 64 65 /* Virtual caller for base class setMask: */ 65 66 virtual void setMask(const QRegion ®ion); 67 #endif /* !VBOX_WITH_TRANSLUCENT_SEAMLESS */ 66 68 67 69 protected slots: -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp
r47478 r48705 92 92 setAttribute(Qt::WA_NoSystemBackground); 93 93 94 #ifdef Q_WS_WIN 95 /* Using Qt API to enable translucent background for the Win host. 96 * - Under Mac host Qt doesn't allows to disable window-shadows 97 * until version 4.8, but minimum supported version is 4.7.1 for now. 98 * - Under x11 host Qt 4.8.3 has it broken wih KDE 4.9 for now: */ 99 setAttribute(Qt::WA_TranslucentBackground); 100 #endif /* Q_WS_WIN */ 101 102 #ifdef Q_WS_MAC 94 #ifdef VBOX_WITH_TRANSLUCENT_SEAMLESS 95 # ifdef Q_WS_MAC 103 96 /* Using native API to enable translucent background for the Mac host. 104 97 * - We also want to disable window-shadows which is possible … … 106 99 * while minimum supported version is 4.7.1 for now: */ 107 100 ::darwinSetShowsWindowTransparent(this, true); 108 #endif /* Q_WS_MAC */ 101 # else /* Q_WS_MAC */ 102 /* Using Qt API to enable translucent background: 103 * - Under Win host Qt conflicts with 3D stuff (black seamless regions). 104 * - Under Mac host Qt doesn't allows to disable window-shadows 105 * until version 4.8, but minimum supported version is 4.7.1 for now. 106 * - Under x11 host Qt has it broken with KDE 4.9 (black background): */ 107 setAttribute(Qt::WA_TranslucentBackground); 108 # endif /* !Q_WS_MAC */ 109 #endif /* VBOX_WITH_TRANSLUCENT_SEAMLESS */ 109 110 110 111 #ifndef Q_WS_MAC … … 258 259 #endif /* !Q_WS_MAC */ 259 260 260 #if def Q_WS_WIN261 #if defined(VBOX_WITH_TRANSLUCENT_SEAMLESS) && defined(Q_WS_WIN) 261 262 void UIMachineWindowSeamless::showEvent(QShowEvent*) 262 263 { … … 268 269 QApplication::postEvent(this, new QEvent(QEvent::UpdateRequest), Qt::LowEventPriority); 269 270 } 270 #endif /* Q_WS_WIN */271 272 #if def Q_WS_X11271 #endif /* VBOX_WITH_TRANSLUCENT_SEAMLESS && Q_WS_WIN */ 272 273 #ifndef VBOX_WITH_TRANSLUCENT_SEAMLESS 273 274 void UIMachineWindowSeamless::setMask(const QRegion ®ion) 274 275 { … … 303 304 } 304 305 } 305 #endif /* Q_WS_X11*/306 306 #endif /* !VBOX_WITH_TRANSLUCENT_SEAMLESS */ 307 -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.h
r46256 r48705 74 74 #endif /* !Q_WS_MAC */ 75 75 76 #if def Q_WS_WIN76 #if defined(VBOX_WITH_TRANSLUCENT_SEAMLESS) && defined(Q_WS_WIN) 77 77 /* Handler: Translucency stuff: */ 78 78 void showEvent(QShowEvent *pEvent); 79 #endif /* Q_WS_WIN */79 #endif /* VBOX_WITH_TRANSLUCENT_SEAMLESS && Q_WS_WIN */ 80 80 81 #if def Q_WS_X1181 #ifndef VBOX_WITH_TRANSLUCENT_SEAMLESS 82 82 /* Helper: Masking stuff: */ 83 83 void setMask(const QRegion ®ion); 84 #endif /* Q_WS_X11*/84 #endif /* !VBOX_WITH_TRANSLUCENT_SEAMLESS */ 85 85 86 86 /* Widgets: */ … … 90 90 #endif /* !Q_WS_MAC */ 91 91 92 #if def Q_WS_X1192 #ifndef VBOX_WITH_TRANSLUCENT_SEAMLESS 93 93 /* Variable: Masking stuff: */ 94 94 QRegion m_maskRegion; 95 #endif /* Q_WS_X11*/95 #endif /* !VBOX_WITH_TRANSLUCENT_SEAMLESS */ 96 96 97 97 /* Factory support: */
Note:
See TracChangeset
for help on using the changeset viewer.