aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Claessens <xclaesse@src.gnome.org>2009-01-31 01:07:45 +0800
committerXavier Claessens <xclaesse@src.gnome.org>2009-01-31 01:07:45 +0800
commitff811719fa1fd178d9be7edd6b18fb04d0c3a0d3 (patch)
tree0eafaef3d1eace14bb068c3cb0b347c189b5e517
parent5e818246cfc20394b14756d872145b853a53296c (diff)
downloadgsoc2013-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.c34
-rw-r--r--libempathy-gtk/empathy-ui-utils.h2
-rw-r--r--src/empathy-chat-window.c7
-rw-r--r--src/empathy-status-icon.c5
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