]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/window.cpp
return correct client area for at least the primary display, fixes the problems with...
[wxWidgets.git] / src / gtk / window.cpp
index 4d3c7dafe9baa43ddce4c17bfe852c208169b832..a9a67e6c68631b9443f1711583d603a51230490a 100644 (file)
@@ -1158,7 +1158,7 @@ gtk_wxwindow_commit_cb (GtkIMContext *context,
                                   window, window->m_imData->lastKeyEvent);
     }
 
                                   window, window->m_imData->lastKeyEvent);
     }
 
-    const wxWxCharBuffer data(wxGTK_CONV_BACK(str));
+    const wxWxCharBuffer data(wxGTK_CONV_BACK_SYS(str));
     if( !data )
         return;
 
     if( !data )
         return;
 
@@ -1682,7 +1682,11 @@ gtk_window_button_release_callback( GtkWidget *widget,
     event.SetEventObject( win );
     event.SetId( win->GetId() );
 
     event.SetEventObject( win );
     event.SetId( win->GetId() );
 
-    return win->GTKProcessEvent(event);
+    bool ret = win->GTKProcessEvent(event);
+    
+    g_lastMouseEvent = NULL;
+    
+    return ret;
 }
 
 //-----------------------------------------------------------------------------
 }
 
 //-----------------------------------------------------------------------------
@@ -2133,16 +2137,11 @@ void gtk_window_size_callback( GtkWidget *WXUNUSED(widget),
     if ((client_width == win->m_oldClientWidth) && (client_height == win->m_oldClientHeight))
         return;
 
     if ((client_width == win->m_oldClientWidth) && (client_height == win->m_oldClientHeight))
         return;
 
-#if 0
-        wxPrintf( wxT("size_allocate ") );
-        if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
-            wxPrintf( win->GetClassInfo()->GetClassName() );
-        wxPrintf( wxT(" %d %d %d %d\n"),
-                alloc->x,
-                alloc->y,
-                alloc->width,
-                alloc->height );
-#endif
+    if ( !client_width && !client_height )
+    {
+        // the window is currently unmapped, don't generate size events
+        return;
+    }
 
     win->m_oldClientWidth = client_width;
     win->m_oldClientHeight = client_height;
 
     win->m_oldClientWidth = client_width;
     win->m_oldClientHeight = client_height;
@@ -2552,7 +2551,7 @@ void wxWindowGTK::PostCreation()
         // FIXME: what should be done here ?
     }
 #endif
         // FIXME: what should be done here ?
     }
 #endif
-    else
+    else if ( !IsTopLevel() ) // top level windows use their own callback
     {
         // This is needed if we want to add our windows into native
         // GTK controls, such as the toolbar. With this callback, the
     {
         // This is needed if we want to add our windows into native
         // GTK controls, such as the toolbar. With this callback, the