diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index 25237693c..a790e3fee 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -68,29 +68,9 @@ AppDisplayItem.prototype = { return this._appInfo.create_icon_texture(GenericDisplay.ITEM_DISPLAY_ICON_SIZE); }, - // Ensures the preview icon is created. - _ensurePreviewIconCreated : function() { - if (!this._showPreview || this._previewIcon) - return; - - let gicon = this._appInfo.get_icon(); - let previewIconPath = null; - if (gicon) { - let iconTheme = Gtk.IconTheme.get_default(); - let previewIconInfo = iconTheme.lookup_by_gicon(gicon, GenericDisplay.PREVIEW_ICON_SIZE, 0); - if (previewIconInfo) - previewIconPath = previewIconInfo.get_filename(); - } - - if (previewIconPath) { - try { - this._previewIcon = new Clutter.Texture({ width: GenericDisplay.PREVIEW_ICON_SIZE, height: GenericDisplay.PREVIEW_ICON_SIZE}); - this._previewIcon.set_from_file(previewIconPath); - } catch (e) { - // we can get an error here if the file path doesn't exist on the system - log('Error loading AppDisplayItem preview icon ' + e); - } - } + // Returns a preview icon for the item. + _createPreviewIcon : function() { + return this._appInfo.create_icon_texture(GenericDisplay.PREVIEW_ICON_SIZE); } }; diff --git a/js/ui/docDisplay.js b/js/ui/docDisplay.js index 02886f7ee..fac319fb5 100644 --- a/js/ui/docDisplay.js +++ b/js/ui/docDisplay.js @@ -62,10 +62,9 @@ DocDisplayItem.prototype = { return this._docInfo.createIcon(GenericDisplay.ITEM_DISPLAY_ICON_SIZE); }, - // Ensures the preview icon is created. - _ensurePreviewIconCreated : function() { - if (!this._previewIcon) - this._previewIcon = this._docInfo.createIcon(GenericDisplay.PREVIEW_ICON_SIZE); + // Returns a preview icon for the item. + _createPreviewIcon : function() { + return this._docInfo.createIcon(GenericDisplay.PREVIEW_ICON_SIZE); }, // Creates and returns a large preview icon, but only if this._docInfo is an image file diff --git a/js/ui/genericDisplay.js b/js/ui/genericDisplay.js index 73a6557cd..3cec3491f 100644 --- a/js/ui/genericDisplay.js +++ b/js/ui/genericDisplay.js @@ -114,7 +114,6 @@ GenericDisplayItem.prototype = { this._name = null; this._description = null; this._icon = null; - this._previewIcon = null; // An array of details description actors that we create over time for the item. // It is used for updating the description text inside the details actor when @@ -210,12 +209,11 @@ GenericDisplayItem.prototype = { mainDetails.append(textDetails, Big.BoxPackFlags.EXPAND); - this._ensurePreviewIconCreated(); + let previewIcon = this._createPreviewIcon(); let largePreviewIcon = this._createLargePreviewIcon(availableWidth, Math.max(0, availableHeight - mainDetails.height - PREVIEW_BOX_SPACING)); - if (this._previewIcon != null && largePreviewIcon == null) { - let previewIconClone = new Clutter.Clone({ source: this._previewIcon }); - mainDetails.prepend(previewIconClone, Big.BoxPackFlags.NONE); + if (previewIcon != null && largePreviewIcon == null) { + mainDetails.prepend(previewIcon, Big.BoxPackFlags.NONE); } details.append(mainDetails, Big.BoxPackFlags.NONE); @@ -265,11 +263,6 @@ GenericDisplayItem.prototype = { // and therefore should be responsible for distroying it this._icon.destroy(); this._icon = null; - } - // This ensures we'll create a new previewIcon next time we need it - if (this._previewIcon != null) { - this._previewIcon.destroy(); - this._previewIcon = null; } this._icon = this._createIcon(); @@ -320,8 +313,8 @@ GenericDisplayItem.prototype = { throw new Error("Not implemented"); }, - // Ensures the preview icon is created. - _ensurePreviewIconCreated: function() { + // Returns a preview icon for the item. + _createPreviewIcon: function() { throw new Error("Not implemented"); },