[Feature Suggestion] Lock canvas scrolling when "Paginate PDF" is disabled

Open
#382 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
52/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
android, kotlin
Domain
frontend, mobile

Research direction

The issue names PageView.kt as the place where the reporter tested changes. Start by reading that file and tracing how the “Paginate PDF” setting controls scrolling and the “Show pagination lines” setting. Done means scrolling stays within one page when pagination is disabled, the dependent setting is handled as requested, and continuous scrolling remains unchanged when pagination is enabled.

Written by the indexing model from the issue text.

Description

Problem:

When "Paginate PDF" is turned off, downward scrolling still continues working indefinitely. Because the canvas is never locked to a single page height, you can scroll down and keep writing further and further down the page.

When exporting with "Paginate PDF" off, Notable does not slice the page into multiple sheets—so the page is exported as a single, unusually tall, non-standard page that exceeds standard A4 proportions and breaks formatting when printed or viewed in document readers.

Proposed Solution: When "Paginate PDF" is disabled:

  1. Lock Downward Scroll: Lock vertical and horizontal scroll to (0, 0) so the canvas stays strictly at single-page height. You cannot scroll past the bottom bezel into infinite vertical space.
  2. Settings: Visually nest "Show pagination lines" under the main "Paginate PDF" toggle, disabling it automatically when pagination is turned off.

Results:

  • Single-page notes: Stay strictly bound to a single page, guaranteeing that exported single-page PDFs always match exact standard A4 dimensions.

  • Continuous notes: Multi-page continuous scrolling notebooks remain completely untouched when "Paginate PDF" is enabled.

Tested:
I built and tested this locally on my Note 4C (using AI to help evaluate my code edits and suggest better implementation in PageView.kt). So far, it works seamlessly, makes single-page note-taking feel like a real physical notebook, and makes PDF export dimensions completely predictable.

Image

======================================================

Future Evolution (Ideas for Later)

While a global setting in App Settings works great as minimal settings, down the road this could naturally evolve into Per-Notebook Properties:

- Per-Notebook Overrides: App Settings would define the default for newly created notebooks, but long-pressing a notebook to view its properties could allow overriding pagination for that specific document. (requires adding that settings here)

- Export Warning / Detection: When exporting, if the app detects strokes extending beyond the single-page canvas while pagination is disabled, it could show a helpful warning:

> "This notebook has content beyond the page canvas. It is recommended to enable pagination in Notebook Properties; otherwise, it will export as a continuous canvas.".

Dominant language
Kotlin
Stars
269
Forks
44
Avg merge
1d 17h
Merged PRs (30d)
22

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Ethran/notable

All issues in Ethran/notable

Similar issues

More Kotlin issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.