@@ -67,8 +67,8 @@ function markLoading(delta) {
6767}
6868
6969// Cache frequently accessed elements.
70+ const treeButton = document . getElementById ( "tree-button" ) ;
7071const debugButton = document . getElementById ( "debug-button" ) ;
71- const debugBackButton = document . getElementById ( "debug-back-button" ) ;
7272const debugViewEl = document . getElementById ( "debug-view" ) ;
7373const treeEl = document . getElementById ( "tree" ) ;
7474const statusEl = document . getElementById ( "status" ) ;
@@ -81,8 +81,7 @@ const treeView = new TreeView(treeEl, { onMarkLoading: markLoading });
8181
8282async function loadTree ( data , rootLabel = null ) {
8383 currentPage = typeof data . page === "number" ? data . page : null ;
84- debugButton . hidden = currentPage === null ;
85- debugBackButton . hidden = true ;
84+ debugButton . disabled = currentPage === null ;
8685 pageView . reset ( ) ;
8786 debugViewEl . hidden = true ;
8887 treeEl . hidden = false ;
@@ -113,6 +112,7 @@ async function openDocument(source, name) {
113112 wasmUrl : "../web/wasm/" ,
114113 useWorkerFetch : true ,
115114 pdfBug : true ,
115+ fontExtraProperties : true ,
116116 CanvasFactory : pageView . DebugCanvasFactory ,
117117 } ) ;
118118 loadingTask . onPassword = ( updateCallback , reason ) => {
@@ -230,9 +230,17 @@ gotoInput.addEventListener("keydown", async ({ key, target }) => {
230230 return ;
231231 }
232232 target . removeAttribute ( "aria-invalid" ) ;
233- await ( result . page !== undefined
234- ? loadTree ( { page : result . page } )
235- : loadTree ( { ref : result . ref } ) ) ;
233+ // If we're in debug view and navigating to a page, stay in debug view
234+ // without switching to the tree at all.
235+ if ( ! debugViewEl . hidden && result . page !== undefined ) {
236+ currentPage = result . page ;
237+ pageView . reset ( ) ;
238+ await pageView . show ( pdfDoc , currentPage ) ;
239+ } else {
240+ await ( result . page !== undefined
241+ ? loadTree ( { page : result . page } )
242+ : loadTree ( { ref : result . ref } ) ) ;
243+ }
236244} ) ;
237245
238246gotoInput . addEventListener ( "input" , ( { target } ) => {
@@ -242,14 +250,14 @@ gotoInput.addEventListener("input", ({ target }) => {
242250} ) ;
243251
244252debugButton . addEventListener ( "click" , async ( ) => {
245- debugButton . hidden = treeEl . hidden = true ;
246- debugBackButton . hidden = debugViewEl . hidden = false ;
253+ treeEl . hidden = true ;
254+ debugViewEl . hidden = false ;
247255 // Only render if not already loaded for this page; re-entering from the
248- // back button keeps the existing debug state (op-list, canvas, breakpoints).
256+ // tree button keeps the existing debug state (op-list, canvas, breakpoints).
249257 await pageView . show ( pdfDoc , currentPage ) ;
250258} ) ;
251259
252- debugBackButton . addEventListener ( "click" , ( ) => {
253- debugBackButton . hidden = debugViewEl . hidden = true ;
254- debugButton . hidden = treeEl . hidden = false ;
260+ treeButton . addEventListener ( "click" , ( ) => {
261+ debugViewEl . hidden = true ;
262+ treeEl . hidden = false ;
255263} ) ;
0 commit comments