diff options
author | xyzzy | 2024-02-08 20:06:55 +0100 |
---|---|---|
committer | xyzzy | 2024-02-08 20:06:55 +0100 |
commit | 5b1163f2ae08741d17e279daccafe1877def9de7 (patch) | |
tree | 4ce197fc9a33ab22a5eaf4967f96f4e46a1f756a /009-properly-handle-i3wm.patch | |
download | aur-5b1163f2ae08741d17e279daccafe1877def9de7.tar.gz |
Initial commit
Diffstat (limited to '009-properly-handle-i3wm.patch')
-rw-r--r-- | 009-properly-handle-i3wm.patch | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/009-properly-handle-i3wm.patch b/009-properly-handle-i3wm.patch new file mode 100644 index 000000000000..fc66f2816317 --- /dev/null +++ b/009-properly-handle-i3wm.patch @@ -0,0 +1,76 @@ +From b9e64417e4c33e2c17e060aa482519c2c8c7d416 Mon Sep 17 00:00:00 2001 +From: Christian Hesse <mail@eworm.de> +Date: Tue, 17 Jan 2023 22:04:08 +0100 +Subject: [PATCH] properly handle i3wm + +--- + .../VirtualBox/src/globals/UIDesktopWidgetWatchdog.cpp | 3 ++- + .../Frontends/VirtualBox/src/platform/x11/VBoxUtils-x11.cpp | 3 +++ + .../Frontends/VirtualBox/src/platform/x11/VBoxUtils-x11.h | 3 ++- + src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp | 4 ++++ + 4 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.cpp b/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.cpp +index c27ff6f6..066a80e0 100644 +--- a/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/globals/UIDesktopWidgetWatchdog.cpp +@@ -385,7 +385,8 @@ QRect UIDesktopWidgetWatchdog::availableGeometry(QScreen *pScreen) const + /* Get cached available-geometry: */ + const QRect availableGeometry = m_availableGeometryData.value(screenToIndex(pScreen)); + /* Return cached available-geometry if it's valid or screen-geometry otherwise: */ +- return availableGeometry.isValid() ? availableGeometry : screenGeometry(pScreen); ++ return availableGeometry.isValid() && NativeWindowSubsystem::X11WindowManagerType() != X11WMType_i3 ? ++ availableGeometry : screenGeometry(pScreen); + # endif /* !VBOX_GUI_WITH_CUSTOMIZATIONS1 */ + #else /* !VBOX_WS_X11 */ + /* Just return screen available-geometry: */ +diff --git a/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxUtils-x11.cpp b/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxUtils-x11.cpp +index 2443af89..6cfcff74 100644 +--- a/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxUtils-x11.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxUtils-x11.cpp +@@ -109,6 +109,9 @@ X11WMType NativeWindowSubsystem::X11WindowManagerType() + else + if (QString((const char*)pcData).contains("Xfwm4", Qt::CaseInsensitive)) + wmType = X11WMType_Xfwm4; ++ else ++ if (QString((const char*)pcData).contains("i3", Qt::CaseInsensitive)) ++ wmType = X11WMType_i3; + if (pcData) + XFree(pcData); + } +diff --git a/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxUtils-x11.h b/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxUtils-x11.h +index 66504c71..f83b5c85 100644 +--- a/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxUtils-x11.h ++++ b/src/VBox/Frontends/VirtualBox/src/platform/x11/VBoxUtils-x11.h +@@ -49,6 +49,7 @@ enum X11WMType + X11WMType_Metacity, + X11WMType_Mutter, + X11WMType_Xfwm4, ++ X11WMType_i3, + }; + + /** X11: Screen-saver inhibit methods. */ +@@ -95,7 +96,7 @@ namespace NativeWindowSubsystem + /** X11: Determines and returns whether the compositing manager is running. */ + bool X11IsCompositingManagerRunning(); + /** X11: Determines and returns current Window Manager type. */ +- X11WMType X11WindowManagerType(); ++ SHARED_LIBRARY_STUFF X11WMType X11WindowManagerType(); + + /** X11: Returns true if XLib extension with name @p extensionName is avaible, false otherwise. */ + bool X11CheckExtension(const char *extensionName); +diff --git a/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp b/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp +index 7b37d46b..b838ad07 100644 +--- a/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp ++++ b/src/VBox/Frontends/VirtualBox/src/widgets/UIMiniToolBar.cpp +@@ -1076,6 +1076,10 @@ void UIMiniToolBar::prepare() + /* Enable translucency through Qt API if supported: */ + if (uiCommon().isCompositingManagerRunning()) + setAttribute(Qt::WA_TranslucentBackground); ++ ++ if (NativeWindowSubsystem::X11WindowManagerType() == X11WMType_i3) ++ setWindowFlags(Qt::FramelessWindowHint); ++ + #endif /* VBOX_WS_X11 */ + + /* Make sure we have no focus: */ |