[gtk/wip/baedert/window-icons2: 9/10] window: Remove remaining icon_list handling
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/baedert/window-icons2: 9/10] window: Remove remaining icon_list handling
- Date: Sun, 30 Dec 2018 06:25:03 +0000 (UTC)
commit 5db67632da66be7df106b74c51d73b96a4a5f022
Author: Timm Bäder <mail baedert org>
Date: Sun Dec 30 07:02:59 2018 +0100
window: Remove remaining icon_list handling
gtk/gtkwindow.c | 87 ++++-----------------------------------------------------
1 file changed, 5 insertions(+), 82 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 2136e7367a..e9e93097a9 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -370,11 +370,9 @@ typedef enum
typedef struct
{
- GList *icon_list;
gchar *icon_name;
guint realized : 1;
guint using_default_icon : 1;
- guint using_parent_icon : 1;
guint using_themed_icon : 1;
} GtkWindowIconInfo;
@@ -4521,7 +4519,7 @@ gtk_window_realize_icon (GtkWindow *window)
GtkWidget *widget;
GtkWindowIconInfo *info;
GdkSurface *surface;
- GList *icon_list;
+ GList *icon_list = NULL;
widget = GTK_WIDGET (window);
surface = _gtk_widget_get_surface (widget);
@@ -4532,37 +4530,24 @@ gtk_window_realize_icon (GtkWindow *window)
if (priv->type == GTK_WINDOW_POPUP)
return;
- icon_list = NULL;
-
info = ensure_icon_info (window);
if (info->realized)
return;
info->using_default_icon = FALSE;
- info->using_parent_icon = FALSE;
info->using_themed_icon = FALSE;
-
- icon_list = info->icon_list;
/* Look up themed icon */
- if (icon_list == NULL && info->icon_name)
+ if (icon_list == NULL && info->icon_name)
{
icon_list = icon_list_from_theme (window, info->icon_name);
if (icon_list)
- info->using_themed_icon = TRUE;
- }
-
- /* Inherit from transient parent */
- if (icon_list == NULL && priv->transient_parent)
- {
- icon_list = ensure_icon_info (priv->transient_parent)->icon_list;
- if (icon_list)
- info->using_parent_icon = TRUE;
+ info->using_themed_icon = TRUE;
}
/* Look up themed icon */
- if (icon_list == NULL && default_icon_name)
+ if (icon_list == NULL && default_icon_name)
{
icon_list = icon_list_from_theme (window, default_icon_name);
info->using_default_icon = TRUE;
@@ -4581,51 +4566,6 @@ gtk_window_realize_icon (GtkWindow *window)
}
}
-static GdkTexture *
-icon_from_list (GList *list,
- gint size)
-{
- GdkTexture *texture;
- cairo_surface_t *source, *target;
- cairo_t *cr;
- GList *l;
-
- /* Look for possible match */
- for (l = list; l; l = l->next)
- {
- texture = list->data;
-
- if (gdk_texture_get_width (texture) <= size &&
- gdk_texture_get_height (texture) <= size)
- return g_object_ref (texture);
- }
-
- /* scale larger match down */
- texture = list->data;
- source = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
- gdk_texture_get_width (texture),
- gdk_texture_get_height (texture));
- gdk_texture_download (texture,
- cairo_image_surface_get_data (source),
- cairo_image_surface_get_stride (source));
- cairo_surface_mark_dirty (source);
-
- target = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, size, size);
- cr = cairo_create (target);
- cairo_scale (cr,
- (double) size / gdk_texture_get_width (texture),
- (double) size / gdk_texture_get_height (texture));
- cairo_set_source_surface (cr, source, 0, 0);
- cairo_paint (cr);
- cairo_destroy (cr);
- cairo_surface_destroy (source);
-
- texture = gdk_texture_new_for_surface (target);
- cairo_surface_destroy (target);
-
- return texture;
-}
-
static GdkTexture *
icon_from_name (const gchar *name,
gint size)
@@ -4649,26 +4589,12 @@ GdkTexture *
gtk_window_get_icon_for_size (GtkWindow *window,
int size)
{
- GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
- GtkWindowIconInfo *info;
const gchar *name;
- info = ensure_icon_info (window);
-
- if (info->icon_list != NULL)
- return icon_from_list (info->icon_list, size);
-
name = gtk_window_get_icon_name (window);
if (name != NULL)
return icon_from_name (name, size);
- if (priv->transient_parent != NULL)
- {
- info = ensure_icon_info (priv->transient_parent);
- if (info->icon_list)
- return icon_from_list (info->icon_list, size);
- }
-
if (default_icon_name != NULL)
return icon_from_name (default_icon_name, size);
@@ -4722,7 +4648,7 @@ gtk_window_set_icon_name (GtkWindow *window,
{
GtkWindowIconInfo *info;
gchar *tmp;
-
+
g_return_if_fail (GTK_IS_WINDOW (window));
info = ensure_icon_info (window);
@@ -4734,9 +4660,6 @@ gtk_window_set_icon_name (GtkWindow *window,
info->icon_name = g_strdup (name);
g_free (tmp);
- g_list_free_full (info->icon_list, g_object_unref);
- info->icon_list = NULL;
-
update_themed_icon (window);
g_object_notify_by_pspec (G_OBJECT (window), window_props[PROP_ICON_NAME]);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]