// XA_CARDINAL
#include <X11/Xatom.h>
+#if wxUSE_LIBHILDON
+ #include <hildon-widgets/hildon-program.h>
+ #include <hildon-widgets/hildon-window.h>
+#endif // wxUSE_LIBHILDON
+
// ----------------------------------------------------------------------------
// data
// ----------------------------------------------------------------------------
}
}
+ const bool wasIconized = win->IsIconized();
+
win->SetIconizeState(false);
- // Because GetClientSize() returns (0,0) when IsIconized() is true,
- // a size event must be sent here, just in case GetClientSize() was
- // called while iconized.
- // This specifically happens when restoring a tlw that was "rolled up"
- // with some WMs.
- wxSizeEvent event(win->GetSize(), win->GetId());
- event.SetEventObject(win);
- win->GetEventHandler()->ProcessEvent(event);
+ if (wasIconized)
+ {
+ // Because GetClientSize() returns (0,0) when IsIconized() is true,
+ // a size event must be generated, just in case GetClientSize() was
+ // called while iconized. This specifically happens when restoring a
+ // tlw that was "rolled up" with some WMs.
+ // Queue a resize rather than sending size event directly to allow
+ // children to be made visible first.
+ win->m_oldClientWidth = 0;
+ gtk_widget_queue_resize(win->m_wxwindow);
+ }
return false;
}
if (win->m_width < 0) win->m_width = 0;
if (win->m_height < 0) win->m_height = 0;
decorSize = size;
- wxSizeEvent event(win->GetSize(), win->GetId());
- event.SetEventObject(win);
- win->GetEventHandler()->ProcessEvent(event);
+ win->m_oldClientWidth = 0;
+ gtk_widget_queue_resize(win->m_wxwindow);
}
}
if (data)
// e.g. in wxTaskBarIconAreaGTK
if (m_widget == NULL)
{
+#if wxUSE_LIBHILDON
+ // we must create HildonWindow and not a normal GtkWindow as the latter
+ // doesn't look correctly in Maemo environment and it must also be
+ // registered with the main program object
+ m_widget = hildon_window_new();
+ hildon_program_add_window(wxTheApp->GetHildonProgram(),
+ HILDON_WINDOW(m_widget));
+#else // !wxUSE_LIBHILDON
m_widget = gtk_window_new(GTK_WINDOW_TOPLEVEL);
if (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)
{
style |= wxFRAME_NO_TASKBAR;
}
}
+#endif // wxUSE_LIBHILDON/!wxUSE_LIBHILDON
}
wxWindow *topParent = wxGetTopLevelParent(m_parent);
wxTopLevelWindowGTK::~wxTopLevelWindowGTK()
{
+#if wxUSE_LIBHILDON
+ hildon_program_remove_window(wxTheApp->GetHildonProgram(),
+ HILDON_WINDOW(m_widget));
+#endif // wxUSE_LIBHILDON
+
if (m_grabbed)
{
wxFAIL_MSG(_T("Window still grabbed"));