]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/toplevel.cpp
Wrappers for *ToText
[wxWidgets.git] / src / gtk / toplevel.cpp
index b91b944750fc2eb70e8e13aa2e8749b8129c6714..507e47463a63236a83f61dac7bc08230c9d5bfbd 100644 (file)
@@ -106,7 +106,6 @@ static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
 
         win->m_width = alloc->width;
         win->m_height = alloc->height;
 
         win->m_width = alloc->width;
         win->m_height = alloc->height;
-        win->m_queuedFullRedraw = TRUE;
         win->GtkUpdateSize();
     }
 }
         win->GtkUpdateSize();
     }
 }
@@ -350,21 +349,27 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent,
     if (m_widget == NULL)
     {
         GtkWindowType win_type = GTK_WINDOW_TOPLEVEL;
     if (m_widget == NULL)
     {
         GtkWindowType win_type = GTK_WINDOW_TOPLEVEL;
-
         if (style & wxFRAME_TOOL_WINDOW)
             win_type = GTK_WINDOW_POPUP;
 
         if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)
         {
         if (style & wxFRAME_TOOL_WINDOW)
             win_type = GTK_WINDOW_POPUP;
 
         if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)
         {
-            // there is no more GTK_WINDOW_DIALOG in 2.0
 #ifdef __WXGTK20__
 #ifdef __WXGTK20__
-            win_type = GTK_WINDOW_TOPLEVEL;
+            m_widget = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+            // Tell WM that this is a dialog window and make it center
+            // on parent by default (this is what GtkDialog ctor does):
+            gtk_window_set_type_hint(GTK_WINDOW(m_widget),
+                                     GDK_WINDOW_TYPE_HINT_DIALOG);
+            gtk_window_set_position(GTK_WINDOW(m_widget),
+                                    GTK_WIN_POS_CENTER_ON_PARENT);
 #else
 #else
-            win_type = GTK_WINDOW_DIALOG;
+            m_widget = gtk_window_new(GTK_WINDOW_DIALOG);
 #endif
         }
 #endif
         }
-
-        m_widget = gtk_window_new( win_type );
+        else
+        {
+            m_widget = gtk_window_new(win_type);
+        }
     }
 
     if (m_parent && (((GTK_IS_WINDOW(m_parent->m_widget)) &&
     }
 
     if (m_parent && (((GTK_IS_WINDOW(m_parent->m_widget)) &&
@@ -374,6 +379,13 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent,
         gtk_window_set_transient_for( GTK_WINDOW(m_widget), GTK_WINDOW(m_parent->m_widget) );
     }
 
         gtk_window_set_transient_for( GTK_WINDOW(m_widget), GTK_WINDOW(m_parent->m_widget) );
     }
 
+#if GTK_CHECK_VERSION(2,2,0)
+    if (style & wxFRAME_NO_TASKBAR)
+    {
+        gtk_window_set_skip_taskbar_hint(GTK_WINDOW(m_widget), TRUE);
+    }
+#endif
+
     if (!name.IsEmpty())
         gtk_window_set_wmclass( GTK_WINDOW(m_widget), wxGTK_CONV( name ), wxGTK_CONV( name ) );
 
     if (!name.IsEmpty())
         gtk_window_set_wmclass( GTK_WINDOW(m_widget), wxGTK_CONV( name ), wxGTK_CONV( name ) );
 
@@ -932,7 +944,7 @@ bool wxTopLevelWindowGTK::IsMaximized() const
 
 void wxTopLevelWindowGTK::Restore()
 {
 
 void wxTopLevelWindowGTK::Restore()
 {
-#ifdef __GTK20__
+#ifdef __WXGTK20__
     // "Present" seems similar enough to "restore"
     gtk_window_present( GTK_WINDOW( m_widget ) );
 #else
     // "Present" seems similar enough to "restore"
     gtk_window_present( GTK_WINDOW( m_widget ) );
 #else