From: Robert Roebling Date: Tue, 5 Oct 2004 16:17:21 +0000 (+0000) Subject: Fixed missing focus problem. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/576f712776551bc0261005ff7a8c508d37481baa?ds=sidebyside Fixed missing focus problem. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29662 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp index 04a1777d3c..f676189095 100644 --- a/src/gtk/toplevel.cpp +++ b/src/gtk/toplevel.cpp @@ -87,7 +87,7 @@ static gint gtk_frame_focus_in_callback( GtkWidget *widget, { if (g_isIdle) wxapp_install_idle_handler(); - + switch ( g_sendActivateEvent ) { case -1: @@ -112,7 +112,7 @@ static gint gtk_frame_focus_in_callback( GtkWidget *widget, event.SetEventObject(g_activeFrame); g_activeFrame->GetEventHandler()->ProcessEvent(event); - return TRUE; + return FALSE; } //----------------------------------------------------------------------------- @@ -142,7 +142,7 @@ static gint gtk_frame_focus_out_callback( GtkWidget *widget, g_activeFrame = NULL; - return TRUE; + return FALSE; } //----------------------------------------------------------------------------- @@ -967,6 +967,9 @@ void wxTopLevelWindowGTK::OnInternalIdle() { bool activate = g_sendActivateEvent != 0; + // if (!activate) wxPrintf( wxT("de") ); + // wxPrintf( wxT("activate\n") ); + // do it only once g_sendActivateEvent = -1; diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 4a3169a41d..128d508e71 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -1983,7 +1983,7 @@ static gint gtk_window_focus_in_callback( GtkWidget *widget, { // not yet, notify it win->m_hasFocus = TRUE; - + if ( DoSendFocusEvents(win) ) { gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus_in_event" ); @@ -2826,7 +2826,7 @@ void wxWindowGTK::PostCreation() { if (m_focusWidget == NULL) m_focusWidget = m_widget; - + gtk_signal_connect( GTK_OBJECT(m_focusWidget), "focus_in_event", GTK_SIGNAL_FUNC(gtk_window_focus_in_callback), (gpointer)this ); diff --git a/src/gtk1/toplevel.cpp b/src/gtk1/toplevel.cpp index 04a1777d3c..f676189095 100644 --- a/src/gtk1/toplevel.cpp +++ b/src/gtk1/toplevel.cpp @@ -87,7 +87,7 @@ static gint gtk_frame_focus_in_callback( GtkWidget *widget, { if (g_isIdle) wxapp_install_idle_handler(); - + switch ( g_sendActivateEvent ) { case -1: @@ -112,7 +112,7 @@ static gint gtk_frame_focus_in_callback( GtkWidget *widget, event.SetEventObject(g_activeFrame); g_activeFrame->GetEventHandler()->ProcessEvent(event); - return TRUE; + return FALSE; } //----------------------------------------------------------------------------- @@ -142,7 +142,7 @@ static gint gtk_frame_focus_out_callback( GtkWidget *widget, g_activeFrame = NULL; - return TRUE; + return FALSE; } //----------------------------------------------------------------------------- @@ -967,6 +967,9 @@ void wxTopLevelWindowGTK::OnInternalIdle() { bool activate = g_sendActivateEvent != 0; + // if (!activate) wxPrintf( wxT("de") ); + // wxPrintf( wxT("activate\n") ); + // do it only once g_sendActivateEvent = -1; diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index 4a3169a41d..128d508e71 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -1983,7 +1983,7 @@ static gint gtk_window_focus_in_callback( GtkWidget *widget, { // not yet, notify it win->m_hasFocus = TRUE; - + if ( DoSendFocusEvents(win) ) { gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus_in_event" ); @@ -2826,7 +2826,7 @@ void wxWindowGTK::PostCreation() { if (m_focusWidget == NULL) m_focusWidget = m_widget; - + gtk_signal_connect( GTK_OBJECT(m_focusWidget), "focus_in_event", GTK_SIGNAL_FUNC(gtk_window_focus_in_callback), (gpointer)this );