From ba1430891386601cc26c2680a4309513ff182c54 Mon Sep 17 00:00:00 2001
From: Alexander Golubev <fatzer2@gmail.com>
Date: Fri, 3 Apr 2026 17:21:28 +0300
Subject: kcontrol/background: update preview on resolution change

Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
---
 kcontrol/background/bgdialog.cpp  | 1 +
 kcontrol/background/bgdialog.h    | 2 +-
 kcontrol/background/bgmonitor.cpp | 3 +++
 kcontrol/background/bgmonitor.h   | 3 +++
 4 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/kcontrol/background/bgdialog.cpp b/kcontrol/background/bgdialog.cpp
index 250c6cafa..5dff7338f 100644
--- a/kcontrol/background/bgdialog.cpp
+++ b/kcontrol/background/bgdialog.cpp
@@ -127,6 +127,7 @@ BGDialog::BGDialog(TQWidget* parent, TDEConfig* _config, bool _multidesktop)
    // preview monitor
    m_pMonitorArrangement = new BGMonitorArrangement(m_screenArrangement, "monitor arrangement");
    connect(m_pMonitorArrangement, TQ_SIGNAL(imageDropped(const TQString &)), TQ_SLOT(slotImageDropped(const TQString &)));
+   connect(m_pMonitorArrangement, TQ_SIGNAL(arrangementUpdated()), TQ_SLOT(updateUI()));
    if( m_multidesktop)
    {
        // desktop
diff --git a/kcontrol/background/bgdialog.h b/kcontrol/background/bgdialog.h
index a2e7bfea6..264544c61 100644
--- a/kcontrol/background/bgdialog.h
+++ b/kcontrol/background/bgdialog.h
@@ -52,7 +52,6 @@ signals:
 
 protected:
    void initUI();
-   void updateUI();
    KBackgroundRenderer * eRenderer();
 
    void setWallpaper(const TQString &);
@@ -60,6 +59,7 @@ protected:
    void loadWallpaperFilesList();
 
 protected slots:
+   void updateUI();
    void slotIdentifyScreens();
    void slotSelectScreen(int screen);
    void slotSelectDesk(int desk);
diff --git a/kcontrol/background/bgmonitor.cpp b/kcontrol/background/bgmonitor.cpp
index f1e6e3b54..f649a3f2c 100644
--- a/kcontrol/background/bgmonitor.cpp
+++ b/kcontrol/background/bgmonitor.cpp
@@ -52,6 +52,8 @@ BGMonitorArrangement::BGMonitorArrangement(TQWidget *parent, const char *name)
         connect( label->monitor(), TQ_SIGNAL(imageDropped(const TQString &)), this, TQ_SIGNAL(imageDropped(const TQString &)) );
     }
 
+    connect(desktop, TQ_SIGNAL(resized(int)), TQ_SLOT(updateArrangement()));
+
     parent->setFixedSize(200, 186);
     setFixedSize(200, 186);
     updateArrangement();
@@ -129,6 +131,7 @@ void BGMonitorArrangement::updateArrangement()
         m_pBGMonitor[screen]->setGeometry( TQRect( expandedTopLeft, expandedPreviewSize ) );
         m_pBGMonitor[screen]->updateMonitorGeometry();
     }
+    emit arrangementUpdated();
 }
 
 
diff --git a/kcontrol/background/bgmonitor.h b/kcontrol/background/bgmonitor.h
index 054154cef..34e950cc9 100644
--- a/kcontrol/background/bgmonitor.h
+++ b/kcontrol/background/bgmonitor.h
@@ -52,10 +52,13 @@ public:
     unsigned numMonitors() const { return m_pBGMonitor.size(); }
 
     BGMonitor * monitor( unsigned screen ) const;
+
+public slots:
     void updateArrangement();
 
 signals:
     void imageDropped(const TQString &);
+    void arrangementUpdated();
 
 protected:
     virtual void resizeEvent( TQResizeEvent * );
-- 
cgit v1.2.3

