diff options
author | Victor Kareh <[email protected]> | 2021-06-23 07:24:20 -0400 |
---|---|---|
committer | Victor Kareh <[email protected]> | 2023-03-07 14:24:09 -0500 |
commit | c99c8523877fd72cf53035d63c5fe0f75be7657c (patch) | |
tree | 0cd268860765e13e837765048e2c0e145b0ec965 /src/ui/preview-widget.c | |
parent | 32f1967142a078ecdb4222c05d62c75710fb74fa (diff) | |
download | marco-c99c8523877fd72cf53035d63c5fe0f75be7657c.tar.bz2 marco-c99c8523877fd72cf53035d63c5fe0f75be7657c.tar.xz |
window: Convert all icons to cairo surfacesalt-tab-icons-hidpi
Diffstat (limited to 'src/ui/preview-widget.c')
-rw-r--r-- | src/ui/preview-widget.c | 67 |
1 files changed, 39 insertions, 28 deletions
diff --git a/src/ui/preview-widget.c b/src/ui/preview-widget.c index 9c7fd3ec..3ea29451 100644 --- a/src/ui/preview-widget.c +++ b/src/ui/preview-widget.c @@ -192,6 +192,7 @@ meta_preview_draw (GtkWidget *widget, int border_width; int client_width; int client_height; + int scale; MetaButtonState button_states[META_BUTTON_TYPE_LAST] = { META_BUTTON_STATE_NORMAL, @@ -219,6 +220,8 @@ meta_preview_draw (GtkWidget *widget, if (client_height < 0) client_height = 1; + scale = gtk_widget_get_scale_factor (widget); + if (preview->theme) { meta_theme_draw_frame (preview->theme, @@ -231,8 +234,8 @@ meta_preview_draw (GtkWidget *widget, preview->text_height, &preview->button_layout, button_states, - meta_preview_get_mini_icon (), - meta_preview_get_icon ()); + meta_preview_get_mini_icon (scale), + meta_preview_get_icon (scale)); } cairo_restore (cr); @@ -421,10 +424,10 @@ meta_preview_set_button_layout (MetaPreview *preview, gtk_widget_queue_draw (GTK_WIDGET (preview)); } -GdkPixbuf* -meta_preview_get_icon (void) +cairo_surface_t* +meta_preview_get_icon (int scale) { - static GdkPixbuf *default_icon = NULL; + static cairo_surface_t *default_icon = NULL; if (default_icon == NULL) { @@ -436,17 +439,21 @@ meta_preview_get_icon (void) icon_exists = gtk_icon_theme_has_icon (theme, META_DEFAULT_ICON_NAME); if (icon_exists) - default_icon = gtk_icon_theme_load_icon (theme, - META_DEFAULT_ICON_NAME, - META_DEFAULT_ICON_SIZE, - 0, - NULL); + default_icon = gtk_icon_theme_load_surface (theme, + META_DEFAULT_ICON_NAME, + META_DEFAULT_ICON_SIZE, + scale, + NULL, + 0, + NULL); else - default_icon = gtk_icon_theme_load_icon (theme, - "image-missing", - META_DEFAULT_ICON_SIZE, - 0, - NULL); + default_icon = gtk_icon_theme_load_surface (theme, + "image-missing", + META_DEFAULT_ICON_SIZE, + scale, + NULL, + 0, + NULL); g_assert (default_icon); } @@ -454,10 +461,10 @@ meta_preview_get_icon (void) return default_icon; } -GdkPixbuf* -meta_preview_get_mini_icon (void) +cairo_surface_t* +meta_preview_get_mini_icon (int scale) { - static GdkPixbuf *default_icon = NULL; + static cairo_surface_t *default_icon = NULL; if (default_icon == NULL) { @@ -469,17 +476,21 @@ meta_preview_get_mini_icon (void) icon_exists = gtk_icon_theme_has_icon (theme, META_DEFAULT_ICON_NAME); if (icon_exists) - default_icon = gtk_icon_theme_load_icon (theme, - META_DEFAULT_ICON_NAME, - META_MINI_ICON_SIZE, - 0, - NULL); + default_icon = gtk_icon_theme_load_surface (theme, + META_DEFAULT_ICON_NAME, + META_MINI_ICON_SIZE, + scale, + NULL, + 0, + NULL); else - default_icon = gtk_icon_theme_load_icon (theme, - "image-missing", - META_MINI_ICON_SIZE, - 0, - NULL); + default_icon = gtk_icon_theme_load_surface (theme, + "image-missing", + META_MINI_ICON_SIZE, + scale, + NULL, + 0, + NULL); g_assert (default_icon); } |