2009-04-20 Alberto Garcia <agarcia@igalia.com>
authorAlberto Garcia <agarcia@igalia.com>
Mon, 20 Apr 2009 10:24:05 +0000 (12:24 +0200)
committerAlberto Garcia <agarcia@igalia.com>
Mon, 20 Apr 2009 13:28:55 +0000 (15:28 +0200)
* examples/hildon-progress-indicator-example.c: Fix example

* src/hildon-gtk.c (set_clear_window_flag)
(hildon_gtk_window_set_progress_indicator):
Create a generic function for setting flags to a window.
Use GDK instead of direct Xlib calls.

ChangeLog
examples/hildon-progress-indicator-example.c
src/hildon-gtk.c

index a72e15e..407a298 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2009-04-20  Alberto Garcia  <agarcia@igalia.com>
+
+       * examples/hildon-progress-indicator-example.c: Fix example
+
+       * src/hildon-gtk.c (set_clear_window_flag)
+       (hildon_gtk_window_set_progress_indicator):
+       Create a generic function for setting flags to a window.
+       Use GDK instead of direct Xlib calls.
+
 2009-04-14  Alberto Garcia  <agarcia@igalia.com>
 
        * src/hildon-button.c (hildon_button_set_arrangement):
index 8cd7eaf..8685d0f 100644 (file)
@@ -26,16 +26,16 @@ HildonTextView *textview;
 GtkTextBuffer *buffer;
 
 static void
-show_progress_button_clicked                    (GtkWindow   *window,
-                                                 HildonEntry *entry)
+show_progress_button_clicked                    (GtkWidget *button,
+                                                 GtkWindow *window)
 {
     g_debug ("Showing progress indicator...");
     hildon_gtk_window_set_progress_indicator (window, 1);
 }
 
 static void
-hide_progress_button_clicked                    (GtkWindow   *window,
-                                                 HildonEntry *entry)
+hide_progress_button_clicked                    (GtkWidget *button,
+                                                 GtkWindow *window)
 {
     g_debug ("Hiding progress indicator...");
     hildon_gtk_window_set_progress_indicator (window, 0);
index 468bb71..4953add 100644 (file)
@@ -319,6 +319,29 @@ hildon_gtk_icon_view_set_ui_mode                (GtkIconView  *iconview,
 }
 #endif /* MAEMO_GTK */
 
+static void
+set_clear_window_flag                           (GtkWindow   *window,
+                                                 const gchar *atomname,
+                                                 gboolean     flag)
+{
+    GdkWindow *gdkwin;
+    GdkAtom atom;
+
+    g_return_if_fail (GTK_IS_WINDOW (window));
+    g_return_if_fail (GTK_WIDGET_REALIZED (window));
+
+    gdkwin = GTK_WIDGET (window)->window;
+    atom = gdk_atom_intern (atomname, FALSE);
+
+    if (flag) {
+        guint32 set = 1;
+        gdk_property_change (gdkwin, atom, gdk_x11_xatom_to_atom (XA_INTEGER),
+                             32, GDK_PROP_MODE_REPLACE, (const guchar *) &set, 1);
+    } else {
+        gdk_property_delete (gdkwin, atom);
+    }
+}
+
 /**
  * hildon_gtk_window_set_progress_indicator:
  * @window: a #GtkWindow.
@@ -337,21 +360,7 @@ void
 hildon_gtk_window_set_progress_indicator        (GtkWindow    *window,
                                                  guint        state)
 {
-  GdkWindow *gdkwin;
-  GdkDisplay *display;
-  Atom atom;
-
-  g_return_if_fail (GTK_IS_WINDOW (window));
-  g_return_if_fail (GTK_WIDGET_REALIZED (window));
-
-  gdkwin = GTK_WIDGET (window)->window;
-
-  display = gdk_drawable_get_display (gdkwin);
-  atom = gdk_x11_get_xatom_by_name_for_display (display, "_HILDON_WM_WINDOW_PROGRESS_INDICATOR");
-
-  XChangeProperty (GDK_DISPLAY_XDISPLAY (display), GDK_WINDOW_XID (gdkwin),
-                   atom, XA_INTEGER, 32, PropModeReplace,
-                   (guchar *)&state, 1);
+    set_clear_window_flag (window, "_HILDON_WM_WINDOW_PROGRESS_INDICATOR", state);
 }
 
 /**