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

List:       kde-commits
Subject:    KDE/kdeutils/kjots
From:       Jaison Lee <lee.jaison () gmail ! com>
Date:       2005-07-19 23:30:05
Message-ID: 1121815805.790232.12653.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 436554 by jlee:

BUG: 109299
Fixed a race condition caused by opening a context menu while dragging a page
outside of a book.



 M  +7 -1      KJotsMain.cpp  
 M  +1 -0      KJotsMain.h  


--- trunk/KDE/kdeutils/kjots/KJotsMain.cpp #436553:436554
@@ -57,7 +57,8 @@
 //----------------------------------------------------------------------
 KJotsMain::KJotsMain(const char* name)
     : KMainWindow(0,name),
-      currentEntry(0)
+      currentEntry(0),
+      invalidMoveFlag(false)
 {
     //
     // Main widget
@@ -605,6 +606,7 @@
 
 void KJotsMain::showListviewContextMenu(KListView*, QListViewItem* i, const QPoint& p)
 {
+    if ( invalidMoveFlag ) return; //Prevent race condition
     KActionMenu* am = new KActionMenu(this);
 
     if (!i)
@@ -1051,6 +1053,8 @@
 
     if ( entry->isPage() && !item->parent() )
     {
+        invalidMoveFlag=true; //Don't do anything while we're stuck here.
+
         // We don't accept pages in the root. Create a new book?
         if (KMessageBox::questionYesNo(this,
                                        i18n("All pages must be inside a book. "
@@ -1072,6 +1076,8 @@
             subjectList->ensureItemVisible(item);
             subjectList->setSelected(item, true);
         }
+
+        invalidMoveFlag=false;
     }
 
     if ( entry ) 
--- trunk/KDE/kdeutils/kjots/KJotsMain.h #436553:436554
@@ -128,6 +128,7 @@
         QWidgetStack *textStack;
         QFont m_font;
         QTimer*  m_autosaveTimer;
+        bool invalidMoveFlag; //!< Used to fix a race condition. See Bug #109299
 };
 
 #endif // KJotsMain_included
[prev in list] [next in list] [prev in thread] [next in thread] 

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