]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/scrolbar.cpp
Fox around a bug in GTK's GtkNotebook
[wxWidgets.git] / src / gtk / scrolbar.cpp
index 39aba4ce4698c1624b0b0010966f4628a85f11ce..5c9ddc9eb554b0439d3ba5adc7c4b63dad8cabf0 100644 (file)
 #include "gdk/gdk.h"
 #include "gtk/gtk.h"
 
+//-----------------------------------------------------------------------------
+// idle system
+//-----------------------------------------------------------------------------
+
+extern void wxapp_install_idle_handler();
+extern bool g_isIdle;
+
 //-----------------------------------------------------------------------------
 // data
 //-----------------------------------------------------------------------------
@@ -32,6 +39,8 @@ extern bool   g_blockEventsOnScroll;
 
 static void gtk_scrollbar_callback( GtkWidget *WXUNUSED(widget), wxScrollBar *win )
 { 
+    if (g_isIdle) wxapp_install_idle_handler();
+
     if (!win->HasVMT()) return;
     if (g_blockEventsOnDrag) return;
     
@@ -83,10 +92,12 @@ static gint gtk_scrollbar_button_press_callback( GtkRange *WXUNUSED(widget),
                                                  GdkEventButton *WXUNUSED(gdk_event), 
                                                 wxScrollBar *win )
 {
-  win->m_isScrolling = TRUE;
+    if (g_isIdle) wxapp_install_idle_handler();
+
+    win->m_isScrolling = TRUE;
 //  g_blockEventsOnScroll = TRUE;  doesn't work in DialogEd
   
-  return FALSE;
+    return FALSE;
 }
 
 //-----------------------------------------------------------------------------
@@ -97,6 +108,8 @@ static gint gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
                                                    GdkEventButton *WXUNUSED(gdk_event), 
                                                   wxScrollBar *win )
 {
+    if (g_isIdle) wxapp_install_idle_handler();
+
     win->m_isScrolling = FALSE;
 //  g_blockEventsOnScroll = FALSE;