[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdelibs/kdeui
From: Nicolas Hadacek <hadacek () kde ! org>
Date: 2003-06-01 1:49:32
[Download RAW message or body]
CVS commit by hadacek:
now KRootPixmap also works if the widget gets reparented after KRootPixmap
creation.
M +17 -5 krootpixmap.cpp 1.20
--- kdelibs/kdeui/krootpixmap.cpp #1.19:1.20
@@ -28,4 +28,10 @@
#include <krootpixmap.h>
+class KRootPixmapData
+{
+public:
+ QWidget *toplevel;
+};
+
KRootPixmap::KRootPixmap( QWidget *widget, const char *name )
@@ -43,4 +49,5 @@ KRootPixmap::KRootPixmap( QWidget *widge
void KRootPixmap::init()
{
+ d = new KRootPixmapData;
m_Fade = 0;
m_pPixmap = new KSharedPixmap;
@@ -54,8 +61,6 @@ void KRootPixmap::init()
connect(m_pTimer, SIGNAL(timeout()), SLOT(repaint()));
- QObject *obj = m_pWidget;
- while (obj->parent())
- obj = obj->parent();
- obj->installEventFilter(this);
+ d->toplevel = m_pWidget->topLevelWidget();
+ d->toplevel->installEventFilter(this);
}
@@ -63,4 +68,5 @@ KRootPixmap::~KRootPixmap()
{
delete m_pPixmap;
+ delete d;
}
@@ -134,4 +140,10 @@ bool KRootPixmap::eventFilter(QObject *,
m_pTimer->start(0, true);
break;
+
+ case QEvent::Reparent:
+ d->toplevel->removeEventFilter(this);
+ d->toplevel = m_pWidget->topLevelWidget();
+ d->toplevel->installEventFilter(this);
+ break;
default:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic