mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 00:50:22 +00:00
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:
parent
aa4dcda5dc
commit
7cdd07b89a
Notes:
sideshowbarker
2024-07-17 00:53:02 +09:00
Author: https://github.com/trflynn89 Commit: https://github.com/SerenityOS/serenity/commit/7cdd07b89a Pull-request: https://github.com/SerenityOS/serenity/pull/22048 Reviewed-by: https://github.com/kalenikaliaksandr ✅
1 changed files with 11 additions and 1 deletions
|
@ -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 = () => {
|
||||
|
|
Loading…
Reference in a new issue