[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdeutils/kdf
From: Stanislav Karchebny <berk () upnet ! ru>
Date: 2004-07-18 3:42:07
Message-ID: 20040718034207.76EC016AF4 () office ! kde ! org
[Download RAW message or body]
CVS commit by karchebny:
* Make popup behaviour saner. enterEvent() is still somewhat unreliable, but works for 99% of cases.
M +23 -1 kwikdisk.cpp 1.58
M +4 -0 kwikdisk.h 1.16
--- kdeutils/kdf/kwikdisk.cpp #1.57:1.58
@@ -62,4 +62,5 @@ KwikDisk::KwikDisk()
, m_dirty(TRUE)
, m_menuVisible(FALSE)
+ , m_inside(FALSE)
, m_optionDialog(0)
{
@@ -73,8 +74,29 @@ KwikDisk::KwikDisk()
this, SLOT(criticallyFull(DiskEntry*)) );
+ connect( contextMenu(), SIGNAL(aboutToHide()), this, SLOT(aboutToHide()) );
+
loadSettings();
updateDF();
}
+void KwikDisk::aboutToHide()
+{
+ kdDebug() << k_funcinfo << endl;
+ if( !m_inside )
+ m_menuVisible = FALSE;
+}
+
+void KwikDisk::enterEvent(QEvent *)
+{
+ kdDebug() << k_funcinfo << endl;
+ m_inside = TRUE;
+}
+
+void KwikDisk::leaveEvent(QEvent *)
+{
+ kdDebug() << k_funcinfo << endl;
+ m_inside = FALSE;
+}
+
void KwikDisk::mousePressEvent(QMouseEvent *me)
{
@@ -87,6 +109,6 @@ void KwikDisk::mousePressEvent(QMouseEve
{
contextMenu()->hide();
- me->ignore();
m_menuVisible = FALSE;
+ me->ignore();
return;
}
--- kdeutils/kdf/kwikdisk.h #1.15:1.16
@@ -54,8 +54,11 @@ class KwikDisk : public KSystemTray
void startKDF();
void invokeHelp();
+ void aboutToHide();
private:
void mousePressEvent(QMouseEvent *);
void timerEvent(QTimerEvent *);
+ void enterEvent(QEvent *);
+ void leaveEvent(QEvent *);
void setUpdateFrequency(int frequency);
@@ -69,4 +72,5 @@ class KwikDisk : public KSystemTray
bool m_dirty;
bool m_menuVisible;
+ bool m_inside;
COptionDialog *m_optionDialog;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic