// 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
// ----------------------------------------------------------------------------
-extern int g_openDialogs;
+// this is incremented while a modal dialog is shown
+int wxOpenModalDialogsCount = 0;
+
extern wxWindowGTK *g_delayedFocus;
// the frame that is currently active (i.e. its child has focus). It is
wxTopLevelWindowGTK *win )
{
if (win->IsEnabled() &&
- (g_openDialogs == 0 || (win->GetExtraStyle() & wxTOPLEVEL_EX_DIALOG) ||
+ (wxOpenModalDialogsCount == 0 || (win->GetExtraStyle() & wxTOPLEVEL_EX_DIALOG) ||
win->IsGrabbed()))
win->Close();
// 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
+ // it can also be a (standard) dialog
+ if ( HILDON_IS_WINDOW(m_widget) )
+ {
+ hildon_program_remove_window(wxTheApp->GetHildonProgram(),
+ HILDON_WINDOW(m_widget));
+ }
+#endif // wxUSE_LIBHILDON
+
if (m_grabbed)
{
wxFAIL_MSG(_T("Window still grabbed"));