[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/kicker
From:       Aaron J. Seigo <aseigo () kde ! org>
Date:       2005-08-30 10:08:05
Message-ID: 1125396485.135220.25525.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 454922 by aseigo:

avoid getting hung up in an inner event loop when dragging from a menu


 M  +8 -1      kicker/ui/service_mnu.cpp  
 M  +2 -2      libkicker/kickertip.h  


--- trunk/KDE/kdebase/kicker/kicker/ui/service_mnu.cpp #454921:454922
@@ -736,7 +736,14 @@
 {
     if (KURLDrag::target() != this)
     {
-        close();
+        // we need to re-enter the event loop before calling close() here
+        // this gets called _before_ the drag object is destroyed, so we are
+        // still in its event loop. closing the menu before that event loop is
+        // exited may result in getting hung up in it which in turn prevents
+        // the execution of any code after the original exec() statement
+        // though the panels themselves continue on otherwise normally
+        // (we just have some sort of nested event loop)
+        QTimer::singleShot(0, this, SLOT(close()));
     }
 }
 
--- trunk/KDE/kdebase/kicker/libkicker/kickertip.h #454921:454922
@@ -64,12 +64,12 @@
     /**
      * For a widget to have a mouse over tip, simply have it subclass Client.
      * Then call installEventFilter(KickerTip::self()); and the widget will be
-     * tracked by thetip
+     * tracked by the tip
      */
     class KDE_EXPORT Client
     {
         public:
-			virtual ~Client(){};
+            virtual ~Client() {};
             virtual void updateTipData(KickerTip::Data&) = 0;
             void updateTip() const;
     };
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic