diff options
-rw-r--r-- | src-qt5/core/lumina-desktop/LSession.cpp | 7 | ||||
-rw-r--r-- | src-qt5/core/lumina-desktop/LSession.h | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src-qt5/core/lumina-desktop/LSession.cpp b/src-qt5/core/lumina-desktop/LSession.cpp index 8932ac36..02a08782 100644 --- a/src-qt5/core/lumina-desktop/LSession.cpp +++ b/src-qt5/core/lumina-desktop/LSession.cpp @@ -686,6 +686,13 @@ void LSession::WindowPropertyEvent(WId win){ //Emit the single-app signal if the window in question is one used by the task manager if(RunningApps.contains(win)){ if(DEBUG){ qDebug() << "Single-window property event"; } + if( XCB->WindowClass(win).contains("VirtualBox")){ + QList<LXCB::WINDOWSTATE> states = XCB->WM_Get_Window_States(win); + if(states.contains(LXCB::S_FULLSCREEN) && !states.contains(LXCB::S_HIDDEN)){ + XCB->WM_Set_Window_Type(win, QList<LXCB::WINDOWTYPE>() << LXCB::T_NORMAL ); + XCB->RestoreWindow(win); + } + } //emit WindowListEvent(); WindowPropertyEvent(); //Run through the entire routine for window checks }else if(RunningTrayApps.contains(win)){ diff --git a/src-qt5/core/lumina-desktop/LSession.h b/src-qt5/core/lumina-desktop/LSession.h index 8f799cd0..4c8da41c 100644 --- a/src-qt5/core/lumina-desktop/LSession.h +++ b/src-qt5/core/lumina-desktop/LSession.h @@ -67,7 +67,7 @@ public: // (DO NOT USE MANUALLY) void RootSizeChange(); void WindowPropertyEvent(); - void WindowPropertyEvent(WId); + void WindowPropertyEvent(WId); void SysTrayDockRequest(WId); void WindowClosedEvent(WId); void WindowConfigureEvent(WId); |