diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css
index e9c687b42fa..74c9130fd77 100644
--- a/src/librustdoc/html/static/css/rustdoc.css
+++ b/src/librustdoc/html/static/css/rustdoc.css
@@ -1627,24 +1627,27 @@ a.tooltip:hover::after {
color: var(--copy-path-button-color);
background: var(--main-background-color);
height: 34px;
+ width: 33px;
margin-left: 10px;
padding: 0;
padding-left: 2px;
border: 0;
- width: 33px;
- line-height: 0;
font-size: 0;
}
-
-#copy-path:before {
+#copy-path::before {
filter: var(--copy-path-img-filter);
content: url('clipboard-24048e6d87f63d07.svg');
- width: 19px;
- height: 18px;
}
-#copy-path:hover:before {
+#copy-path:hover::before {
filter: var(--copy-path-img-hover-filter);
}
+#copy-path.clicked::before {
+ /* Checkmark */
+ content: url('data:image/svg+xml,');
+}
@keyframes rotating {
from {
diff --git a/src/librustdoc/html/static/js/main.js b/src/librustdoc/html/static/js/main.js
index 940b62be0c9..2c114b1cf55 100644
--- a/src/librustdoc/html/static/js/main.js
+++ b/src/librustdoc/html/static/js/main.js
@@ -1797,31 +1797,15 @@ href="https://doc.rust-lang.org/${channel}/rustdoc/read-documentation/search.htm
document.execCommand("copy");
document.body.removeChild(el);
- // There is always one children, but multiple childNodes.
- but.children[0].style.display = "none";
-
- let tmp;
- if (but.childNodes.length < 2) {
- tmp = document.createTextNode("✓");
- but.appendChild(tmp);
- } else {
- onEachLazy(but.childNodes, e => {
- if (e.nodeType === Node.TEXT_NODE) {
- tmp = e;
- return true;
- }
- });
- tmp.textContent = "✓";
- }
+ but.classList.add("clicked");
if (reset_button_timeout !== null) {
window.clearTimeout(reset_button_timeout);
}
function reset_button() {
- tmp.textContent = "";
reset_button_timeout = null;
- but.children[0].style.display = "";
+ but.classList.remove("clicked");
}
reset_button_timeout = window.setTimeout(reset_button, 1000);