]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-ui-utils.c
Merge branch 'sasl'
[empathy.git] / libempathy-gtk / empathy-ui-utils.c
index b10b42a443c7c35d3c401cfd8e5f73615d0ee79b..4c128742405b72274640e1b50b70b986c9594de2 100644 (file)
@@ -129,9 +129,9 @@ empathy_builder_get_file (const gchar *filename,
 }
 
 void
-empathy_builder_connect (GtkBuilder *gui,
-                        gpointer    user_data,
-                        gchar      *first_object,
+empathy_builder_connect (GtkBuilder  *gui,
+                        gpointer     user_data,
+                        const gchar *first_object,
                         ...)
 {
        va_list      args;
@@ -206,6 +206,7 @@ empathy_icon_name_for_presence (TpConnectionPresenceType presence)
        case TP_CONNECTION_PRESENCE_TYPE_UNKNOWN:
                return EMPATHY_IMAGE_PENDING;
        case TP_CONNECTION_PRESENCE_TYPE_UNSET:
+       default:
                return NULL;
        }
 
@@ -230,7 +231,8 @@ empathy_icon_name_for_individual (FolksIndividual *individual)
        FolksPresenceType folks_presence;
        TpConnectionPresenceType presence;
 
-       folks_presence = folks_individual_get_presence_type (individual);
+       folks_presence =
+           folks_presence_get_presence_type (FOLKS_PRESENCE (individual));
        presence = empathy_folks_presence_type_to_tp (folks_presence);
 
        return empathy_icon_name_for_presence (presence);
@@ -563,7 +565,7 @@ avatar_file_load_contents_cb (GObject      *object,
 {
        GFile *file = G_FILE (object);
        PixbufAvatarFromIndividualClosure *closure = user_data;
-       char *data;
+       char *data = NULL;
        gsize data_size;
        struct SizeData size_data;
        GError *error = NULL;
@@ -602,7 +604,7 @@ avatar_file_load_contents_cb (GObject      *object,
        }
 
        g_simple_async_result_set_op_res_gpointer (closure->result,
-                       avatar_pixbuf_from_loader (loader), NULL);
+                       avatar_pixbuf_from_loader (loader), g_object_unref);
 
 out:
        g_simple_async_result_complete (closure->result);
@@ -616,9 +618,10 @@ out:
 void
 empathy_pixbuf_avatar_from_individual_scaled_async (
                FolksIndividual     *individual,
-               GAsyncReadyCallback  callback,
                gint                 width,
                gint                 height,
+               GCancellable        *cancellable,
+               GAsyncReadyCallback  callback,
                gpointer             user_data)
 {
        GFile *avatar_file;
@@ -638,7 +641,7 @@ empathy_pixbuf_avatar_from_individual_scaled_async (
        if (closure == NULL)
                goto out;
 
-       g_file_load_contents_async (avatar_file, NULL,
+       g_file_load_contents_async (avatar_file, cancellable,
                        avatar_file_load_contents_cb, closure);
 
        g_object_unref (result);
@@ -651,6 +654,7 @@ out:
        g_object_unref (result);
 }
 
+/* Return a ref on the GdkPixbuf */
 GdkPixbuf *
 empathy_pixbuf_avatar_from_individual_scaled_finish (
                FolksIndividual *individual,
@@ -659,6 +663,7 @@ empathy_pixbuf_avatar_from_individual_scaled_finish (
 {
        GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
        gboolean result_valid;
+       GdkPixbuf *pixbuf;
 
        g_return_val_if_fail (FOLKS_IS_INDIVIDUAL (individual), NULL);
        g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (simple), NULL);
@@ -671,7 +676,8 @@ empathy_pixbuf_avatar_from_individual_scaled_finish (
                        empathy_pixbuf_avatar_from_individual_scaled_async);
        g_return_val_if_fail (result_valid, NULL);
 
-       return g_simple_async_result_get_op_res_gpointer (simple);
+       pixbuf = g_simple_async_result_get_op_res_gpointer (simple);
+       return pixbuf != NULL ? g_object_ref (pixbuf) : NULL;
 }
 
 GdkPixbuf *
@@ -1558,7 +1564,7 @@ empathy_window_iconify (GtkWindow *window, GtkStatusIcon *status_icon)
 
        gtk_status_icon_get_geometry (status_icon, NULL, &icon_location, NULL);
        gdk_window = gtk_widget_get_window (GTK_WIDGET (window));
-       dpy = gdk_x11_drawable_get_xdisplay (gdk_window);
+       dpy = GDK_WINDOW_XDISPLAY (gdk_window);
 
        data[0] = icon_location.x;
        data[1] = icon_location.y;
@@ -1568,7 +1574,7 @@ empathy_window_iconify (GtkWindow *window, GtkStatusIcon *status_icon)
        XChangeProperty (dpy,
                         GDK_WINDOW_XID (gdk_window),
                         gdk_x11_get_xatom_by_name_for_display (
-                               gdk_drawable_get_display (gdk_window),
+                               gdk_window_get_display (gdk_window),
                         "_NET_WM_ICON_GEOMETRY"),
                         XA_CARDINAL, 32, PropModeReplace,
                         (guchar *)&data, 4);
@@ -1604,7 +1610,11 @@ empathy_window_present_with_time (GtkWindow *window,
                        gtk_widget_hide (GTK_WIDGET (window));
        }
 
-       gtk_window_present_with_time (window, timestamp);
+       if (timestamp == GDK_CURRENT_TIME)
+               gtk_window_present (window);
+       else
+               gtk_window_present_with_time (window, timestamp);
+
        gtk_window_set_skip_taskbar_hint (window, FALSE);
        gtk_window_deiconify (window);
 }
@@ -1612,7 +1622,7 @@ empathy_window_present_with_time (GtkWindow *window,
 void
 empathy_window_present (GtkWindow *window)
 {
-  empathy_window_present_with_time (window, GDK_CURRENT_TIME);
+  empathy_window_present_with_time (window, gtk_get_current_event_time ());
 }
 
 GtkWindow *
@@ -1858,7 +1868,7 @@ empathy_receive_file_with_file_chooser (EmpathyFTHandler *handler)
        g_assert (contact != NULL);
 
        title = g_strdup_printf (_("Incoming file from %s"),
-               empathy_contact_get_name (contact));
+               empathy_contact_get_alias (contact));
 
        widget = gtk_file_chooser_dialog_new (title,
                                              NULL,