summaryrefslogtreecommitdiffstats
path: root/application
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-06-06 14:24:03 +0200
committerwolfbeast <mcwerewolf@gmail.com>2018-06-06 14:24:03 +0200
commit00dee2f05b854d8f36747ac8459417012bb7a61f (patch)
treedfac292b3e714db7f0605b5962e8bf3003262380 /application
parenta421f38160599152cd409e4fabd434a224f78487 (diff)
downloadUXP-00dee2f05b854d8f36747ac8459417012bb7a61f.tar
UXP-00dee2f05b854d8f36747ac8459417012bb7a61f.tar.gz
UXP-00dee2f05b854d8f36747ac8459417012bb7a61f.tar.lz
UXP-00dee2f05b854d8f36747ac8459417012bb7a61f.tar.xz
UXP-00dee2f05b854d8f36747ac8459417012bb7a61f.zip
Add a helper function in PlacesUIUtils.jsm to cater to HiDPI favicon display with #-moz-resolution=w,h
Diffstat (limited to 'application')
-rw-r--r--application/palemoon/components/places/PlacesUIUtils.jsm27
-rw-r--r--application/palemoon/components/places/content/browserPlacesViews.js9
2 files changed, 33 insertions, 3 deletions
diff --git a/application/palemoon/components/places/PlacesUIUtils.jsm b/application/palemoon/components/places/PlacesUIUtils.jsm
index dd0695f78..e90c84152 100644
--- a/application/palemoon/components/places/PlacesUIUtils.jsm
+++ b/application/palemoon/components/places/PlacesUIUtils.jsm
@@ -1136,6 +1136,33 @@ this.PlacesUIUtils = {
}
}
return queryName;
+ },
+
+ /**
+ * Returns the passed URL with a #moz-resolution fragment
+ * for the specified dimensions and devicePixelRatio.
+ *
+ * @param aWindow
+ * A window from where we want to get the device
+ * pixel Ratio
+ *
+ * @param aURL
+ * The URL where we should add the fragment
+ *
+ * @param aWidth
+ * The target image width
+ *
+ * @param aHeight
+ * The target image height
+ *
+ * @return The URL with the fragment at the end
+ */
+ getImageURLForResolution:
+ function PUIU_getImageURLForResolution(aWindow, aURL, aWidth = 16, aHeight = 16) {
+ let width = Math.round(aWidth * aWindow.devicePixelRatio);
+ let height = Math.round(aHeight * aWindow.devicePixelRatio);
+ return aURL + (aURL.contains("#") ? "&" : "#") +
+ "-moz-resolution=" + width + "," + height;
}
};
diff --git a/application/palemoon/components/places/content/browserPlacesViews.js b/application/palemoon/components/places/content/browserPlacesViews.js
index 4ab80cac6..eec7274a4 100644
--- a/application/palemoon/components/places/content/browserPlacesViews.js
+++ b/application/palemoon/components/places/content/browserPlacesViews.js
@@ -338,7 +338,8 @@ PlacesViewBase.prototype = {
let icon = aPlacesNode.icon;
if (icon)
- element.setAttribute("image", icon);
+ element.setAttribute("image",
+ PlacesUIUtils.getImageURLForResolution(window, icon));
}
element._placesNode = aPlacesNode;
@@ -464,7 +465,8 @@ PlacesViewBase.prototype = {
if (!icon)
elt.removeAttribute("image");
else if (icon != elt.getAttribute("image"))
- elt.setAttribute("image", icon);
+ elt.setAttribute("image",
+ PlacesUIUtils.getImageURLForResolution(window, icon));
},
nodeAnnotationChanged:
@@ -966,7 +968,8 @@ PlacesToolbar.prototype = {
button.setAttribute("label", aChild.title || "");
let icon = aChild.icon;
if (icon)
- button.setAttribute("image", icon);
+ button.setAttribute("image",
+ PlacesUIUtils.getImageURLForResolution(window, icon));
if (PlacesUtils.containerTypes.indexOf(type) != -1) {
button.setAttribute("type", "menu");