This is an automated email from the git hooks/post-receive script. nomad pushed a commit to branch master in repository apps/xfdashboard.
commit 0153687399ad0951e8aa094f1d4996d3b2d48d65 Author: Stephan Haller <[email protected]> Date: Fri Apr 1 11:44:18 2016 +0200 Also support deprecated 'icon-data' in Gnome-Shell search provider when looking up icon for a result item to create an actor for. --- .../gnome-shell-search-provider.c | 38 ++++++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/plugins/gnome-shell-search-provider/gnome-shell-search-provider.c b/plugins/gnome-shell-search-provider/gnome-shell-search-provider.c index 3cea8d1..ef3b98b 100644 --- a/plugins/gnome-shell-search-provider/gnome-shell-search-provider.c +++ b/plugins/gnome-shell-search-provider/gnome-shell-search-provider.c @@ -613,6 +613,7 @@ static ClutterActor* _xfdashboard_gnome_shell_search_provider_create_result_acto gchar *name; gchar *description; GIcon *icon; + ClutterContent *iconImage; g_return_val_if_fail(XFDASHBOARD_IS_GNOME_SHELL_SEARCH_PROVIDER(inProvider), NULL); g_return_val_if_fail(inResultItem, NULL); @@ -623,6 +624,7 @@ static ClutterActor* _xfdashboard_gnome_shell_search_provider_create_result_acto name=NULL; description=NULL; icon=NULL; + iconImage=NULL; error=NULL; /* Get meta data of result item */ @@ -685,6 +687,13 @@ static ClutterActor* _xfdashboard_gnome_shell_search_provider_create_result_acto { GVariant *iconVariant; gchar *iconString; + gint32 iconWidth; + gint32 iconHeight; + gint32 iconRowstride; + gboolean iconHasAlpha; + gint32 iconBits; + gint32 iconChannels; + guchar *iconData; gchar *resultID; /* Get ID from meta data and check if it matches the ID requested. @@ -756,12 +765,29 @@ static ClutterActor* _xfdashboard_gnome_shell_search_provider_create_result_acto g_free(iconString); } - if(g_variant_lookup(metaData, "icon-data", "(iiibiiay)", &iconString)) + if(g_variant_lookup(metaData, "icon-data", "(iiibiiay)", &iconWidth, &iconHeight, &iconRowstride, &iconHasAlpha, &iconBits, &iconChannels, &iconData)) { - g_print("%s: identifier=%s -> has 'icon-data': %s\n", __func__, identifier[0], iconString); + /* Create image from icon data */ + iconImage=clutter_image_new(); + if(!clutter_image_set_data(CLUTTER_IMAGE(iconImage), iconData, iconHasAlpha ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888, iconWidth, iconHeight, iconRowstride, &error)) + { + /* Show error message */ + g_warning(_("Could get icon for '%s' of key '%s' for Gnome-Shell search provider '%s': %s"), + identifier[0], + "icon-data", + priv->gnomeShellID, + (error && error->message) ? error->message : _("Unknown error")); + + /* Release allocated resources */ + if(error) + { + g_error_free(error); + error=NULL; + } + } /* Release data extracted for icon */ - g_free(iconString); + g_free(iconData); } /* Release allocated resources */ @@ -786,6 +812,11 @@ static ClutterActor* _xfdashboard_gnome_shell_search_provider_create_result_acto xfdashboard_button_set_style(XFDASHBOARD_BUTTON(actor), XFDASHBOARD_BUTTON_STYLE_BOTH); xfdashboard_button_set_gicon(XFDASHBOARD_BUTTON(actor), icon); } + else if(iconImage) + { + xfdashboard_button_set_style(XFDASHBOARD_BUTTON(actor), XFDASHBOARD_BUTTON_STYLE_BOTH); + xfdashboard_button_set_icon_image(XFDASHBOARD_BUTTON(actor), CLUTTER_IMAGE(iconImage)); + } clutter_actor_show(actor); @@ -794,6 +825,7 @@ static ClutterActor* _xfdashboard_gnome_shell_search_provider_create_result_acto } /* Release allocated resources */ + if(iconImage) g_object_unref(iconImage); if(icon) g_object_unref(icon); if(description) g_free(description); if(name) g_free(name); -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list [email protected] https://mail.xfce.org/mailman/listinfo/xfce4-commits
