diff options
Diffstat (limited to 'applets/clock/clock-map.c')
-rw-r--r-- | applets/clock/clock-map.c | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/applets/clock/clock-map.c b/applets/clock/clock-map.c index 7865d9f1..fa60bb7f 100644 --- a/applets/clock/clock-map.c +++ b/applets/clock/clock-map.c @@ -27,9 +27,9 @@ enum { }; static char *marker_files[MARKER_NB] = { - ICONDIR "/clock-map-location-marker.png", - ICONDIR "/clock-map-location-hilight.png", - ICONDIR "/clock-map-location-current.png" + "clock-map-location-marker.png", + "clock-map-location-hilight.png", + "clock-map-location-current.png" }; static guint signals[LAST_SIGNAL] = { 0 }; @@ -135,8 +135,17 @@ clock_map_init (ClockMap *this) g_assert (sizeof (marker_files)/sizeof (char *) == MARKER_NB); for (i = 0; i < MARKER_NB; i++) { - priv->location_marker_pixbuf[i] = gdk_pixbuf_new_from_file - (marker_files[i], NULL); + char *resource; + GInputStream *stream; + + resource = g_strconcat (CLOCK_RESOURCE_PATH "icons/", marker_files[i], NULL); + stream = g_resources_open_stream (resource, 0, NULL); + g_free (resource); + + if (stream != NULL) { + priv->location_marker_pixbuf[i] = gdk_pixbuf_new_from_stream (stream, NULL, NULL); + g_object_unref (stream); + } } } @@ -208,11 +217,17 @@ clock_map_refresh (ClockMap *this) } if (!priv->stock_map_pixbuf) { - GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_scale - (ICONDIR "/clock-map.png", - priv->width, priv->height, FALSE, NULL); - - priv->stock_map_pixbuf = pixbuf; + GInputStream *stream = g_resources_open_stream (CLOCK_RESOURCE_PATH "icons/clock-map.png", + 0, NULL); + if (stream != NULL) { + GdkPixbuf *pixbuf = gdk_pixbuf_new_from_stream_at_scale (stream, + priv->width, priv->height, + FALSE, + NULL, NULL); + g_object_unref (stream); + + priv->stock_map_pixbuf = pixbuf; + } } clock_map_place_locations (this); |