Next try at avoiding too few or too many size events.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5424 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2000-01-15 20:06:47 +00:00
parent 4157f43f4b
commit 5b8a521e59
14 changed files with 92 additions and 94 deletions

View File

@@ -87,6 +87,7 @@ public:
GtkAdjustment *m_adjust; GtkAdjustment *m_adjust;
float m_oldPos; float m_oldPos;
bool m_isScrolling;
private: private:
DECLARE_DYNAMIC_CLASS(wxScrollBar) DECLARE_DYNAMIC_CLASS(wxScrollBar)

View File

@@ -106,12 +106,6 @@ public:
virtual WXWidget GetHandle() const { return m_widget; } virtual WXWidget GetHandle() const { return m_widget; }
// also sets the global flag
void SetScrolling(bool scroll);
bool HasScrolling() const { return m_hasScrolling; }
bool IsScrolling() const { return m_isScrolling; }
/* I don't want users to override what's done in idle so everything that /* I don't want users to override what's done in idle so everything that
has to be done in idle time in order for wxGTK to work is done in has to be done in idle time in order for wxGTK to work is done in
OnInternalIdle */ OnInternalIdle */
@@ -157,11 +151,12 @@ public:
// called from GTK signales handlers. it indicates that // called from GTK signales handlers. it indicates that
// the layouting functions have to be called later on // the layouting functions have to be called later on
// (i.e. in idle time, implemented in OnInternalIdle() ). // (i.e. in idle time, implemented in OnInternalIdle() ).
void UpdateSize() { m_sizeSet = FALSE; } void GtkUpdateSize() { m_sizeSet = FALSE; }
// position and size of the window // position and size of the window
int m_x, m_y; int m_x, m_y;
int m_width, m_height; int m_width, m_height;
int m_oldClientWidth,m_oldClientHeight;
/* see the docs in src/gtk/window.cpp */ /* see the docs in src/gtk/window.cpp */
GtkWidget *m_widget; GtkWidget *m_widget;
@@ -183,7 +178,6 @@ public:
bool m_noExpose:1; /* wxGLCanvas has its own redrawing */ bool m_noExpose:1; /* wxGLCanvas has its own redrawing */
bool m_nativeSizeEvent:1; /* wxGLCanvas sends wxSizeEvent upon "alloc_size" */ bool m_nativeSizeEvent:1; /* wxGLCanvas sends wxSizeEvent upon "alloc_size" */
bool m_hasScrolling:1; bool m_hasScrolling:1;
bool m_isScrolling:1;
bool m_hasVMT:1; bool m_hasVMT:1;
bool m_sizeSet:1; bool m_sizeSet:1;
bool m_resizing:1; bool m_resizing:1;
@@ -195,7 +189,6 @@ public:
// these are true if the style were set before the widget was realized // these are true if the style were set before the widget was realized
// (typcally in the constructor) but the actual GTK style must not be set // (typcally in the constructor) but the actual GTK style must not be set
// before the widget has been "realized" // before the widget has been "realized"
bool m_delayedFont:1;
bool m_delayedForegroundColour:1; bool m_delayedForegroundColour:1;
bool m_delayedBackgroundColour:1; bool m_delayedBackgroundColour:1;

View File

@@ -87,6 +87,7 @@ public:
GtkAdjustment *m_adjust; GtkAdjustment *m_adjust;
float m_oldPos; float m_oldPos;
bool m_isScrolling;
private: private:
DECLARE_DYNAMIC_CLASS(wxScrollBar) DECLARE_DYNAMIC_CLASS(wxScrollBar)

View File

@@ -106,12 +106,6 @@ public:
virtual WXWidget GetHandle() const { return m_widget; } virtual WXWidget GetHandle() const { return m_widget; }
// also sets the global flag
void SetScrolling(bool scroll);
bool HasScrolling() const { return m_hasScrolling; }
bool IsScrolling() const { return m_isScrolling; }
/* I don't want users to override what's done in idle so everything that /* I don't want users to override what's done in idle so everything that
has to be done in idle time in order for wxGTK to work is done in has to be done in idle time in order for wxGTK to work is done in
OnInternalIdle */ OnInternalIdle */
@@ -157,11 +151,12 @@ public:
// called from GTK signales handlers. it indicates that // called from GTK signales handlers. it indicates that
// the layouting functions have to be called later on // the layouting functions have to be called later on
// (i.e. in idle time, implemented in OnInternalIdle() ). // (i.e. in idle time, implemented in OnInternalIdle() ).
void UpdateSize() { m_sizeSet = FALSE; } void GtkUpdateSize() { m_sizeSet = FALSE; }
// position and size of the window // position and size of the window
int m_x, m_y; int m_x, m_y;
int m_width, m_height; int m_width, m_height;
int m_oldClientWidth,m_oldClientHeight;
/* see the docs in src/gtk/window.cpp */ /* see the docs in src/gtk/window.cpp */
GtkWidget *m_widget; GtkWidget *m_widget;
@@ -183,7 +178,6 @@ public:
bool m_noExpose:1; /* wxGLCanvas has its own redrawing */ bool m_noExpose:1; /* wxGLCanvas has its own redrawing */
bool m_nativeSizeEvent:1; /* wxGLCanvas sends wxSizeEvent upon "alloc_size" */ bool m_nativeSizeEvent:1; /* wxGLCanvas sends wxSizeEvent upon "alloc_size" */
bool m_hasScrolling:1; bool m_hasScrolling:1;
bool m_isScrolling:1;
bool m_hasVMT:1; bool m_hasVMT:1;
bool m_sizeSet:1; bool m_sizeSet:1;
bool m_resizing:1; bool m_resizing:1;
@@ -195,7 +189,6 @@ public:
// these are true if the style were set before the widget was realized // these are true if the style were set before the widget was realized
// (typcally in the constructor) but the actual GTK style must not be set // (typcally in the constructor) but the actual GTK style must not be set
// before the widget has been "realized" // before the widget has been "realized"
bool m_delayedFont:1;
bool m_delayedForegroundColour:1; bool m_delayedForegroundColour:1;
bool m_delayedBackgroundColour:1; bool m_delayedBackgroundColour:1;

View File

@@ -79,7 +79,7 @@ static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation
{ {
win->m_width = alloc->width; win->m_width = alloc->width;
win->m_height = alloc->height; win->m_height = alloc->height;
win->UpdateSize(); win->GtkUpdateSize();
} }
} }

View File

@@ -126,7 +126,7 @@ static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
win->m_width = alloc->width; win->m_width = alloc->width;
win->m_height = alloc->height; win->m_height = alloc->height;
win->UpdateSize(); win->GtkUpdateSize();
} }
} }
@@ -154,7 +154,7 @@ static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *
if (!win->m_hasVMT) return; if (!win->m_hasVMT) return;
win->m_menuBarDetached = FALSE; win->m_menuBarDetached = FALSE;
win->UpdateSize(); win->GtkUpdateSize();
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -166,7 +166,7 @@ static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *
if (!win->m_hasVMT) return; if (!win->m_hasVMT) return;
win->m_menuBarDetached = TRUE; win->m_menuBarDetached = TRUE;
win->UpdateSize(); win->GtkUpdateSize();
} }
#if wxUSE_TOOLBAR #if wxUSE_TOOLBAR
@@ -180,7 +180,7 @@ static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidge
win->m_toolBarDetached = FALSE; win->m_toolBarDetached = FALSE;
win->UpdateSize(); win->GtkUpdateSize();
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -195,7 +195,7 @@ static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidge
if (!win->m_hasVMT) return; if (!win->m_hasVMT) return;
win->m_toolBarDetached = TRUE; win->m_toolBarDetached = TRUE;
win->UpdateSize(); win->GtkUpdateSize();
} }
#endif // wxUSE_TOOLBAR #endif // wxUSE_TOOLBAR
@@ -386,7 +386,7 @@ static void wxInsertChildInFrame( wxFrame* parent, wxWindow* child )
} }
/* resize on OnInternalIdle */ /* resize on OnInternalIdle */
parent->UpdateSize(); parent->GtkUpdateSize();
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -963,7 +963,7 @@ void wxFrame::SetToolBar(wxToolBar *toolbar)
GetChildren().DeleteObject( m_frameToolBar ); GetChildren().DeleteObject( m_frameToolBar );
gtk_widget_reparent( m_frameToolBar->m_widget, m_mainWidget ); gtk_widget_reparent( m_frameToolBar->m_widget, m_mainWidget );
UpdateSize(); GtkUpdateSize();
} }
} }
} }

View File

@@ -88,7 +88,7 @@ static gint gtk_scrollbar_button_press_callback( GtkRange *WXUNUSED(widget),
{ {
if (g_isIdle) wxapp_install_idle_handler(); if (g_isIdle) wxapp_install_idle_handler();
win->SetScrolling(TRUE); win->m_isScrolling = TRUE;
// g_blockEventsOnScroll = TRUE; doesn't work in DialogEd // g_blockEventsOnScroll = TRUE; doesn't work in DialogEd
return FALSE; return FALSE;
@@ -104,7 +104,7 @@ static gint gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
{ {
if (g_isIdle) wxapp_install_idle_handler(); if (g_isIdle) wxapp_install_idle_handler();
win->SetScrolling(FALSE); win->m_isScrolling = FALSE;
// g_blockEventsOnScroll = FALSE; // g_blockEventsOnScroll = FALSE;
gtk_signal_emit_by_name( GTK_OBJECT(win->m_adjust), "value_changed" ); gtk_signal_emit_by_name( GTK_OBJECT(win->m_adjust), "value_changed" );

View File

@@ -301,7 +301,7 @@ static void draw_frame( GtkWidget *widget, wxWindow *win )
int dw = 0; int dw = 0;
int dh = 0; int dh = 0;
if (win->HasScrolling()) if (win->m_hasScrolling)
{ {
GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(widget); GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(widget);
@@ -1639,7 +1639,7 @@ static gint gtk_scrollbar_button_press_callback( GtkRange *WXUNUSED(widget),
// //
// if (gdk_event->window != widget->slider) return FALSE; // if (gdk_event->window != widget->slider) return FALSE;
win->SetScrolling( TRUE ); g_blockEventsOnScroll = TRUE;
return FALSE; return FALSE;
} }
@@ -1660,7 +1660,7 @@ static gint gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
// //
// if (gdk_event->window != widget->slider) return FALSE; // if (gdk_event->window != widget->slider) return FALSE;
win->SetScrolling( FALSE ); g_blockEventsOnScroll = FALSE;
return FALSE; return FALSE;
} }
@@ -1715,10 +1715,23 @@ void gtk_window_size_callback( GtkWidget *WXUNUSED(widget),
if (g_isIdle) if (g_isIdle)
wxapp_install_idle_handler(); wxapp_install_idle_handler();
#if wxUSE_CONSTRAINTS if (!win->m_hasScrolling) return;
if (win->GetAutoLayout())
win->Layout(); int client_width = 0;
#endif int client_height = 0;
win->GetClientSize( &client_width, &client_height );
if ((client_width == win->m_oldClientWidth) && (client_height == win->m_oldClientHeight))
return;
win->m_oldClientWidth = client_width;
win->m_oldClientHeight = client_height;
if (!win->m_nativeSizeEvent)
{
wxSizeEvent event( win->GetSize(), win->GetId() );
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
} }
@@ -1913,7 +1926,6 @@ void wxWindow::Init()
m_nativeSizeEvent = FALSE; m_nativeSizeEvent = FALSE;
m_hasScrolling = FALSE; m_hasScrolling = FALSE;
m_isScrolling = FALSE;
m_hAdjust = (GtkAdjustment*) NULL; m_hAdjust = (GtkAdjustment*) NULL;
m_vAdjust = (GtkAdjustment*) NULL; m_vAdjust = (GtkAdjustment*) NULL;
@@ -2346,6 +2358,11 @@ void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags )
m_height+border+bottom_border ); m_height+border+bottom_border );
} }
if (m_hasScrolling)
{
GetClientSize( &m_oldClientWidth, &m_oldClientHeight );
}
/* /*
wxPrintf( "OnSize sent from " ); wxPrintf( "OnSize sent from " );
if (GetClassInfo() && GetClassInfo()->GetClassName()) if (GetClassInfo() && GetClassInfo()->GetClassName())
@@ -2449,7 +2466,7 @@ void wxWindow::DoSetClientSize( int width, int height )
dh += 1 * 2; dh += 1 * 2;
} }
if (HasScrolling()) if (m_hasScrolling)
{ {
GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget);
@@ -2511,7 +2528,7 @@ void wxWindow::DoGetClientSize( int *width, int *height ) const
dh += 1 * 2; dh += 1 * 2;
} }
if (HasScrolling()) if (m_hasScrolling)
{ {
GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget);
@@ -3317,10 +3334,6 @@ void wxWindow::SetScrollPos( int orient, int pos, bool WXUNUSED(refresh) )
m_vAdjust->value = fpos; m_vAdjust->value = fpos;
} }
/*
if (!m_isScrolling)
{
*/
if (m_wxwindow->window) if (m_wxwindow->window)
{ {
if (orient == wxHORIZONTAL) if (orient == wxHORIZONTAL)
@@ -3328,9 +3341,6 @@ void wxWindow::SetScrollPos( int orient, int pos, bool WXUNUSED(refresh) )
else else
gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "value_changed" ); gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "value_changed" );
} }
/*
}
*/
} }
int wxWindow::GetScrollThumb( int orient ) const int wxWindow::GetScrollThumb( int orient ) const
@@ -3433,8 +3443,3 @@ void wxWindow::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
} }
*/ */
} }
void wxWindow::SetScrolling(bool scroll)
{
m_isScrolling = g_blockEventsOnScroll = scroll;
}

View File

@@ -79,7 +79,7 @@ static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation
{ {
win->m_width = alloc->width; win->m_width = alloc->width;
win->m_height = alloc->height; win->m_height = alloc->height;
win->UpdateSize(); win->GtkUpdateSize();
} }
} }

View File

@@ -126,7 +126,7 @@ static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
win->m_width = alloc->width; win->m_width = alloc->width;
win->m_height = alloc->height; win->m_height = alloc->height;
win->UpdateSize(); win->GtkUpdateSize();
} }
} }
@@ -154,7 +154,7 @@ static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *
if (!win->m_hasVMT) return; if (!win->m_hasVMT) return;
win->m_menuBarDetached = FALSE; win->m_menuBarDetached = FALSE;
win->UpdateSize(); win->GtkUpdateSize();
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -166,7 +166,7 @@ static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *
if (!win->m_hasVMT) return; if (!win->m_hasVMT) return;
win->m_menuBarDetached = TRUE; win->m_menuBarDetached = TRUE;
win->UpdateSize(); win->GtkUpdateSize();
} }
#if wxUSE_TOOLBAR #if wxUSE_TOOLBAR
@@ -180,7 +180,7 @@ static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidge
win->m_toolBarDetached = FALSE; win->m_toolBarDetached = FALSE;
win->UpdateSize(); win->GtkUpdateSize();
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -195,7 +195,7 @@ static void gtk_toolbar_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidge
if (!win->m_hasVMT) return; if (!win->m_hasVMT) return;
win->m_toolBarDetached = TRUE; win->m_toolBarDetached = TRUE;
win->UpdateSize(); win->GtkUpdateSize();
} }
#endif // wxUSE_TOOLBAR #endif // wxUSE_TOOLBAR
@@ -386,7 +386,7 @@ static void wxInsertChildInFrame( wxFrame* parent, wxWindow* child )
} }
/* resize on OnInternalIdle */ /* resize on OnInternalIdle */
parent->UpdateSize(); parent->GtkUpdateSize();
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -963,7 +963,7 @@ void wxFrame::SetToolBar(wxToolBar *toolbar)
GetChildren().DeleteObject( m_frameToolBar ); GetChildren().DeleteObject( m_frameToolBar );
gtk_widget_reparent( m_frameToolBar->m_widget, m_mainWidget ); gtk_widget_reparent( m_frameToolBar->m_widget, m_mainWidget );
UpdateSize(); GtkUpdateSize();
} }
} }
} }

View File

@@ -88,7 +88,7 @@ static gint gtk_scrollbar_button_press_callback( GtkRange *WXUNUSED(widget),
{ {
if (g_isIdle) wxapp_install_idle_handler(); if (g_isIdle) wxapp_install_idle_handler();
win->SetScrolling(TRUE); win->m_isScrolling = TRUE;
// g_blockEventsOnScroll = TRUE; doesn't work in DialogEd // g_blockEventsOnScroll = TRUE; doesn't work in DialogEd
return FALSE; return FALSE;
@@ -104,7 +104,7 @@ static gint gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
{ {
if (g_isIdle) wxapp_install_idle_handler(); if (g_isIdle) wxapp_install_idle_handler();
win->SetScrolling(FALSE); win->m_isScrolling = FALSE;
// g_blockEventsOnScroll = FALSE; // g_blockEventsOnScroll = FALSE;
gtk_signal_emit_by_name( GTK_OBJECT(win->m_adjust), "value_changed" ); gtk_signal_emit_by_name( GTK_OBJECT(win->m_adjust), "value_changed" );

View File

@@ -301,7 +301,7 @@ static void draw_frame( GtkWidget *widget, wxWindow *win )
int dw = 0; int dw = 0;
int dh = 0; int dh = 0;
if (win->HasScrolling()) if (win->m_hasScrolling)
{ {
GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(widget); GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(widget);
@@ -1639,7 +1639,7 @@ static gint gtk_scrollbar_button_press_callback( GtkRange *WXUNUSED(widget),
// //
// if (gdk_event->window != widget->slider) return FALSE; // if (gdk_event->window != widget->slider) return FALSE;
win->SetScrolling( TRUE ); g_blockEventsOnScroll = TRUE;
return FALSE; return FALSE;
} }
@@ -1660,7 +1660,7 @@ static gint gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
// //
// if (gdk_event->window != widget->slider) return FALSE; // if (gdk_event->window != widget->slider) return FALSE;
win->SetScrolling( FALSE ); g_blockEventsOnScroll = FALSE;
return FALSE; return FALSE;
} }
@@ -1715,10 +1715,23 @@ void gtk_window_size_callback( GtkWidget *WXUNUSED(widget),
if (g_isIdle) if (g_isIdle)
wxapp_install_idle_handler(); wxapp_install_idle_handler();
#if wxUSE_CONSTRAINTS if (!win->m_hasScrolling) return;
if (win->GetAutoLayout())
win->Layout(); int client_width = 0;
#endif int client_height = 0;
win->GetClientSize( &client_width, &client_height );
if ((client_width == win->m_oldClientWidth) && (client_height == win->m_oldClientHeight))
return;
win->m_oldClientWidth = client_width;
win->m_oldClientHeight = client_height;
if (!win->m_nativeSizeEvent)
{
wxSizeEvent event( win->GetSize(), win->GetId() );
event.SetEventObject( win );
win->GetEventHandler()->ProcessEvent( event );
}
} }
@@ -1913,7 +1926,6 @@ void wxWindow::Init()
m_nativeSizeEvent = FALSE; m_nativeSizeEvent = FALSE;
m_hasScrolling = FALSE; m_hasScrolling = FALSE;
m_isScrolling = FALSE;
m_hAdjust = (GtkAdjustment*) NULL; m_hAdjust = (GtkAdjustment*) NULL;
m_vAdjust = (GtkAdjustment*) NULL; m_vAdjust = (GtkAdjustment*) NULL;
@@ -2346,6 +2358,11 @@ void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags )
m_height+border+bottom_border ); m_height+border+bottom_border );
} }
if (m_hasScrolling)
{
GetClientSize( &m_oldClientWidth, &m_oldClientHeight );
}
/* /*
wxPrintf( "OnSize sent from " ); wxPrintf( "OnSize sent from " );
if (GetClassInfo() && GetClassInfo()->GetClassName()) if (GetClassInfo() && GetClassInfo()->GetClassName())
@@ -2449,7 +2466,7 @@ void wxWindow::DoSetClientSize( int width, int height )
dh += 1 * 2; dh += 1 * 2;
} }
if (HasScrolling()) if (m_hasScrolling)
{ {
GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget);
@@ -2511,7 +2528,7 @@ void wxWindow::DoGetClientSize( int *width, int *height ) const
dh += 1 * 2; dh += 1 * 2;
} }
if (HasScrolling()) if (m_hasScrolling)
{ {
GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget);
@@ -3317,10 +3334,6 @@ void wxWindow::SetScrollPos( int orient, int pos, bool WXUNUSED(refresh) )
m_vAdjust->value = fpos; m_vAdjust->value = fpos;
} }
/*
if (!m_isScrolling)
{
*/
if (m_wxwindow->window) if (m_wxwindow->window)
{ {
if (orient == wxHORIZONTAL) if (orient == wxHORIZONTAL)
@@ -3328,9 +3341,6 @@ void wxWindow::SetScrollPos( int orient, int pos, bool WXUNUSED(refresh) )
else else
gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "value_changed" ); gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "value_changed" );
} }
/*
}
*/
} }
int wxWindow::GetScrollThumb( int orient ) const int wxWindow::GetScrollThumb( int orient ) const
@@ -3433,8 +3443,3 @@ void wxWindow::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
} }
*/ */
} }
void wxWindow::SetScrolling(bool scroll)
{
m_isScrolling = g_blockEventsOnScroll = scroll;
}