From a931fcc502f91a6dc450b22c9d1592a72e2a0061 Mon Sep 17 00:00:00 2001 From: Gabriel Hevr Date: Sun, 17 Nov 2024 22:15:27 +0100 Subject: [PATCH] Display on all monitors --- src/gui/PadlockWindow.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/gui/PadlockWindow.cpp b/src/gui/PadlockWindow.cpp index 4b21250..28d08e6 100644 --- a/src/gui/PadlockWindow.cpp +++ b/src/gui/PadlockWindow.cpp @@ -32,10 +32,18 @@ padlock::PadlockGui::PadlockGui(const std::string& imgPath) } void padlock::PadlockGui::stretchWindowFullscreen() { - // TODO: display image on all monitors, controls only on primary - Gdk::Rectangle rect; - get_display()->get_primary_monitor()->get_workarea(rect); - set_default_size(rect.get_width(), rect.get_height()); + int maxHeight = 0, totalWidth = 0; + auto display = get_display(); + const int numMonitors = display->get_n_monitors(); + for (int i = 0; i < numMonitors; ++i) { + Gdk::Rectangle rect; + display->get_monitor(i)->get_workarea(rect); + totalWidth += rect.get_width(); + if (rect.get_height() > maxHeight) { + maxHeight = rect.get_height(); + } + } + set_default_size(totalWidth, maxHeight); } void padlock::PadlockGui::setWindowProperties() {