diff --git a/include/wx/gtk/window.h b/include/wx/gtk/window.h index 0bba976592..2fc9d04455 100644 --- a/include/wx/gtk/window.h +++ b/include/wx/gtk/window.h @@ -170,14 +170,17 @@ class wxWindow: public wxEvtHandler virtual void SetDropTarget( wxDropTarget *dropTarget ); virtual wxDropTarget *GetDropTarget() const; - virtual void SetScrollbar( int orient, int pos, int thumbVisible, - int range, bool refresh = TRUE ); - virtual void SetScrollPos( int orient, int pos, bool refresh = TRUE ); - virtual int GetScrollPos( int orient ) const; - virtual int GetScrollThumb( int orient ) const; - virtual int GetScrollRange( int orient ) const; - virtual void ScrollWindow( int dx, int dy, const wxRect* rect = NULL ); - + virtual void SetScrollbar( const int orient, const int pos, const int thumbVisible, + const int range, const bool refresh = TRUE ); + virtual void SetScrollPos( const int orient, const int pos, const bool refresh = TRUE ); + virtual int GetScrollPos( const int orient ) const; + virtual int GetScrollThumb( const int orient ) const; + virtual int GetScrollRange( const int orient ) const; + virtual void ScrollWindow( const int dx, const int dy, const wxRect* rect = NULL ); + + // return FALSE from here if the window doesn't want the focus + virtual bool AcceptsFocus() const; + public: // cannot get private going yet void PreCreation( wxWindow *parent, wxWindowID id, const wxPoint &pos, diff --git a/include/wx/gtk1/window.h b/include/wx/gtk1/window.h index 0bba976592..2fc9d04455 100644 --- a/include/wx/gtk1/window.h +++ b/include/wx/gtk1/window.h @@ -170,14 +170,17 @@ class wxWindow: public wxEvtHandler virtual void SetDropTarget( wxDropTarget *dropTarget ); virtual wxDropTarget *GetDropTarget() const; - virtual void SetScrollbar( int orient, int pos, int thumbVisible, - int range, bool refresh = TRUE ); - virtual void SetScrollPos( int orient, int pos, bool refresh = TRUE ); - virtual int GetScrollPos( int orient ) const; - virtual int GetScrollThumb( int orient ) const; - virtual int GetScrollRange( int orient ) const; - virtual void ScrollWindow( int dx, int dy, const wxRect* rect = NULL ); - + virtual void SetScrollbar( const int orient, const int pos, const int thumbVisible, + const int range, const bool refresh = TRUE ); + virtual void SetScrollPos( const int orient, const int pos, const bool refresh = TRUE ); + virtual int GetScrollPos( const int orient ) const; + virtual int GetScrollThumb( const int orient ) const; + virtual int GetScrollRange( const int orient ) const; + virtual void ScrollWindow( const int dx, const int dy, const wxRect* rect = NULL ); + + // return FALSE from here if the window doesn't want the focus + virtual bool AcceptsFocus() const; + public: // cannot get private going yet void PreCreation( wxWindow *parent, wxWindowID id, const wxPoint &pos, diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 26f5f1b989..e8f1110306 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -2393,3 +2393,7 @@ void wxWindow::GetPositionConstraint(int *x, int *y) const GetPosition(x, y); } +void wxWindow::AcceptsFocus() const +{ + return IsEnabled() && IsShown(); +} diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index 26f5f1b989..e8f1110306 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -2393,3 +2393,7 @@ void wxWindow::GetPositionConstraint(int *x, int *y) const GetPosition(x, y); } +void wxWindow::AcceptsFocus() const +{ + return IsEnabled() && IsShown(); +}