diff --git a/src/gtk/timer.cpp b/src/gtk/timer.cpp index a8514f8cd1..48313ee6ad 100644 --- a/src/gtk/timer.cpp +++ b/src/gtk/timer.cpp @@ -41,7 +41,12 @@ extern "C" gint timeout_callback( gpointer data ) gdk_threads_leave(); if ( timer->IsOneShot() ) + { + // This sets m_tag to -1 + timer->Stop(); + return FALSE; + } return TRUE; } diff --git a/src/gtk1/timer.cpp b/src/gtk1/timer.cpp index a8514f8cd1..48313ee6ad 100644 --- a/src/gtk1/timer.cpp +++ b/src/gtk1/timer.cpp @@ -41,7 +41,12 @@ extern "C" gint timeout_callback( gpointer data ) gdk_threads_leave(); if ( timer->IsOneShot() ) + { + // This sets m_tag to -1 + timer->Stop(); + return FALSE; + } return TRUE; }