LibWebView: Scroll inspected elements into view with a slight offset

When scrolling to the inspected element, if we scroll to its exact
position, it would often be placed behind the fixed header at the top of
the WebView. This patch gives the scroll a bit of an offset to scroll
comfortably beneath the header.
This commit is contained in:
Timothy Flynn 2023-11-24 12:30:46 -05:00 committed by Tim Flynn
parent aa4dcda5dc
commit 7cdd07b89a
Notes: sideshowbarker 2024-07-17 00:53:02 +09:00

View file

@ -322,6 +322,16 @@ void InspectorClient::maybe_load_inspector()
let initialTabButton = document.getElementById("dom-tree-button");
selectTab(initialTabButton, "dom-tree");
const scrollToElement = (element) => {
// Include an offset to prevent the element being placed behind the fixed `tab-controls` header.
const offset = 45;
let position = element.getBoundingClientRect().top;
position += window.pageYOffset - offset;
window.scrollTo(0, position);
}
inspector.inspectDOMNodeID = nodeID => {
let domNodes = document.querySelectorAll(`[data-id="${nodeID}"]`);
if (domNodes.length !== 1) {
@ -335,7 +345,7 @@ void InspectorClient::maybe_load_inspector()
}
inspectDOMNode(domNodes[0]);
selectedDOMNode.scrollIntoView({ block: "start", inline: "start" });
scrollToElement(selectedDOMNode);
};
inspector.clearInspectedDOMNode = () => {