]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msgqueue.h
Don't reuse the same event object for multiple events in wxGTK.
[wxWidgets.git] / include / wx / msgqueue.h
index eaf64c05ae84183e233b293a70af5a9647e1612b..03d9f587c9ca26186d6af51818b8b4667e564da0 100644 (file)
@@ -72,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().