@@ -92,6 +92,25 @@ function setupPdfViewEnhancements(
9292 pdfObserverDisabledRef . current = true ;
9393 setPDFViewTheme ( view , pdfView ) ;
9494 requestAnimationFrame ( ( ) => { pdfObserverDisabledRef . current = false ; } ) ;
95+
96+ // Observe inline height changes on the PDF root container and reset them
97+ // this could be an obsidian bug, should be revisted later 2025-08-23
98+ const containerEl = pdfView . containerEl as HTMLElement | null ;
99+ let prevHeight = containerEl ?. style ?. height || "" ;
100+ let heightObserver : MutationObserver | null = null ;
101+ if ( containerEl ) {
102+ heightObserver = new MutationObserver ( ( ) => {
103+ const h = containerEl . style . height || "" ;
104+ if ( h !== prevHeight ) {
105+ prevHeight = h ;
106+ if ( h ) {
107+ containerEl . style . height = "" ;
108+ prevHeight = "" ;
109+ }
110+ }
111+ } ) ;
112+ heightObserver . observe ( containerEl , { attributes : true , attributeFilter : [ "style" ] } ) ;
113+ }
95114
96115 // Transform-aware MMB drag-to-scroll (bypasses Chromium autoscroll)
97116 const scroller = pdfView . containerEl ?. querySelector ( ".pdf-viewer-container" ) || null ;
@@ -185,6 +204,8 @@ function setupPdfViewEnhancements(
185204 window . removeEventListener ( "pointermove" , onPointerMove , { capture : true } as any ) ;
186205 window . removeEventListener ( "pointerup" , onPointerUp , { capture : true } as any ) ;
187206 window . removeEventListener ( "pointercancel" , onPointerUp , { capture : true } as any ) ;
207+ heightObserver ?. disconnect ( ) ;
208+ heightObserver = null ;
188209 } ;
189210 ( pdfObserverRef as any ) . currentCleanup = ( ) => { cleanupPan ( ) ; } ;
190211
@@ -416,6 +437,8 @@ function RenderObsidianView(
416437 node : null ,
417438 editNode : null ,
418439 } ;
440+
441+ patchMobileView ( view ) ;
419442 //if subpath is defined, create a canvas node else create a workspace leaf
420443 if ( subpath && view . canvasNodeFactory . isInitialized ( ) && file . extension . toLowerCase ( ) === "md" ) {
421444 setKeepOnTop ( ) ;
@@ -446,7 +469,6 @@ function RenderObsidianView(
446469 containerRef . current . appendChild ( rootSplit . containerEl ) ;
447470 setColors ( containerRef . current , element , mdProps , canvasColor , viewType ) ;
448471 }
449- patchMobileView ( view ) ;
450472 view . updateEmbeddableLeafRef ( element . id , leafRef . current ) ;
451473
452474 if ( viewType === "pdf" ) {
@@ -630,9 +652,9 @@ function RenderObsidianView(
630652 if ( ! modes ) {
631653 return ;
632654 }
655+ patchMobileView ( view ) ;
633656 leafRef . current . leaf . view . setMode ( modes [ 'source' ] ) ;
634657 isEditingRef . current = true ;
635- patchMobileView ( view ) ;
636658 } else if ( leafRef . current ?. node ) {
637659 //Handle canvas node
638660 const newTheme = getTheme ( view , themeRef . current ) ;
0 commit comments