+#ifndef MODEST_TOOLKIT_GTK
+static void
+on_window_is_topmost (GObject *gobject,
+ GParamSpec *arg1,
+ gpointer user_data)
+{
+ ModestWindowMgr *self;
+ ModestWindowMgrPrivate *priv;
+ ModestWindow *win = (ModestWindow *) gobject;
+
+ g_return_if_fail (MODEST_IS_WINDOW_MGR (user_data));
+
+ self = MODEST_WINDOW_MGR (user_data);
+ priv = MODEST_WINDOW_MGR_GET_PRIVATE (self);
+
+ if (hildon_window_get_is_topmost (HILDON_WINDOW (win)))
+ priv->current_top = win;
+}
+
+#else
+static gboolean
+on_window_state_event (GtkWidget *widget,
+ GdkEventWindowState *event,
+ gpointer user_data)
+{
+ ModestWindowMgr *self;
+ ModestWindowMgrPrivate *priv;
+
+ g_return_val_if_fail (MODEST_IS_WINDOW_MGR (user_data), FALSE);
+
+ self = MODEST_WINDOW_MGR (user_data);
+ priv = MODEST_WINDOW_MGR_GET_PRIVATE (self);
+
+ MODEST_DEBUG_BLOCK (
+ if (event->changed_mask & GDK_WINDOW_STATE_WITHDRAWN)
+ g_print ("GDK_WINDOW_STATE_WITHDRAWN\n");
+ if (event->changed_mask & GDK_WINDOW_STATE_ICONIFIED)
+ g_print ("GDK_WINDOW_STATE_ICONIFIED\n");
+ if (event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED)
+ g_print ("GDK_WINDOW_STATE_MAXIMIZED\n");
+ if (event->changed_mask & GDK_WINDOW_STATE_STICKY)
+ g_print ("GDK_WINDOW_STATE_STICKY\n");
+ if (event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
+ g_print ("GDK_WINDOW_STATE_FULLSCREEN\n");
+ if (event->changed_mask & GDK_WINDOW_STATE_ABOVE)
+ g_print ("GDK_WINDOW_STATE_ABOVE\n");
+ if (event->changed_mask & GDK_WINDOW_STATE_BELOW)
+ g_print ("GDK_WINDOW_STATE_BELOW\n");
+ );
+ if (event->changed_mask & GDK_WINDOW_STATE_WITHDRAWN ||
+ event->changed_mask & GDK_WINDOW_STATE_ABOVE) {
+ priv->current_top = MODEST_WINDOW (widget);
+ }
+
+ return FALSE;
+}
+#endif
+