aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src-qt5/core/lumina-desktop/LSession.cpp7
-rw-r--r--src-qt5/core/lumina-desktop/LSession.h2
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);
bgstack15