+ // wxASSERT_MSG( (g_activeFrame == win), wxT("TLW deactivatd although it wasn't active") );
+
+ // wxPrintf( wxT("inactive: %s\n"), win->GetTitle().c_str() );
+
+ if (g_activeFrame)
+ {
+ wxLogTrace(wxT("activate"), wxT("Activating frame %p (from focus_in)"), g_activeFrame);
+ wxActivateEvent event(wxEVT_ACTIVATE, false, g_activeFrame->GetId());
+ event.SetEventObject(g_activeFrame);
+ g_activeFrame->HandleWindowEvent(event);
+
+ g_activeFrame = NULL;
+ }
+
+ return FALSE;
+}
+}
+
+//-----------------------------------------------------------------------------
+// "size_allocate" from m_wxwindow
+//-----------------------------------------------------------------------------
+
+extern "C" {
+static void
+size_allocate(GtkWidget*, GtkAllocation* alloc, wxTopLevelWindowGTK* win)
+{
+ if (win->m_oldClientWidth != alloc->width ||
+ win->m_oldClientHeight != alloc->height)
+ {
+ win->m_oldClientWidth = alloc->width;
+ win->m_oldClientHeight = alloc->height;
+
+ GtkAllocation a;
+ gtk_widget_get_allocation(win->m_widget, &a);
+ wxSize size(a.width, a.height);
+ size += win->m_decorSize;
+ win->m_width = size.x;
+ win->m_height = size.y;
+
+ if (!win->IsIconized())
+ {
+ wxSizeEvent event(size, win->GetId());
+ event.SetEventObject(win);
+ win->HandleWindowEvent(event);
+ }
+ // else the window is currently unmapped, don't generate size events
+ }
+}
+}
+
+// ----------------------------------------------------------------------------
+// "size_request"
+// ----------------------------------------------------------------------------
+
+extern "C" {
+static
+void wxgtk_tlw_size_request_callback(GtkWidget * WXUNUSED(widget),
+ GtkRequisition *requisition,
+ wxTopLevelWindowGTK *win)
+{
+ // we must return the size of the window without WM decorations, otherwise
+ // GTK+ gets confused, so don't call just GetSize() here
+ win->GTKDoGetSize(&requisition->width, &requisition->height);
+}
+}
+
+//-----------------------------------------------------------------------------
+// "delete_event"
+//-----------------------------------------------------------------------------
+
+extern "C" {
+static gboolean
+gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget),
+ GdkEvent *WXUNUSED(event),
+ wxTopLevelWindowGTK *win )
+{