diff options
author | Xavier Claessens <xclaesse@src.gnome.org> | 2009-01-31 01:07:45 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@src.gnome.org> | 2009-01-31 01:07:45 +0800 |
commit | ff811719fa1fd178d9be7edd6b18fb04d0c3a0d3 (patch) | |
tree | 0eafaef3d1eace14bb068c3cb0b347c189b5e517 | |
parent | 5e818246cfc20394b14756d872145b853a53296c (diff) | |
download | gsoc2013-empathy-ff811719fa1fd178d9be7edd6b18fb04d0c3a0d3.tar gsoc2013-empathy-ff811719fa1fd178d9be7edd6b18fb04d0c3a0d3.tar.gz gsoc2013-empathy-ff811719fa1fd178d9be7edd6b18fb04d0c3a0d3.tar.bz2 gsoc2013-empathy-ff811719fa1fd178d9be7edd6b18fb04d0c3a0d3.tar.lz gsoc2013-empathy-ff811719fa1fd178d9be7edd6b18fb04d0c3a0d3.tar.xz gsoc2013-empathy-ff811719fa1fd178d9be7edd6b18fb04d0c3a0d3.tar.zst gsoc2013-empathy-ff811719fa1fd178d9be7edd6b18fb04d0c3a0d3.zip |
Add a convenience function to avoid hacks when getting the pixbuf from the icon name.
svn path=/trunk/; revision=2288
-rw-r--r-- | libempathy-gtk/empathy-ui-utils.c | 34 | ||||
-rw-r--r-- | libempathy-gtk/empathy-ui-utils.h | 2 | ||||
-rw-r--r-- | src/empathy-chat-window.c | 7 | ||||
-rw-r--r-- | src/empathy-status-icon.c | 5 |
4 files changed, 30 insertions, 18 deletions
diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c index 7c6166839..1c20c2c9a 100644 --- a/libempathy-gtk/empathy-ui-utils.c +++ b/libempathy-gtk/empathy-ui-utils.c @@ -544,14 +544,12 @@ empathy_pixbuf_scale_down_if_necessary (GdkPixbuf *pixbuf, gint max_size) } GdkPixbuf * -empathy_pixbuf_from_icon_name (const gchar *icon_name, - GtkIconSize icon_size) +empathy_pixbuf_from_icon_name_sized (const gchar *icon_name, + gint size) { - GtkIconTheme *theme; - GdkPixbuf *pixbuf = NULL; - GError *error = NULL; - gint w, h; - gint size = 48; + GtkIconTheme *theme; + GdkPixbuf *pixbuf; + GError *error; if (!icon_name) { return NULL; @@ -559,10 +557,6 @@ empathy_pixbuf_from_icon_name (const gchar *icon_name, theme = gtk_icon_theme_get_default (); - if (gtk_icon_size_lookup (icon_size, &w, &h)) { - size = (w + h) / 2; - } - pixbuf = gtk_icon_theme_load_icon (theme, icon_name, size, @@ -576,6 +570,24 @@ empathy_pixbuf_from_icon_name (const gchar *icon_name, return pixbuf; } +GdkPixbuf * +empathy_pixbuf_from_icon_name (const gchar *icon_name, + GtkIconSize icon_size) +{ + gint w, h; + gint size = 48; + + if (!icon_name) { + return NULL; + } + + if (gtk_icon_size_lookup (icon_size, &w, &h)) { + size = (w + h) / 2; + } + + return empathy_pixbuf_from_icon_name_sized (icon_name, size); +} + /* Stolen from GtkSourceView, hence the weird intendation. Please keep it like * that to make it easier to apply changes from the original code. */ diff --git a/libempathy-gtk/empathy-ui-utils.h b/libempathy-gtk/empathy-ui-utils.h index 455ddd7a2..97fb271b3 100644 --- a/libempathy-gtk/empathy-ui-utils.h +++ b/libempathy-gtk/empathy-ui-utils.h @@ -98,6 +98,8 @@ GdkPixbuf * empathy_pixbuf_scale_down_if_necessary (GdkPixbuf *pixbu gint max_size); GdkPixbuf * empathy_pixbuf_from_icon_name (const gchar *icon_name, GtkIconSize icon_size); +GdkPixbuf * empathy_pixbuf_from_icon_name_sized (const gchar *icon_name, + gint size); /* Text view */ gboolean empathy_text_iter_forward_search (const GtkTextIter*iter, const gchar *str, diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c index 1bc9f2056..e080a5317 100644 --- a/src/empathy-chat-window.c +++ b/src/empathy-chat-window.c @@ -852,7 +852,7 @@ chat_window_notification_closed_cb (NotifyNotification *notify, reason = notify_notification_get_closed_reason (notify); if (reason == 2) { - empathy_chat_window_present_chat (chat); + g_idle_add ((GSourceFunc) notification_closed_idle_cb, chat); } } @@ -877,9 +877,8 @@ chat_window_show_or_update_notification (EmpathyMessage *message, body = empathy_message_get_body (message); pixbuf = empathy_pixbuf_avatar_from_contact_scaled (sender, 48, 48); if (pixbuf == NULL) { - /* we use INVALID here so we fall pack to 48px */ - pixbuf = empathy_pixbuf_from_icon_name (EMPATHY_IMAGE_NEW_MESSAGE, - GTK_ICON_SIZE_INVALID); + pixbuf = empathy_pixbuf_from_icon_name_sized + (EMPATHY_IMAGE_NEW_MESSAGE, 48); } if (priv->notification != NULL) { diff --git a/src/empathy-status-icon.c b/src/empathy-status-icon.c index 4c7964566..86a2c84fa 100644 --- a/src/empathy-status-icon.c +++ b/src/empathy-status-icon.c @@ -126,9 +126,8 @@ status_icon_update_notification (EmpathyStatusIcon *icon) } if (!pixbuf) { - /* we use INVALID here so we fall pack to 48px */ - pixbuf = empathy_pixbuf_from_icon_name (priv->event->icon_name, - GTK_ICON_SIZE_INVALID); + pixbuf = empathy_pixbuf_from_icon_name_sized + (priv->event->icon_name, 48); } priv->notification = notify_notification_new_with_status_icon |