From: Robin Dunn Date: Thu, 2 Aug 2001 03:01:14 +0000 (+0000) Subject: Don't send a focus event if the window is a wxTextCtrl, since it sends X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ab93a576f47003ad05b1378ead108474b65b611c Don't send a focus event if the window is a wxTextCtrl, since it sends it's own focus event later on. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11256 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 8dfbf2b096..e6b814f000 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -38,6 +38,10 @@ #include "wx/caret.h" #endif // wxUSE_CARET +#if wxUSE_TEXTCTRL +#include "wx/textctrl.h" +#endif + #include "wx/menu.h" #include "wx/statusbr.h" #include "wx/intl.h" @@ -1708,6 +1712,16 @@ static gint gtk_window_focus_in_callback( GtkWidget *widget, } #endif // wxUSE_CARET +#if wxUSE_TEXTCTRL + // If it's a wxTextCtrl don't send the event as it will be done + // after the control gets to process it. + wxTextCtrl *ctrl = wxDynamicCast(win, wxTextCtrl); + if ( ctrl ) + { + return FALSE; + } +#endif + if (win->IsTopLevel()) { wxActivateEvent event( wxEVT_ACTIVATE, TRUE, win->GetId() ); @@ -1776,6 +1790,16 @@ static gint gtk_window_focus_out_callback( GtkWidget *widget, GdkEvent *WXUNUSED } #endif // wxUSE_CARET +#if wxUSE_TEXTCTRL + // If it's a wxTextCtrl don't send the event as it will be done + // after the control gets to process it. + wxTextCtrl *ctrl = wxDynamicCast(win, wxTextCtrl); + if ( ctrl ) + { + return FALSE; + } +#endif + if (win->IsTopLevel()) { wxActivateEvent event( wxEVT_ACTIVATE, FALSE, win->GetId() ); diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index 8dfbf2b096..e6b814f000 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -38,6 +38,10 @@ #include "wx/caret.h" #endif // wxUSE_CARET +#if wxUSE_TEXTCTRL +#include "wx/textctrl.h" +#endif + #include "wx/menu.h" #include "wx/statusbr.h" #include "wx/intl.h" @@ -1708,6 +1712,16 @@ static gint gtk_window_focus_in_callback( GtkWidget *widget, } #endif // wxUSE_CARET +#if wxUSE_TEXTCTRL + // If it's a wxTextCtrl don't send the event as it will be done + // after the control gets to process it. + wxTextCtrl *ctrl = wxDynamicCast(win, wxTextCtrl); + if ( ctrl ) + { + return FALSE; + } +#endif + if (win->IsTopLevel()) { wxActivateEvent event( wxEVT_ACTIVATE, TRUE, win->GetId() ); @@ -1776,6 +1790,16 @@ static gint gtk_window_focus_out_callback( GtkWidget *widget, GdkEvent *WXUNUSED } #endif // wxUSE_CARET +#if wxUSE_TEXTCTRL + // If it's a wxTextCtrl don't send the event as it will be done + // after the control gets to process it. + wxTextCtrl *ctrl = wxDynamicCast(win, wxTextCtrl); + if ( ctrl ) + { + return FALSE; + } +#endif + if (win->IsTopLevel()) { wxActivateEvent event( wxEVT_ACTIVATE, FALSE, win->GetId() ); diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 26eabca0eb..27298fab61 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -3132,6 +3132,16 @@ bool wxWindowMSW::HandleSetFocus(WXHWND hwnd) } #endif // wxUSE_CARET +#if wxUSE_TEXTCTRL + // If it's a wxTextCtrl don't send the event as it will be done + // after the control gets to process it. + wxTextCtrl *ctrl = wxDynamicCastThis(wxTextCtrl); + if ( ctrl ) + { + return FALSE; + } +#endif + wxFocusEvent event(wxEVT_SET_FOCUS, m_windowId); event.SetEventObject(this); @@ -3151,6 +3161,16 @@ bool wxWindowMSW::HandleKillFocus(WXHWND hwnd) } #endif // wxUSE_CARET +#if wxUSE_TEXTCTRL + // If it's a wxTextCtrl don't send the event as it will be done + // after the control gets to process it. + wxTextCtrl *ctrl = wxDynamicCastThis(wxTextCtrl); + if ( ctrl ) + { + return FALSE; + } +#endif + wxFocusEvent event(wxEVT_KILL_FOCUS, m_windowId); event.SetEventObject(this);