[maemo-commits] [maemo-commits] r9308 - projects/haf/branches/hildon-fm/1.x/hildon-fm
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Wed Jan 24 17:17:25 EET 2007
- Previous message: [maemo-commits] r9307 - in projects/haf/trunk/sapwood: . src
- Next message: [maemo-commits] r9309 - projects/haf/branches/hildon-fm/1.x/hildon-fm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: marivoll
Date: 2007-01-24 17:17:24 +0200 (Wed, 24 Jan 2007)
New Revision: 9308
Modified:
projects/haf/branches/hildon-fm/1.x/hildon-fm/hildon-file-system-settings.c
projects/haf/branches/hildon-fm/1.x/hildon-fm/hildon-file-system-settings.h
Log:
* hildon-fm/hildon-file-system-settings.h,
hildon-fm/hildon-file-system-settings.c
(banner_toplevel_window, banner_toplevel_window_destroy,
_hildon_file_system_set_banner_toplevel): New, to maintain the
toplevel window to use with the updating banner.
(_hildon_file_system_prepare_banner): Include XID of
banner_toplevel_window in message.
Modified: projects/haf/branches/hildon-fm/1.x/hildon-fm/hildon-file-system-settings.c
===================================================================
--- projects/haf/branches/hildon-fm/1.x/hildon-fm/hildon-file-system-settings.c 2007-01-24 15:12:33 UTC (rev 9307)
+++ projects/haf/branches/hildon-fm/1.x/hildon-fm/hildon-file-system-settings.c 2007-01-24 15:17:24 UTC (rev 9308)
@@ -42,6 +42,8 @@
#include <libintl.h>
#include <string.h>
+#include <gdk/gdkx.h>
+
#define DBUS_API_SUBJECT_TO_CHANGE
#include <dbus/dbus.h>
#include <dbus/dbus-glib-lowlevel.h>
@@ -882,6 +884,37 @@
#define BANNER_HIDE "cancel_delayed_infobanner"
#define BANNER_TIMEOUT 500
+/* We need to make the updating banner transient to a toplevel window
+ but the HildonFileSystemModel knows nothing about the widget that
+ it is displayed in. Thus the HildonFileSelection widget informs us
+ when it is displayed.
+*/
+
+static GtkWindow *banner_toplevel_window = NULL;
+
+static void
+banner_toplevel_window_destroy (GtkWindow *win, gpointer unused)
+{
+ if (banner_toplevel_window == win)
+ {
+ banner_toplevel_window = NULL;
+ g_object_unref (win);
+ }
+}
+
+void
+_hildon_file_system_set_banner_toplevel (GtkWindow *win)
+{
+ if (banner_toplevel_window == NULL)
+ {
+ g_object_ref (win);
+ banner_toplevel_window = win;
+ g_signal_connect (win, "destroy",
+ G_CALLBACK (banner_toplevel_window_destroy),
+ NULL);
+ }
+}
+
/* Communication with tasknavigator for displaying possible
banner while making blocking calls */
void _hildon_file_system_prepare_banner(guint *timeout_id)
@@ -892,8 +925,9 @@
static const dbus_int32_t initial_value = 1000;
static const dbus_int32_t display_timeout = 30000;
const char *ckdg_pb_updating_str;
+ dbus_int32_t xid = 0;
dbus_bool_t ret;
-
+
if (timeout_id == NULL) return;
/* just refresh the timeout if there is already a timeout */
@@ -925,10 +959,18 @@
if (banner_pid == 0)
banner_pid = getpid(); /* id */
+ if (banner_toplevel_window)
+ {
+ GdkWindow *win = GTK_WIDGET (banner_toplevel_window)->window;
+ if (win)
+ xid = GDK_WINDOW_XID (win);
+ }
+
ret = dbus_message_append_args(message, DBUS_TYPE_INT32, &banner_pid,
DBUS_TYPE_INT32, &initial_value,
DBUS_TYPE_INT32, &display_timeout,
DBUS_TYPE_STRING, &ckdg_pb_updating_str,
+ DBUS_TYPE_INT32, &xid,
DBUS_TYPE_INVALID);
if (!ret)
{
Modified: projects/haf/branches/hildon-fm/1.x/hildon-fm/hildon-file-system-settings.h
===================================================================
--- projects/haf/branches/hildon-fm/1.x/hildon-fm/hildon-file-system-settings.h 2007-01-24 15:12:33 UTC (rev 9307)
+++ projects/haf/branches/hildon-fm/1.x/hildon-fm/hildon-file-system-settings.h 2007-01-24 15:17:24 UTC (rev 9308)
@@ -36,6 +36,7 @@
#define __HILDON_FILE_SYSTEM_SETTINGS_H__
#include <glib-object.h>
+#include <gtk/gtk.h>
G_BEGIN_DECLS
@@ -79,6 +80,7 @@
banner while making blocking calls */
void _hildon_file_system_prepare_banner(guint *timeout_id);
void _hildon_file_system_cancel_banner(guint *timeout_id);
+void _hildon_file_system_set_banner_toplevel (GtkWindow *win);
G_END_DECLS
- Previous message: [maemo-commits] r9307 - in projects/haf/trunk/sapwood: . src
- Next message: [maemo-commits] r9309 - projects/haf/branches/hildon-fm/1.x/hildon-fm
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
