]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/window.cpp
Changed GetForce -> !CanVeto
[wxWidgets.git] / src / gtk1 / window.cpp
index b76cdfa686991863daf66a23bd3c149613525ff7..4c95e23186057419e92d426b4986588ff58a1a78 100644 (file)
@@ -347,7 +347,7 @@ static gint gtk_window_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_e
     }
 
     // win is a control: tab can be propagated up
-    if ((!ret) && (gdk_event->keyval == GDK_Tab))
+    if ((!ret) && (gdk_event->keyval == GDK_Tab) && ((win->m_windowStyle & wxTE_PROCESS_TAB) == 0))
     {
         wxNavigationKeyEvent new_event;
         new_event.SetDirection( !(gdk_event->state & GDK_SHIFT_MASK) );
@@ -1716,9 +1716,15 @@ bool wxWindow::Close( bool force )
 
     wxCloseEvent event(wxEVT_CLOSE_WINDOW, m_windowId);
     event.SetEventObject(this);
-    event.SetForce(force);
+    event.SetCanVeto(!force);
 
-    return GetEventHandler()->ProcessEvent(event);
+    (void)GetEventHandler()->ProcessEvent(event);
+
+    // when we're forced to close we do it anyhow, otherwise only if the
+    // application didn't forbid it (if the event wasn't processed, GetVeto()
+    // will return FALSE too)
+    if ( force || !event.GetVeto() )
+        Destroy();
 }
 
 bool wxWindow::Destroy()
@@ -2235,11 +2241,6 @@ bool wxWindow::AcceptsFocus() const
     return IsEnabled() && IsShown() && m_acceptsFocus;
 }
 
-bool wxWindow::OnClose()
-{
-    return TRUE;
-}
-
 void wxWindow::AddChild( wxWindow *child )
 {
     wxCHECK_RET( (m_widget != NULL), "invalid window" );
@@ -2535,7 +2536,6 @@ void wxWindow::SetBackgroundColour( const wxColour &colour )
         GdkWindow *window = m_wxwindow->window;
         m_backgroundColour.CalcPixel( gdk_window_get_colormap( window ) );
         gdk_window_set_background( window, m_backgroundColour.GetColor() );
-        gdk_window_clear( window );
     }
 
     wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE );