[Xfce4-commits] [apps/xfce4-notifyd] 01/01: Add support for symbolic icons
noreply at xfce.org
noreply at xfce.org
Wed Sep 7 23:32:21 CEST 2016
This is an automated email from the git hooks/post-receive script.
ochosi pushed a commit to branch master
in repository apps/xfce4-notifyd.
commit ef228ea987c165a6880b43fd4b87efd228694156
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date: Wed Sep 7 23:31:58 2016 +0200
Add support for symbolic icons
---
xfce4-notifyd/xfce-notify-window.c | 54 ++++++++++++++++++++------------------
1 file changed, 29 insertions(+), 25 deletions(-)
diff --git a/xfce4-notifyd/xfce-notify-window.c b/xfce4-notifyd/xfce-notify-window.c
index f3fa38b..b16b8ba 100644
--- a/xfce4-notifyd/xfce-notify-window.c
+++ b/xfce4-notifyd/xfce-notify-window.c
@@ -772,51 +772,55 @@ xfce_notify_window_get_last_screen(XfceNotifyWindow *window)
}
void
-xfce_notify_window_set_icon_name(XfceNotifyWindow *window,
- const gchar *icon_name)
+xfce_notify_window_set_icon_name (XfceNotifyWindow *window,
+ const gchar *icon_name)
{
gboolean icon_set = FALSE;
gchar *filename;
- g_return_if_fail(XFCE_IS_NOTIFY_WINDOW(window));
+ g_return_if_fail (XFCE_IS_NOTIFY_WINDOW (window));
if (icon_name && *icon_name) {
gint w, h;
GdkPixbuf *pix = NULL;
- gtk_icon_size_lookup(GTK_ICON_SIZE_DIALOG, &w, &h);
+ gtk_icon_size_lookup (GTK_ICON_SIZE_DIALOG, &w, &h);
- if (g_path_is_absolute(icon_name)) {
- pix = gdk_pixbuf_new_from_file_at_size(icon_name, w, h, NULL);
+ if (g_path_is_absolute (icon_name)) {
+ pix = gdk_pixbuf_new_from_file_at_size (icon_name, w, h, NULL);
}
else if (g_str_has_prefix (icon_name, "file://")) {
- filename = g_filename_from_uri(icon_name, NULL, NULL);
+ filename = g_filename_from_uri (icon_name, NULL, NULL);
if (filename)
- pix = gdk_pixbuf_new_from_file_at_size(filename, w, h, NULL);
- g_free(filename);
- }
- else {
- pix = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(),
- icon_name,
- w,
- GTK_ICON_LOOKUP_FORCE_SIZE,
- NULL);
+ pix = gdk_pixbuf_new_from_file_at_size (filename, w, h, NULL);
+ g_free (filename);
}
- if(pix) {
- gtk_image_set_from_pixbuf(GTK_IMAGE(window->icon), pix);
- gtk_widget_show(window->icon_box);
- g_object_unref(G_OBJECT(pix));
+ else if (gtk_icon_theme_has_icon (gtk_icon_theme_get_default(), icon_name)) {
+ gtk_image_set_from_icon_name (GTK_IMAGE (window->icon),
+ icon_name, GTK_ICON_SIZE_DIALOG);
+ /* As -symbolic icons use GTK_ICON_SIZE_MENU by default, we have to make
+ sure that SIZE_DIALOG (48px) is used */
+ gtk_image_set_pixel_size (GTK_IMAGE (window->icon), w);
+ icon_set = TRUE;
+ }
+ else
+ g_warning ("The icon could not be found: %s", icon_name);
+ if (pix) {
+ gtk_image_set_from_pixbuf (GTK_IMAGE (window->icon), pix);
+ g_object_unref (G_OBJECT (pix));
icon_set = TRUE;
}
}
- if (!icon_set) {
- gtk_image_clear(GTK_IMAGE(window->icon));
- gtk_widget_hide(window->icon_box);
+ if (icon_set)
+ gtk_widget_show (window->icon_box);
+ else {
+ gtk_image_clear (GTK_IMAGE (window->icon));
+ gtk_widget_hide (window->icon_box);
}
- if (gtk_widget_get_realized(GTK_WIDGET(window)))
- gtk_widget_queue_draw(GTK_WIDGET(window));
+ if (gtk_widget_get_realized (GTK_WIDGET (window)))
+ gtk_widget_queue_draw (GTK_WIDGET (window));
}
void
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list