diff options
author | Victor Kareh <[email protected]> | 2018-04-02 22:02:39 -0400 |
---|---|---|
committer | lukefromdc <[email protected]> | 2018-04-04 21:53:21 -0400 |
commit | 554a036710b18d2573810265c69be6e83033af63 (patch) | |
tree | 8e0b03a463952ad43f356301e91d0c1ced4fabad /eel | |
parent | 280ef8294b0e50394b5118cb298b0f9e5920f795 (diff) | |
download | caja-554a036710b18d2573810265c69be6e83033af63.tar.bz2 caja-554a036710b18d2573810265c69be6e83033af63.tar.xz |
HiDPI: Convert Pixbufs to Cairo Surfaces
This allows icons in most places to scale up properly for HiDPI
displays.
Diffstat (limited to 'eel')
-rw-r--r-- | eel/eel-graphic-effects.c | 14 | ||||
-rw-r--r-- | eel/eel-graphic-effects.h | 3 |
2 files changed, 17 insertions, 0 deletions
diff --git a/eel/eel-graphic-effects.c b/eel/eel-graphic-effects.c index f25cbb6f..2405a296 100644 --- a/eel/eel-graphic-effects.c +++ b/eel/eel-graphic-effects.c @@ -108,6 +108,20 @@ eel_create_spotlight_pixbuf (GdkPixbuf* src) return dest; } +cairo_surface_t * +eel_create_spotlight_surface (cairo_surface_t* src, int scale) +{ + GdkPixbuf *pixbuf; + cairo_surface_t *dest; + + pixbuf = gdk_pixbuf_get_from_surface (src, 0, 0, + cairo_image_surface_get_width (src), + cairo_image_surface_get_height (src)); + dest = gdk_cairo_surface_create_from_pixbuf (pixbuf, scale, NULL); + g_object_unref (pixbuf); + + return dest; +} /* the following routine was stolen from the panel to darken a pixbuf, by manipulating the saturation */ diff --git a/eel/eel-graphic-effects.h b/eel/eel-graphic-effects.h index 3a9027fe..d71fffcb 100644 --- a/eel/eel-graphic-effects.h +++ b/eel/eel-graphic-effects.h @@ -32,6 +32,9 @@ /* return a lightened pixbuf for pre-lighting */ GdkPixbuf *eel_create_spotlight_pixbuf (GdkPixbuf *source_pixbuf); +/* return a lightened surface for pre-lighting */ +cairo_surface_t *eel_create_spotlight_surface (cairo_surface_t *source_surface, + int scale); /* return a darkened pixbuf for selection hiliting */ GdkPixbuf *eel_create_darkened_pixbuf (GdkPixbuf *source_pixbuf, |