]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/dialog.cpp
some != NULL checks
[wxWidgets.git] / src / gtk / dialog.cpp
index 5411e1cb9d4fb67366d2c87a8afe509099856efa..55d5e955114854e6c749e4eba331c7dbd45a7faa 100644 (file)
@@ -59,7 +59,8 @@ bool gtk_dialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED
     if (g_isIdle)
         wxapp_install_idle_handler();
 
-    win->Close();
+    if (win->IsEnabled())
+        win->Close();
 
     return TRUE;
 }
@@ -79,7 +80,7 @@ static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation
     {
         win->m_width = alloc->width;
         win->m_height = alloc->height;
-        win->UpdateSize();
+        win->GtkUpdateSize();
     }
 }
 
@@ -266,8 +267,6 @@ bool wxDialog::Create( wxWindow *parent,
                        const wxPoint &pos, const wxSize &size,
                        long style, const wxString &name )
 {
-    g_openDialogs++;
-
     wxTopLevelWindows.Append( this );
 
     m_needParent = FALSE;
@@ -339,12 +338,11 @@ wxDialog::~wxDialog()
         wxTheApp->SetTopWindow( (wxWindow*) NULL );
     }
 
-    if (wxTopLevelWindows.Number() == 0)
+    if ((wxTopLevelWindows.Number() == 0) &&
+        (wxTheApp->GetExitOnFrameDelete()))
     {
         wxTheApp->ExitMainLoop();
     }
-    
-    g_openDialogs--;
 }
 
 void wxDialog::SetTitle( const wxString& title )
@@ -469,6 +467,11 @@ void wxDialog::OnSize( wxSizeEvent &WXUNUSED(event) )
     }
 }
 
+void wxDialog::DoMoveWindow(int WXUNUSED(x), int WXUNUSED(y), int WXUNUSED(width), int WXUNUSED(height) )
+{
+    wxFAIL_MSG( wxT("DoMoveWindow called for wxDialog") );
+}
+    
 void wxDialog::DoSetSize( int x, int y, int width, int height, int sizeFlags )
 {
     wxASSERT_MSG( (m_widget != NULL), wxT("invalid dialog") );
@@ -624,10 +627,14 @@ int wxDialog::ShowModal()
 
     m_modalShowing = TRUE;
 
+    g_openDialogs++;
+
     gtk_grab_add( m_widget );
     gtk_main();
     gtk_grab_remove( m_widget );
 
+    g_openDialogs--;
+
     return GetReturnCode();
 }