X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/426d19f1391a685de14a71b9fc4339bb929e441a..021efd65100322b3c152cc1017cfb961664d30a4:/src/gtk/toplevel.cpp diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp index 637d1fef67..2b7194d3eb 100644 --- a/src/gtk/toplevel.cpp +++ b/src/gtk/toplevel.cpp @@ -358,6 +358,8 @@ gtk_frame_map_callback( GtkWidget*, eventShow.SetEventObject(win); win->GetEventHandler()->ProcessEvent(eventShow); } + // restore focus-on-map setting in case ShowWithoutActivating() was called + gtk_window_set_focus_on_map(GTK_WINDOW(win->m_widget), true); return false; } } @@ -556,7 +558,7 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent, gtk_container_add( GTK_CONTAINER(m_widget), m_mainWidget ); // m_wxwindow is the client area - m_wxwindow = wxPizza::New(0,this); + m_wxwindow = wxPizza::New(); gtk_widget_show( m_wxwindow ); gtk_container_add( GTK_CONTAINER(m_mainWidget), m_wxwindow ); @@ -889,6 +891,15 @@ bool wxTopLevelWindowGTK::Show( bool show ) return change; } +void wxTopLevelWindowGTK::ShowWithoutActivating() +{ + if (!m_isShown) + { + gtk_window_set_focus_on_map(GTK_WINDOW(m_widget), false); + Show(true); + } +} + void wxTopLevelWindowGTK::Raise() { gtk_window_present( GTK_WINDOW( m_widget ) );