static void
hildon_banner_set_override_flag (HildonBanner *banner);
+static void
+reshow_banner (HildonBanner *banner);
+
static GtkWidget*
hildon_banner_real_show_information (GtkWidget *widget,
const gchar *text,
GtkWidget *widget;
gboolean continue_timeout = FALSE;
- GDK_THREADS_ENTER ();
-
g_assert (HILDON_IS_BANNER (data));
widget = GTK_WIDGET (data);
if (! continue_timeout) {
HildonBannerPrivate *priv = HILDON_BANNER_GET_PRIVATE (data);
- priv->timeout_id = 0;
+ if (priv->timeout_id) {
+ g_source_remove (priv->timeout_id);
+ priv->timeout_id = 0;
+ }
gtk_widget_destroy (widget);
}
g_object_unref (widget);
- GDK_THREADS_LEAVE ();
-
return continue_timeout;
}
g_assert (priv);
if (priv->timeout_id == 0 && priv->is_timed && priv->timeout > 0)
- priv->timeout_id = g_timeout_add (priv->timeout,
+ priv->timeout_id = gdk_threads_add_timeout (priv->timeout,
hildon_banner_timeout, self);
}
/* Make the banner non-temporary _after_ mapping it, to avoid
* being closed by other non-temporary windows */
gtk_window_set_is_temporary (GTK_WINDOW (widget), FALSE);
+
+ gtk_window_move (GTK_WINDOW (widget), 0, HILDON_WINDOW_TITLEBAR_HEIGHT);
}
}
#endif
GtkWindow *banner)
{
- hildon_banner_bind_style (HILDON_BANNER (banner));
- gtk_window_reshow_with_initial_size (banner);
- force_to_wrap_truncated (HILDON_BANNER (banner));
+ HildonBanner *hbanner = HILDON_BANNER (banner);
+ hildon_banner_bind_style (hbanner);
+ reshow_banner (hbanner);
}
static void