Browse Source

WorkspacePicker: Hide applet if size == 0

Filiph Sandström 3 years ago
parent
commit
a1ddc44c07

+ 6 - 0
Userland/Applets/WorkspacePicker/DesktopStatusWindow.cpp

@@ -104,6 +104,12 @@ private:
 DesktopStatusWindow::DesktopStatusWindow()
 {
     GUI::Desktop::the().on_receive_screen_rects([&](GUI::Desktop&) {
+        auto& desktop = GUI::Desktop::the();
+        if (desktop.workspace_rows() == 1 && desktop.workspace_columns() == 1)
+            resize(0, 0);
+        else
+            resize(28, 16);
+
         update();
     });
     set_window_type(GUI::WindowType::Applet);

+ 8 - 1
Userland/Applets/WorkspacePicker/main.cpp

@@ -8,6 +8,7 @@
 #include <LibCore/System.h>
 #include <LibGUI/Application.h>
 #include <LibGUI/ConnectionToWindowManagerServer.h>
+#include <LibGUI/Desktop.h>
 #include <LibGUI/Painter.h>
 #include <LibMain/Main.h>
 #include <WindowServer/Window.h>
@@ -25,7 +26,13 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
 
     auto window = TRY(DesktopStatusWindow::try_create());
     window->set_title("WorkspacePicker");
-    window->resize(28, 16);
+
+    auto& desktop = GUI::Desktop::the();
+    if (desktop.workspace_rows() == 1 && desktop.workspace_columns() == 1)
+        window->resize(0, 0);
+    else
+        window->resize(28, 16);
+
     window->show();
     window->make_window_manager(WindowServer::WMEventMask::WorkspaceChanges);