diff --git a/lib/features/sheet_viewer/drawing/drawing_board.dart b/lib/features/sheet_viewer/drawing/drawing_board.dart index 56a25d8..c13efe2 100644 --- a/lib/features/sheet_viewer/drawing/drawing_board.dart +++ b/lib/features/sheet_viewer/drawing/drawing_board.dart @@ -96,18 +96,32 @@ class _DrawingBoardState extends State { } // Drawing mode: wrap with InteractiveViewer for zoom/pan - return Align( - alignment: widget.alignment, - child: InteractiveViewer( - transformationController: _transformationController, - minScale: widget.minScale, - maxScale: widget.maxScale, - boundaryMargin: EdgeInsets.zero, - constrained: true, - panEnabled: !_isDrawing, - scaleEnabled: !_isDrawing, - child: content, - ), + // Use LayoutBuilder to get available size and center content manually + return LayoutBuilder( + builder: (context, constraints) { + // Calculate padding to center the content + final horizontalPadding = + (constraints.maxWidth - widget.boardSize.width) / 2; + final verticalPadding = + (constraints.maxHeight - widget.boardSize.height) / 2; + + return InteractiveViewer( + transformationController: _transformationController, + minScale: widget.minScale, + maxScale: widget.maxScale, + boundaryMargin: const EdgeInsets.all(double.infinity), + constrained: false, + panEnabled: !_isDrawing, + scaleEnabled: !_isDrawing, + child: Padding( + padding: EdgeInsets.only( + left: horizontalPadding > 0 ? horizontalPadding : 0, + top: verticalPadding > 0 ? verticalPadding : 0, + ), + child: content, + ), + ); + }, ); }