]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/toplevel.cpp
make sure we are feeding coordinates of HIView instances, not wx-dimensions back...
[wxWidgets.git] / src / gtk / toplevel.cpp
index 467d67ab53d7c4578b71e3982137224956e33970..68efed2a0841b4bfe2264bf238a824fe4ce5f307 100644 (file)
 #include "wx/toplevel.h"
 
 #ifndef WX_PRECOMP
+    #include "wx/frame.h"
+    #include "wx/icon.h"
     #include "wx/log.h"
     #include "wx/app.h"
-    #include "wx/dcclient.h"
-    #include "wx/dialog.h"
-    #include "wx/timer.h"
-    #include "wx/settings.h"
-    #include "wx/control.h"
 #endif
 
 #include "wx/gtk/private.h"
 #include "wx/evtloop.h"
 
-#include <glib.h>
-#include <gdk/gdk.h>
 #include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
 #include <gdk/gdkx.h>
 
 #include "wx/gtk/win_gtk.h"
@@ -117,8 +111,7 @@ static gboolean gtk_frame_focus_in_callback( GtkWidget *widget,
                                          GdkEvent *WXUNUSED(event),
                                          wxTopLevelWindowGTK *win )
 {
-    if (g_isIdle)
-        wxapp_install_idle_handler();
+    // don't need to install idle handler, its done from "event" signal
 
     switch ( g_sendActivateEvent )
     {
@@ -179,8 +172,7 @@ static gboolean gtk_frame_focus_out_callback( GtkWidget *widget,
                                           GdkEventFocus *WXUNUSED(gdk_event),
                                           wxTopLevelWindowGTK *win )
 {
-    if (g_isIdle)
-        wxapp_install_idle_handler();
+    // don't need to install idle handler, its done from "event" signal
 
     // if the focus goes out of our app alltogether, OnIdle() will send
     // wxActivateEvent, otherwise gtk_window_focus_in_callback() will reset
@@ -216,7 +208,6 @@ static gboolean gtk_frame_focus_callback( GtkWidget *widget, GtkDirectionType WX
         wxapp_install_idle_handler();
 
     // This disables GTK's tab traversal
-    g_signal_stop_emission_by_name (widget, "focus");
     return TRUE;
 }
 }
@@ -237,10 +228,10 @@ static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation*
     if ((win->m_width != alloc->width) || (win->m_height != alloc->height))
     {
 /*
-        wxPrintf( "OnSize from " );
+        wxPrintf( wxT("gtk_frame_size_callback from ") );
         if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
            wxPrintf( win->GetClassInfo()->GetClassName() );
-        wxPrintf( " %d %d %d %d\n", (int)alloc->x,
+        wxPrintf( wxT(" %d %d %d %d\n"), (int)alloc->x,
                                 (int)alloc->y,
                                 (int)alloc->width,
                                 (int)alloc->height );
@@ -263,8 +254,7 @@ gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget),
                            GdkEvent *WXUNUSED(event),
                            wxTopLevelWindowGTK *win )
 {
-    if (g_isIdle)
-        wxapp_install_idle_handler();
+    // don't need to install idle handler, its done from "event" signal
 
     if (win->IsEnabled() &&
         (g_openDialogs == 0 || (win->GetExtraStyle() & wxTOPLEVEL_EX_DIALOG) ||
@@ -286,8 +276,7 @@ gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget),
                               GdkEventConfigure *WXUNUSED(event),
                               wxTopLevelWindowGTK *win )
 {
-    if (g_isIdle)
-        wxapp_install_idle_handler();
+    // don't need to install idle handler, its done from "event" signal
 
     if (!win->m_hasVMT || !win->IsShown())
         return FALSE;
@@ -435,9 +424,6 @@ static void wxInsertChildInTopLevelWindow( wxTopLevelWindowGTK* parent, wxWindow
                          child->m_width,
                          child->m_height );
     }
-
-    // resize on OnInternalIdle
-    parent->GtkUpdateSize();
 }
 
 // ----------------------------------------------------------------------------
@@ -628,10 +614,19 @@ bool wxTopLevelWindowGTK::Create( wxWindow *parent,
                       G_CALLBACK (gtk_frame_focus_out_callback), this);
 
     // decorations
-    if ((m_miniEdge > 0) || (style & wxSIMPLE_BORDER) || (style & wxNO_BORDER))
+    if ((style & wxSIMPLE_BORDER) || (style & wxNO_BORDER))
+    {
+        m_gdkDecor = 0;
+        m_gdkFunc = 0;
+    }
+    else
+    if (m_miniEdge > 0)
     {
         m_gdkDecor = 0;
         m_gdkFunc = 0;
+        
+        if ((style & wxRESIZE_BORDER) != 0)
+           m_gdkFunc |= GDK_FUNC_RESIZE;
     }
     else
     {