diff --git a/kdesktop/bgmanager.cc b/kdesktop/bgmanager.cc index 6d227eced..efabdbf2e 100644 --- a/kdesktop/bgmanager.cc +++ b/kdesktop/bgmanager.cc @@ -59,19 +59,8 @@ extern KDesktopApp *myApp; /**** KBackgroundManager ****/ -KBackgroundManager::KBackgroundManager() - : DCOPObject("KBackgroundIface") -{ - // Everything will be initialized later -} - KBackgroundManager::KBackgroundManager(TQWidget *desktop, KWinModule* kwinModule) : DCOPObject("KBackgroundIface") -{ - initializeManager(desktop, kwinModule); -} - -void KBackgroundManager::initializeManager(TQWidget *desktop, KWinModule* kwinModule) { if( !properties_inited ) { diff --git a/kdesktop/bgmanager.h b/kdesktop/bgmanager.h index af16e22ed..485d6520b 100644 --- a/kdesktop/bgmanager.h +++ b/kdesktop/bgmanager.h @@ -61,11 +61,9 @@ class KBackgroundManager TQ_OBJECT public: - KBackgroundManager(); KBackgroundManager(TQWidget *desktop, KWinModule* kwinModule); ~KBackgroundManager(); - void initializeManager(TQWidget *desktop, KWinModule* kwinModule); void configure(); void setCommon(int); bool isCommon() { return m_bCommon; }; diff --git a/kdesktop/desktop.cc b/kdesktop/desktop.cc index 1b047bd66..a3ddff56f 100644 --- a/kdesktop/desktop.cc +++ b/kdesktop/desktop.cc @@ -20,6 +20,7 @@ #include "desktop.h" #include "krootwm.h" +#include "bgmanager.h" #include "bgsettings.h" #include "startupid.h" #include "kdiconview.h" @@ -196,6 +197,7 @@ KDesktop::KDesktop( bool x_root_hack, bool wait_for_kded ) : m_pIconView = 0; m_pRootWidget = 0; + bgMgr = 0; initRoot(); TQTimer::singleShot(0, this, TQT_SLOT( slotStart() )); @@ -216,6 +218,8 @@ KDesktop::initRoot() if ( !m_bDesktopEnabled && !m_pRootWidget ) { hide(); + delete bgMgr; + bgMgr = 0; if ( m_pIconView ) m_pIconView->saveIconPositions(); delete m_pIconView; @@ -239,9 +243,9 @@ KDesktop::initRoot() // Geert Jansen: backgroundmanager belongs here // TODO tell KBackgroundManager if we change widget() - bgMgr.initializeManager( m_pIconView, m_pKwinmodule ); - bgMgr.setExport(1); - connect( &bgMgr, TQT_SIGNAL( initDone()), TQT_SLOT( backgroundInitDone())); + bgMgr = new KBackgroundManager( m_pIconView, m_pKwinmodule ); + bgMgr->setExport(1); + connect( bgMgr, TQT_SIGNAL( initDone()), TQT_SLOT( backgroundInitDone())); if (!m_bInit) { delete KRootWm::self(); @@ -252,6 +256,8 @@ KDesktop::initRoot() } else if (m_bDesktopEnabled && !m_pIconView) { + delete bgMgr; + bgMgr = 0; delete m_pRootWidget; m_pRootWidget = 0; m_pIconView = new KDIconView( this, 0 ); @@ -278,9 +284,9 @@ KDesktop::initRoot() // Geert Jansen: backgroundmanager belongs here // TODO tell KBackgroundManager if we change widget() - bgMgr.initializeManager( m_pIconView, m_pKwinmodule ); - bgMgr.setExport(1); - connect( &bgMgr, TQT_SIGNAL( initDone()), TQT_SLOT( backgroundInitDone())); + bgMgr = new KBackgroundManager( m_pIconView, m_pKwinmodule ); + bgMgr->setExport(1); + connect( bgMgr, TQT_SIGNAL( initDone()), TQT_SLOT( backgroundInitDone())); // make sure it is initialized before we first call updateWorkArea() m_pIconView->initConfig( m_bInit ); @@ -430,6 +436,8 @@ KDesktop::~KDesktop() { delete m_miniCli; m_miniCli = 0; // see #120382 + delete bgMgr; + bgMgr = 0; delete startup_id; } @@ -929,11 +937,11 @@ void KDesktop::handleColorDropEvent(TQDropEvent * e) TQColor c; KColorDrag::decode(e, c); switch (result) { - case 1: bgMgr.setColor(c, true); break; - case 2: bgMgr.setColor(c, false); break; + case 1: bgMgr->setColor(c, true); break; + case 2: bgMgr->setColor(c, false); break; default: return; } - bgMgr.setWallpaper(0,0); + bgMgr->setWallpaper(0,0); } void KDesktop::handleImageDropEvent(TQDropEvent * e) @@ -985,7 +993,7 @@ void KDesktop::handleImageDropEvent(TQDropEvent * e) KTempFile tmpFile(KGlobal::dirs()->saveLocation("wallpaper"), ".png"); i.save(tmpFile.name(), "PNG"); kdDebug(1204) << "KDesktop::contentsDropEvent " << tmpFile.name() << endl; - bgMgr.setWallpaper(tmpFile.name()); + bgMgr->setWallpaper(tmpFile.name()); } } @@ -994,7 +1002,7 @@ void KDesktop::slotNewWallpaper(const KURL &url) // This is called when a file containing an image is dropped // (called by KonqOperations) if ( url.isLocalFile() ) - bgMgr.setWallpaper( url.path() ); + bgMgr->setWallpaper( url.path() ); else { // Figure out extension @@ -1006,7 +1014,7 @@ void KDesktop::slotNewWallpaper(const KURL &url) KURL localURL; localURL.setPath( tmpFile.name() ); // We pass 0 as parent window because passing the desktop is not a good idea KIO::NetAccess::file_copy( url, localURL, -1, true /*overwrite*/ ); - bgMgr.setWallpaper( localURL.path() ); + bgMgr->setWallpaper( localURL.path() ); } } diff --git a/kdesktop/desktop.h b/kdesktop/desktop.h index ceb3bf1dc..be1aeb796 100644 --- a/kdesktop/desktop.h +++ b/kdesktop/desktop.h @@ -21,7 +21,6 @@ #define __desktop_h__ #include "KDesktopIface.h" -#include "bgmanager.h" #include #include @@ -191,7 +190,7 @@ private: KWinModule* m_pKwinmodule; - KBackgroundManager bgMgr; + KBackgroundManager* bgMgr; KDIconView *m_pIconView; KRootWidget *m_pRootWidget; diff --git a/kdesktop/krootwm.cc b/kdesktop/krootwm.cc index 3805e5c81..2ea6fa87c 100644 --- a/kdesktop/krootwm.cc +++ b/kdesktop/krootwm.cc @@ -69,7 +69,7 @@ KRootWm * KRootWm::s_rootWm = 0; extern TQCString kdesktop_name, kicker_name, kwin_name; -KRootWm::KRootWm(KDesktop* _desktop) : TQObject(_desktop), startup(FALSE) +KRootWm::KRootWm(KDesktop* _desktop) : TQObject(_desktop) { s_rootWm = this; m_actionCollection = new KActionCollection(_desktop, this, "KRootWm::m_actionCollection");