summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-07-13 04:09:29 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-07-13 04:09:29 +0000
commit4f2f95ce18dc6290c3581b40ea4f20d05bd78d55 (patch)
treedfe5142295b450df7d9838ed6ade1d1332377d22
parentbee265d85549eed053dfc1e6308f4b5dbd3f2536 (diff)
downloadtdebase-4f2f95ce18dc6290c3581b40ea4f20d05bd78d55.tar.gz
tdebase-4f2f95ce18dc6290c3581b40ea4f20d05bd78d55.zip
Fix a second cause of the ever-ubiquitous Bug #456
This one is related to the MOC having a different idea of the data structure than the C compiler does in bgmanager.xx, thereby causing memory corruption when the bgmanager object attempts to access data members that the MOC did not add to the objects memory structure. Also apply the fix in r1420474 to KDesktopIface and KScreenSaverIface git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1241406 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
-rw-r--r--kdesktop/KDesktopIface.h4
-rw-r--r--kdesktop/KScreensaverIface.h4
-rw-r--r--kdesktop/bgmanager.h13
-rw-r--r--kdesktop/desktop.cc2
-rw-r--r--kdesktop/desktop.h3
-rw-r--r--kdesktop/kdesktopapp.h4
-rw-r--r--kdesktop/lockeng.cc2
-rw-r--r--kdesktop/lockeng.h2
8 files changed, 15 insertions, 19 deletions
diff --git a/kdesktop/KDesktopIface.h b/kdesktop/KDesktopIface.h
index abf98d93b..945fb4ca8 100644
--- a/kdesktop/KDesktopIface.h
+++ b/kdesktop/KDesktopIface.h
@@ -6,11 +6,13 @@
#include <dcopobject.h>
#include <dcopref.h>
-class KDesktopIface : virtual public DCOPObject
+class KDesktopIface : public DCOPObject
{
K_DCOP
public:
+ KDesktopIface() : DCOPObject("KDesktopIface") {}
+
k_dcop:
/**
* @internal
diff --git a/kdesktop/KScreensaverIface.h b/kdesktop/KScreensaverIface.h
index 0ed26b67a..de5c19f2b 100644
--- a/kdesktop/KScreensaverIface.h
+++ b/kdesktop/KScreensaverIface.h
@@ -4,11 +4,13 @@
#include <dcopobject.h>
-class KScreensaverIface : virtual public DCOPObject
+class KScreensaverIface : public DCOPObject
{
K_DCOP
public:
+ KScreensaverIface() : DCOPObject("KScreensaverIface") {}
+
k_dcop:
/** Lock the screen now even if the screensaver does not lock by default. */
virtual void lock() = 0;
diff --git a/kdesktop/bgmanager.h b/kdesktop/bgmanager.h
index 4e15b8df5..080c5a614 100644
--- a/kdesktop/bgmanager.h
+++ b/kdesktop/bgmanager.h
@@ -19,10 +19,6 @@
#define COMPOSITE
#endif
-#ifdef Q_MOC_RUN
-#define COMPOSITE
-#endif
-
class KConfig;
class TQTimer;
class TQPixmap;
@@ -93,11 +89,8 @@ private slots:
void desktopResized();
void clearRoot();
void saveImages();
-
-#ifdef COMPOSITE
void slotCmBackgroundChanged(bool);
-#endif
-
+
private:
void applyCommon(bool common);
void applyExport(bool _export);
@@ -129,9 +122,7 @@ private:
TQWidget *m_pDesktop;
TQTimer *m_pTimer;
-#ifdef COMPOSITE
- KPixmap *m_tPixmap;
-#endif
+ KPixmap *m_tPixmap;
TQPtrVector<KVirtualBGRenderer> m_Renderer;
TQPtrVector<KBackgroundCacheEntry> m_Cache;
diff --git a/kdesktop/desktop.cc b/kdesktop/desktop.cc
index a3ddff56f..5696d2e4a 100644
--- a/kdesktop/desktop.cc
+++ b/kdesktop/desktop.cc
@@ -135,7 +135,7 @@ KDesktop::WheelDirection KDesktop::m_eWheelDirection = KDesktop::m_eDefaultWheel
const char* KDesktop::m_wheelDirectionStrings[2] = { "Forward", "Reverse" };
KDesktop::KDesktop( bool x_root_hack, bool wait_for_kded ) :
- DCOPObject( "KDesktopIface" ),
+ KDesktopIface(),
TQWidget( 0L, "desktop", (WFlags)(WResizeNoErase | ( x_root_hack ? (WStyle_Customize | WStyle_NoBorder) : 0)) ),
// those two WStyle_ break kdesktop when the root-hack isn't used (no Dnd)
startup_id( NULL ), m_waitForKicker(0)
diff --git a/kdesktop/desktop.h b/kdesktop/desktop.h
index be1aeb796..4d3a81750 100644
--- a/kdesktop/desktop.h
+++ b/kdesktop/desktop.h
@@ -59,7 +59,8 @@ signals:
* It handles the background, the screensaver and all the rest of the global stuff.
* The icon view is a child widget of KDesktop.
*/
-class KDesktop : public TQWidget, virtual public KDesktopIface
+class KDesktop : public TQWidget,
+ public KDesktopIface
{
Q_OBJECT
diff --git a/kdesktop/kdesktopapp.h b/kdesktop/kdesktopapp.h
index 22b47bda2..44b3caa54 100644
--- a/kdesktop/kdesktopapp.h
+++ b/kdesktop/kdesktopapp.h
@@ -49,14 +49,14 @@ class KDesktopApp : public KUniqueApplication
return m_bgSupported;
}
#endif
-
+
signals:
void cmBackgroundChanged(bool supported);
#ifdef COMPOSITE
private:
void initCmBackground();
-
+
private:
Atom m_cmBackground;
diff --git a/kdesktop/lockeng.cc b/kdesktop/lockeng.cc
index 43c39f19f..af1207755 100644
--- a/kdesktop/lockeng.cc
+++ b/kdesktop/lockeng.cc
@@ -34,7 +34,7 @@ extern xautolock_corner_t xautolock_corners[ 4 ];
// a newly started process.
//
SaverEngine::SaverEngine()
- : DCOPObject("KScreensaverIface"),
+ : KScreensaverIface(),
TQWidget(),
mBlankOnly(false)
{
diff --git a/kdesktop/lockeng.h b/kdesktop/lockeng.h
index 72131a05c..9b125985f 100644
--- a/kdesktop/lockeng.h
+++ b/kdesktop/lockeng.h
@@ -24,7 +24,7 @@ class DCOPClientTransaction;
*/
class SaverEngine
: public TQWidget,
- virtual public KScreensaverIface
+ public KScreensaverIface
{
Q_OBJECT
public: