summaryrefslogtreecommitdiffstats
path: root/kcontrol
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol')
-rw-r--r--kcontrol/randr/krandrapp.cpp9
-rw-r--r--kcontrol/randr/krandrapp.h5
2 files changed, 13 insertions, 1 deletions
diff --git a/kcontrol/randr/krandrapp.cpp b/kcontrol/randr/krandrapp.cpp
index 2d773dd22..eab459e8e 100644
--- a/kcontrol/randr/krandrapp.cpp
+++ b/kcontrol/randr/krandrapp.cpp
@@ -28,13 +28,20 @@
KRandRApp::KRandRApp()
: m_tray(new KRandRSystemTray(0L, "RANDRTray"))
{
+ connect(&m_eventMergingTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(handleX11ConfigChangeEvent()));
m_tray->show();
}
+void KRandRApp::handleX11ConfigChangeEvent()
+{
+ m_eventMergingTimer.stop();
+ m_tray->configChanged();
+}
+
bool KRandRApp::x11EventFilter(XEvent* e)
{
if (e->type == m_tray->screenChangeNotifyEvent()) {
- m_tray->configChanged();
+ m_eventMergingTimer.start(1000, TRUE);
}
return KApplication::x11EventFilter( e );
}
diff --git a/kcontrol/randr/krandrapp.h b/kcontrol/randr/krandrapp.h
index 3b8895fc8..766b0056c 100644
--- a/kcontrol/randr/krandrapp.h
+++ b/kcontrol/randr/krandrapp.h
@@ -19,6 +19,7 @@
#ifndef KRANDRAPP_H
#define KRANDRAPP_H
+#include <tqtimer.h>
#include <kuniqueapplication.h>
class KRandRSystemTray;
@@ -32,8 +33,12 @@ public:
virtual bool x11EventFilter(XEvent * e);
+private slots:
+ void handleX11ConfigChangeEvent();
+
private:
KRandRSystemTray* m_tray;
+ TQTimer m_eventMergingTimer;
};
#endif