X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fwidgets%2Ficon.cpp;h=c25e6aac2f88ed5786b89a239e5d7ad47513f346;hb=a39a6c00b097c411f84488cdd0d4f82a4083b139;hp=f9d01113ef46a66b2bfbe537891b6aadf444bf69;hpb=d75e8f9955a5abc0013eac647854f921d11d9a73;p=inkscape.git diff --git a/src/widgets/icon.cpp b/src/widgets/icon.cpp index f9d01113e..c25e6aac2 100644 --- a/src/widgets/icon.cpp +++ b/src/widgets/icon.cpp @@ -219,7 +219,7 @@ void sp_icon_fetch_pixbuf( SPIcon *icon ) } } -static GdkPixbuf* renderup( gchar const* name, Inkscape::IconSize lsize, unsigned psize ) { +GdkPixbuf* renderup( gchar const* name, Inkscape::IconSize lsize, unsigned psize ) { GtkIconTheme *theme = gtk_icon_theme_get_default(); GdkPixbuf *pb = 0; @@ -1184,7 +1184,8 @@ void Inkscape::queueIconPrerender( Glib::ustring const &name, Inkscape::IconSize { GtkStockItem stock; gboolean stockFound = gtk_stock_lookup( name.c_str(), &stock ); - if (!stockFound && !gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), name.c_str()) ) { + gboolean themedFound = gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), name.c_str()); + if (!stockFound && !themedFound ) { gint trySize = CLAMP( static_cast(lsize), 0, static_cast(G_N_ELEMENTS(iconSizeLookup) - 1) ); if ( !sizeMapDone ) { injectCustomSize(); @@ -1349,7 +1350,9 @@ static void addPreRender( GtkIconSize lsize, gchar const *name ) } gboolean icon_prerender_task(gpointer /*data*/) { - if (!pendingRenders.empty()) { + if ( inkscapeIsCrashing() ) { + // stop + } else if (!pendingRenders.empty()) { bool workDone = false; do { preRenderItem single = pendingRenders.front(); @@ -1359,7 +1362,7 @@ gboolean icon_prerender_task(gpointer /*data*/) { } while (!pendingRenders.empty() && !workDone); } - if (!pendingRenders.empty()) { + if (!inkscapeIsCrashing() && !pendingRenders.empty()) { return TRUE; } else { callbackHooked = false;