]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msgqueue.h
Applied patch, fixes #12090: wxGTK cursor handling revamp
[wxWidgets.git] / include / wx / msgqueue.h
index eda5cc992cab2e3dc9acca717cc0e7d8756e2693..03d9f587c9ca26186d6af51818b8b4667e564da0 100644 (file)
@@ -19,6 +19,8 @@
 
 #if wxUSE_THREADS
 
+#include "wx/stopwatch.h"
+
 #include "wx/beforestd.h"
 #include <queue>
 #include "wx/afterstd.h"
@@ -70,6 +72,22 @@ public:
         return wxMSGQUEUE_NO_ERROR;
     }
 
+    // Remove all messages from the queue.
+    //
+    // This method is meant to be called from the same thread(s) that call
+    // Post() to discard any still pending requests if they became unnecessary.
+    wxMessageQueueError Clear()
+    {
+        wxCHECK( IsOk(), wxMSGQUEUE_MISC_ERROR );
+
+        wxMutexLocker locker(m_mutex);
+
+        std::queue<T> empty;
+        std::swap(m_messages, empty);
+
+        return wxMSGQUEUE_NO_ERROR;
+    }
+
     // Wait no more than timeout milliseconds until a message becomes available.
     //
     // Setting timeout to 0 is equivalent to an infinite timeout. See Receive().