From 25d6e4524c332c854233367e3024451eebc4102c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 14 Dec 2023 21:59:53 +0100 Subject: [PATCH] window: Remove window icon properties MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Window icons are X11 specific, and gnome-shell stopped using them even as fallback. Time for some cleanup … Part-of: --- src/core/window-private.h | 9 --- src/core/window.c | 36 ----------- src/x11/window-props.c | 32 ---------- src/x11/window-x11-private.h | 6 -- src/x11/window-x11.c | 112 ----------------------------------- 5 files changed, 195 deletions(-) diff --git a/src/core/window-private.h b/src/core/window-private.h index 03429271c..1cb15763d 100644 --- a/src/core/window-private.h +++ b/src/core/window-private.h @@ -32,8 +32,6 @@ #pragma once #include -#include -#include #include "backends/meta-logical-monitor.h" #include "clutter/clutter.h" @@ -583,9 +581,6 @@ struct _MetaWindowClass gboolean *skip_taskbar_out, gboolean *skip_pager_out); - cairo_surface_t * (*get_icon) (MetaWindow *window); - cairo_surface_t * (*get_mini_icon) (MetaWindow *window); - pid_t (*get_client_pid) (MetaWindow *window); void (*update_main_monitor) (MetaWindow *window, MetaWindowUpdateMonitorFlags flags); @@ -830,10 +825,6 @@ MetaLogicalMonitor * meta_window_get_highest_scale_monitor (MetaWindow *window); void meta_window_update_monitor (MetaWindow *window, MetaWindowUpdateMonitorFlags flags); -cairo_surface_t * meta_window_get_icon (MetaWindow *window); - -cairo_surface_t * meta_window_get_mini_icon (MetaWindow *window); - void meta_window_set_urgent (MetaWindow *window, gboolean urgent); diff --git a/src/core/window.c b/src/core/window.c index ce56f0ff8..cb1fd24cd 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -186,8 +186,6 @@ enum PROP_0, PROP_TITLE, - PROP_ICON, - PROP_MINI_ICON, PROP_DECORATED, PROP_FULLSCREEN, PROP_MAXIMIZED_HORIZONTALLY, @@ -359,12 +357,6 @@ meta_window_get_property(GObject *object, case PROP_TITLE: g_value_set_string (value, win->title); break; - case PROP_ICON: - g_value_set_pointer (value, meta_window_get_icon (win)); - break; - case PROP_MINI_ICON: - g_value_set_pointer (value, meta_window_get_mini_icon (win)); - break; case PROP_DECORATED: g_value_set_boolean (value, win->decorated); break; @@ -499,12 +491,6 @@ meta_window_class_init (MetaWindowClass *klass) g_param_spec_string ("title", NULL, NULL, NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); - obj_props[PROP_ICON] = - g_param_spec_pointer ("icon", NULL, NULL, - G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); - obj_props[PROP_MINI_ICON] = - g_param_spec_pointer ("mini-icon", NULL, NULL, - G_PARAM_READABLE | G_PARAM_STATIC_STRINGS); obj_props[PROP_DECORATED] = g_param_spec_boolean ("decorated", NULL, NULL, TRUE, @@ -5369,28 +5355,6 @@ meta_window_set_icon_geometry (MetaWindow *window, } } -cairo_surface_t * -meta_window_get_icon (MetaWindow *window) -{ - MetaWindowClass *klass = META_WINDOW_GET_CLASS (window); - - if (klass->get_icon) - return klass->get_icon (window); - else - return NULL; -} - -cairo_surface_t * -meta_window_get_mini_icon (MetaWindow *window) -{ - MetaWindowClass *klass = META_WINDOW_GET_CLASS (window); - - if (klass->get_mini_icon) - return klass->get_mini_icon (window); - else - return NULL; -} - GList* meta_window_get_workspaces (MetaWindow *window) { diff --git a/src/x11/window-props.c b/src/x11/window-props.c index d183c7eb3..3df70da76 100644 --- a/src/x11/window-props.c +++ b/src/x11/window-props.c @@ -286,35 +286,6 @@ reload_net_wm_window_type (MetaWindow *window, meta_window_x11_recalc_window_type (window); } -static void -reload_icon (MetaWindow *window, - Atom atom) -{ - MetaWindowX11 *window_x11 = META_WINDOW_X11 (window); - MetaWindowX11Private *priv = meta_window_x11_get_private (window_x11); - - meta_icon_cache_property_changed (&priv->icon_cache, - window->display->x11_display, - atom); - meta_window_x11_queue_update_icon (window_x11); -} - -static void -reload_net_wm_icon (MetaWindow *window, - MetaPropValue *value, - gboolean initial) -{ - reload_icon (window, window->display->x11_display->atom__NET_WM_ICON); -} - -static void -reload_kwm_win_icon (MetaWindow *window, - MetaPropValue *value, - gboolean initial) -{ - reload_icon (window, window->display->x11_display->atom__KWM_WIN_ICON); -} - static void reload_icon_geometry (MetaWindow *window, MetaPropValue *value, @@ -1698,7 +1669,6 @@ reload_wm_hints (MetaWindow *window, window->display->x11_display, XA_WM_HINTS); - meta_window_x11_queue_update_icon (window_x11); meta_window_queue (window, META_QUEUE_MOVE_RESIZE); } @@ -1951,8 +1921,6 @@ meta_x11_display_init_window_prop_hooks (MetaX11Display *x11_display) { x11_display->atom__GTK_MENUBAR_OBJECT_PATH, META_PROP_VALUE_UTF8, reload_gtk_menubar_object_path, LOAD_INIT }, { x11_display->atom__GTK_FRAME_EXTENTS, META_PROP_VALUE_CARDINAL_LIST,reload_gtk_frame_extents, LOAD_INIT }, { x11_display->atom__NET_WM_USER_TIME_WINDOW, META_PROP_VALUE_WINDOW, reload_net_wm_user_time_window, LOAD_INIT }, - { x11_display->atom__NET_WM_ICON, META_PROP_VALUE_INVALID, reload_net_wm_icon, NONE }, - { x11_display->atom__KWM_WIN_ICON, META_PROP_VALUE_INVALID, reload_kwm_win_icon, NONE }, { x11_display->atom__NET_WM_ICON_GEOMETRY, META_PROP_VALUE_CARDINAL_LIST, reload_icon_geometry, LOAD_INIT }, { x11_display->atom_WM_CLIENT_LEADER, META_PROP_VALUE_INVALID, complain_about_broken_client, NONE }, { x11_display->atom_SM_CLIENT_ID, META_PROP_VALUE_INVALID, complain_about_broken_client, NONE }, diff --git a/src/x11/window-x11-private.h b/src/x11/window-x11-private.h index 024c580ea..4ae06e2da 100644 --- a/src/x11/window-x11-private.h +++ b/src/x11/window-x11-private.h @@ -74,10 +74,6 @@ struct _MetaWindowX11Private Pixmap wm_hints_pixmap; Pixmap wm_hints_mask; - cairo_surface_t *icon; - cairo_surface_t *mini_icon; - guint update_icon_handle_id; - /* Freeze/thaw on resize (for Xwayland) */ gboolean thaw_after_paint; @@ -92,8 +88,6 @@ MetaWindowX11Private * meta_window_x11_get_private (MetaWindowX11 *window_x11); void meta_window_x11_set_bypass_compositor_hint (MetaWindowX11 *window_x11, MetaBypassCompositorHint requested_value); -void meta_window_x11_queue_update_icon (MetaWindowX11 *window_x11); - void meta_window_x11_initialize_state (MetaWindow *window); G_END_DECLS diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c index 30fea41fd..182e7e3f4 100644 --- a/src/x11/window-x11.c +++ b/src/x11/window-x11.c @@ -1720,87 +1720,6 @@ meta_window_x11_get_default_skip_hints (MetaWindow *window, *skip_pager_out = priv->wm_state_skip_pager; } -static void -meta_window_x11_update_icon (MetaWindowX11 *window_x11, - gboolean force) -{ - MetaWindowX11Private *priv = meta_window_x11_get_instance_private (window_x11); - MetaWindow *window = META_WINDOW (window_x11); - cairo_surface_t *icon = NULL; - cairo_surface_t *mini_icon = NULL; - gboolean changed; - - changed = meta_read_icons (window->display->x11_display, - window->xwindow, - &priv->icon_cache, - priv->wm_hints_pixmap, - priv->wm_hints_mask, - &icon, - META_ICON_WIDTH, META_ICON_HEIGHT, - &mini_icon, - META_MINI_ICON_WIDTH, META_MINI_ICON_HEIGHT); - - if (changed || force) - { - g_clear_pointer (&priv->icon, cairo_surface_destroy); - g_clear_pointer (&priv->mini_icon, cairo_surface_destroy); - priv->icon = icon; - priv->mini_icon = mini_icon; - - g_object_freeze_notify (G_OBJECT (window)); - g_object_notify (G_OBJECT (window), "icon"); - g_object_notify (G_OBJECT (window), "mini-icon"); - g_object_thaw_notify (G_OBJECT (window)); - } -} - -static gboolean -update_icon_before_redraw (gpointer user_data) -{ - MetaWindowX11 *window_x11 = META_WINDOW_X11 (user_data); - - meta_window_x11_update_icon (window_x11, FALSE); - - return G_SOURCE_REMOVE; -} - -void -meta_window_x11_queue_update_icon (MetaWindowX11 *window_x11) -{ - MetaWindowX11Private *priv = - meta_window_x11_get_instance_private (window_x11); - MetaWindow *window = META_WINDOW (window_x11); - MetaDisplay *display = meta_window_get_display (window); - MetaCompositor *compositor = meta_display_get_compositor (display); - - priv->update_icon_handle_id = - meta_laters_add (meta_compositor_get_laters (compositor), - META_LATER_BEFORE_REDRAW, - update_icon_before_redraw, - window, - NULL); -} - -static cairo_surface_t * -meta_window_x11_get_icon (MetaWindow *window) -{ - MetaWindowX11 *window_x11 = META_WINDOW_X11 (window); - MetaWindowX11Private *priv = - meta_window_x11_get_instance_private (window_x11); - - return priv->icon; -} - -static cairo_surface_t * -meta_window_x11_get_mini_icon (MetaWindow *window) -{ - MetaWindowX11 *window_x11 = META_WINDOW_X11 (window); - MetaWindowX11Private *priv = - meta_window_x11_get_instance_private (window_x11); - - return priv->mini_icon; -} - static void meta_window_x11_update_main_monitor (MetaWindow *window, MetaWindowUpdateMonitorFlags flags) @@ -2161,28 +2080,6 @@ meta_window_x11_set_property (GObject *object, } } -static void -meta_window_x11_dispose (GObject *object) -{ - MetaWindowX11 *window_x11 = META_WINDOW_X11 (object); - MetaWindowX11Private *priv = - meta_window_x11_get_instance_private (window_x11); - MetaWindow *window = META_WINDOW (window_x11); - MetaDisplay *display = meta_window_get_display (window); - MetaCompositor *compositor = meta_display_get_compositor (display); - - if (priv->update_icon_handle_id) - { - meta_laters_remove (meta_compositor_get_laters (compositor), - priv->update_icon_handle_id); - } - - g_clear_pointer (&priv->icon, cairo_surface_destroy); - g_clear_pointer (&priv->mini_icon, cairo_surface_destroy); - - G_OBJECT_CLASS (meta_window_x11_parent_class)->dispose (object); -} - static void meta_window_x11_class_init (MetaWindowX11Class *klass) { @@ -2191,7 +2088,6 @@ meta_window_x11_class_init (MetaWindowX11Class *klass) object_class->get_property = meta_window_x11_get_property; object_class->set_property = meta_window_x11_set_property; - object_class->dispose = meta_window_x11_dispose; object_class->constructed = meta_window_x11_constructed; window_class->manage = meta_window_x11_manage; @@ -2206,8 +2102,6 @@ meta_window_x11_class_init (MetaWindowX11Class *klass) window_class->move_resize_internal = meta_window_x11_move_resize_internal; window_class->update_struts = meta_window_x11_update_struts; window_class->get_default_skip_hints = meta_window_x11_get_default_skip_hints; - window_class->get_icon = meta_window_x11_get_icon; - window_class->get_mini_icon = meta_window_x11_get_mini_icon; window_class->update_main_monitor = meta_window_x11_update_main_monitor; window_class->main_monitor_changed = meta_window_x11_main_monitor_changed; window_class->get_client_pid = meta_window_x11_get_client_pid; @@ -3796,7 +3690,6 @@ meta_window_x11_new (MetaDisplay *display, MetaX11Display *x11_display = display->x11_display; XWindowAttributes attrs; gulong existing_wm_state; - MetaWindowX11 *window_x11; MetaWindow *window = NULL; gulong event_mask; @@ -3967,11 +3860,6 @@ meta_window_x11_new (MetaDisplay *display, window->placed = TRUE; } - window_x11 = META_WINDOW_X11 (window); - - if (!window->override_redirect) - meta_window_x11_update_icon (window_x11, TRUE); - meta_window_grab_keys (window); if (window->type != META_WINDOW_DOCK && !window->override_redirect) {