M3: a document that asks to open in Full Screen mode asks first (/PageMode /FullScreen) (#2086)

* M3: a document that asks to open in Full Screen mode asks first (/PageMode /FullScreen)

The Initial View option "Open in Full Screen mode" was written and read
but never acted on when opening. Now the app asks, as Acrobat's alert
does: Full Screen enters it, Not now leaves the window as it is. A
document cannot take the screen on its own.

Refs #379, #1459.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RUNQSPVXx3dDBabRZHAnjz

* Refresh catalog hashes after merging main

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
This commit is contained in:
mtlcl410
2026-10-15 02:43:17 -04:00
committed by GitHub
co-authored by Claude Fable 5.1 Brandon Thomas
parent 53267c66d5
commit 712ae9c36a
27 changed files with 198 additions and 23 deletions
+21 -21
View File
@@ -7,7 +7,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Greek UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "70da78d17186e3d91e952f9d1feb0f71ae03355eea5963f30d38496ee8802f80"
sha256 = "0576900abcb7d419ec81843274632db330daaa5964c91ccb5933b2a3053257cc"
# ATTRIBUTION.toml: one entry per asset (AGENTS.md §1). The source of truth for provenance and licences.
# ATTRIBUTION.md is generated from this file: `cargo xtask assets --write`. Checked by `cargo xtask assets` (part of `xtask ci`).
@@ -30,7 +30,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Simplified Chinese UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "b4c3d8c6b181c2bec36d5b4cb28312b261cf17dcebc9e41f0b1bed2f3744b86d"
sha256 = "aaf94f24b7fb7c7fcbbd9003ba01e8fe5e775497d5c691e161dadadb0a85ac18"
[[asset]]
path = "crates/ui-egui/src/i18n/zh-hant.tsv"
@@ -41,7 +41,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Traditional Chinese UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "cbb627936023af9331e2a4441661f5bae43e2453cd325c920f09d86de18020e0"
sha256 = "4d25e7a10678751d8fecf8ee8688e04343c807b9565a21e72bf784cdd8e30238"
[[asset]]
path = "crates/ui-egui/src/i18n/cs.tsv"
@@ -52,7 +52,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Czech UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "9d7ded91862278510b7b0fd7c6c1ae953936a720535e33d89003c3aa50422ad7"
sha256 = "bfa7f7d2cc008f676c5c533cda9f6b9415c8b6cfe43d2c88fab62440825cb57b"
[[asset]]
path = "crates/ui-egui/src/i18n/pt-br.tsv"
@@ -63,7 +63,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Brazilian Portuguese UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "4648d4afc78f8b37ea6f855471c0713c5c4e948c1b909da3aa406a81cb51135e"
sha256 = "003747152cfb5f42ccb2b3e77351902a2594e2a263cc0750e122d6f1f94802d1"
[[asset]]
path = "crates/ui-egui/src/i18n/es.tsv"
@@ -74,7 +74,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Spanish UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "cb8f794e06eedbb9cff34ac7b6b41cf2eba2a36d24daba7307854babae85a89f"
sha256 = "dc3267d8d4882998e32de736fb28ebc247e5102530fea852caa585f1c43d3150"
[[asset]]
path = "crates/ui-egui/src/i18n/fr.tsv"
@@ -85,7 +85,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "French UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "6568887271ac5f0bc00c127b3270e9b4d5eedbd791e0268dcbea6b63c22672bd"
sha256 = "869505afeb011a27067fa55f1521a8d06ab3efd026fed4854610816acca13926"
[[asset]]
path = "crates/ui-egui/src/i18n/de.tsv"
@@ -96,7 +96,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "German UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "57b8ba03355ca1a866f234a0814f76be895a9499acdba8473bc5301e9cb55cf1"
sha256 = "cffb456aac29be21da005ca52ae8131f0c07430e1723dd6da61073bba7501c8b"
[[asset]]
path = "crates/ui-egui/src/i18n/te.tsv"
@@ -107,7 +107,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Telugu UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "67a57e49fc7c1ff984337b099da27e81f583197f0508aeac2fef819bbcf82edb"
sha256 = "7db981779e3c478b51b8c8aba71a53dc8153165e31ea57096d1307d30027b658"
[[asset]]
path = "crates/ui-egui/src/i18n/it.tsv"
@@ -118,7 +118,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Italian UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "3188bd767d048d27ad70535d950202044611958f90a39bc738f5551b0494282d"
sha256 = "6b6197bc0dd5b93813d5d6652c7ba2a3dc9b0d06eaed65292837a8f15d880f43"
[[asset]]
path = "crates/ui-egui/src/i18n/pl.tsv"
@@ -129,7 +129,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Polish UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "0ee764524ec3fbacd1eb3f5a59f4f23c3041a658851dca0dc01a4c544df058fb"
sha256 = "e6c9510edf8cb9677be5b830d6626740b8f2821799211701d8d16708fa9408b5"
[[asset]]
path = "crates/ui-egui/src/i18n/ru.tsv"
@@ -140,7 +140,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Russian UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "0a2fc4ecdbbbe6e709730c3aa76b2dc7d3e9c9ea6de42a9b3ce9b6765d3c54eb"
sha256 = "9f6d11f2ccf4c873a16d0f2ae3dddd449f7fad1238126b968ed8813e293d0ee8"
[[asset]]
path = "crates/ui-egui/src/i18n/hu.tsv"
@@ -151,7 +151,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Hungarian UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "2e85a97fb2cfdb6bb20f1f8f79384a2984cae46cab7e56f6cec76a21995ab1e9"
sha256 = "15f572ed291aebc26911915e7647aef30998787a2bc87128addd273a84678406"
[[asset]]
path = "crates/ui-egui/src/i18n/bg.tsv"
@@ -162,7 +162,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Bulgarian UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "2a55c0c380d45fa41d3f6461e42e351e0f2e3e7142e60546bf141fb4685866ba"
sha256 = "35f1711fd3358dd29c784769bd9ff2094f977bf78cb9146eefa2f45f62f80d52"
[[asset]]
path = "crates/ui-egui/src/i18n/kk.tsv"
@@ -173,7 +173,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Kazakh UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "c6caafd21bfb93fe1c53a1a2c1cbbbb0d74325b00aaab307e00eacdd6f2e02dc"
sha256 = "8974dfe02d8c8f8453a156d68846f2171334fcda70d5fc795b53b52e13c2eb8f"
[[asset]]
path = "crates/ui-egui/src/i18n/ja.tsv"
@@ -184,7 +184,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Japanese UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "3374b7ef71dc8ec388493d45a7db280c881626af9e03694d032f586cae645397"
sha256 = "5ef65d3f913a1f97cdd54a07f4cc819bf128dfc20de247eadb2519bb98c7f102"
[[asset]]
path = "crates/ui-egui/src/i18n/uk.tsv"
@@ -195,7 +195,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Ukrainian UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "d851673052fa3c794de1dfc83802caf09a1ce8a1156098c47ea151e53a28bf87"
sha256 = "91da344ec2e6181f7c7b8f13dc0c878ccfe0600a8d464cbd188d082c6c402d4c"
[[asset]]
path = "crates/ui-egui/src/i18n/ar.tsv"
@@ -206,7 +206,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Arabic UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "de9609658581173eed2f3a565b59b920d4363f54f7a46148883f00600a2f88e5"
sha256 = "3f7534373129ce75ef26a87aaef3f5074be3d8326ded9d2d77d873e24359ec87"
[[asset]]
path = "crates/ui-egui/src/i18n/tr.tsv"
@@ -217,7 +217,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Turkish UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "6b1e58e80045623c9e92a70f1bc84861b0e7935e0ed8c12fdb56b75af4612283"
sha256 = "d045ebd97c1383e63ea8b9ff2a4279f8484357ff88b15f4bb4bb2cacce63022d"
[[asset]]
path = "crates/ui-egui/src/i18n/lt.tsv"
@@ -228,7 +228,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Lithuanian UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "484b28b1dbe0d9851a08c4a73178f85285a29019e09baa32533dfbccfec39b28"
sha256 = "afd09cdbcb97339d57a0be0010512ba8336d1b40ffcfbd2b4730808851c71d64"
[[asset]]
@@ -3363,7 +3363,7 @@ licence = "MIT OR Apache-2.0"
licence_file = "LICENSE-MIT"
kind = "translation"
usage = "Slovene UI strings, compiled in by crates/ui-egui/src/i18n/mod.rs"
sha256 = "d85b6bf3b62a82912aeb87ac97ca54fc6adb9dd79941117ee56cf198ede4d752"
sha256 = "714b6a58f5cd4f0c9220e88d2d3f7c584b64829b0336e23d7893209c84babf5d"
[[asset]]
path = "vendor/vello_common/assets/probe.png"
+1
View File
@@ -171,6 +171,7 @@ Ranked; detail and the full milestone table in [docs/roadmap.md](docs/roadmap.md
- **2026-10-14 (M4, page transitions read, §12.4.4):** `/Trans` and `/Dur` are read into `DocInfo::transitions` and listed by `doc_info`, the data a full-screen presentation needs to play transitions and auto-advance; playing and editing them stay planned.
- **2026-10-14 (M4, page transitions set, §12.4.4):** `page_transition_set` (one undoable edit) writes or removes `/Trans` and `/Dur` on chosen pages with the values checked first, the counterpart of reading them into `DocInfo::transitions`; playing them and the dialog stay planned.
- **2026-10-14 (M12, transition geometry):** `pdfcraft_render::transition` gives the picture of any of the twelve page transitions at a moment of its run (which parts of the old and new page to paint, where, how opaque), in page fractions, tested for every style and direction; the full-screen presentation will paint from it once it plays transitions.
- **2026-10-14 (M3, Open in Full Screen mode honoured):** a document with `/PageMode /FullScreen` now asks (Full Screen / Not now) before the app enters full screen, as Acrobat does; before, the setting was written and read but never acted on when opening.
- **2026-10-13 (M3, native-opening candidate):** Chosen tools survive preparation, conversion and password retries; startup intake waits for pending preparation. Regression tests cover completion, cancellation and document identity. Estimates unchanged.
- **2026-10-13 (community, M3, #531 touchpad momentum):** On Wayland a two-finger swipe keeps gliding after the fingers lift and slows to a stop, measured from the gesture's last 0.1 s and decaying with a 0.35 s time constant through the #759 1:1 path. Any wheel input, click, key, zoom or edge ends it (fingers resting on the touchpad don't yet: the vendored winit binds no Wayland hold gestures); single-page paging, macOS (which sends its own momentum), the web, and Animation effects Off never glide. Unit tests for the physics and two headless view tests. Estimates unchanged.
- **2026-10-13 (M3, native-open admission):** Later prepared replies stay queued while a modal or native picker owns the foreground. Picker completion, cancellation and abandonment wake retained opens. Regressions cover recipient ownership, exactly-once admission, source/history preservation and one-shot repaint requests. Estimates unchanged.
+43
View File
@@ -20,6 +20,7 @@ fn dialogs(app: &mut PdfCraftApp, ctx: &egui::Context) {
save_prompt(app, ctx);
link_prompt(app, ctx);
remote_link_prompt(app, ctx);
full_screen_prompt(app, ctx);
crate::updates::dialog(app, ctx);
if app.dialog != Some(Dialog::WordCount) {
app.word_count_draft.cancel();
@@ -1532,6 +1533,48 @@ fn link_prompt(app: &mut PdfCraftApp, ctx: &egui::Context) {
}
}
/// A document that asks to open in Full Screen mode (`/PageMode /FullScreen`) is asked about
/// first, as Acrobat does: full screen hides every control, so it is the person's choice.
fn full_screen_prompt(app: &mut PdfCraftApp, ctx: &egui::Context) {
let Some(id) = app.pending_full_screen else { return };
// The document was closed before an answer: nothing to ask any more.
if app.session.get(id).is_none() {
app.pending_full_screen = None;
return;
}
let t = Tokens::get(ctx);
let mut choice = None;
let modal = widgets::show_modal(ctx, "full_screen_prompt", |ui| {
ui.set_width(460.0);
ui.horizontal(|ui| {
ui.add(crate::icons::image("maximize", 22.0, t.accent));
ui.label(egui::RichText::new(tl!("Open in Full Screen mode?")).font(theme::semibold(16.0)));
});
ui.add_space(6.0);
ui.add(
egui::Label::new(tl!(
"This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it."
))
.wrap(),
);
ui.add_space(14.0);
ui.with_layout(Layout::right_to_left(Align::Center), |ui| {
if widgets::pill_button(ui, tl!("Not now"), true).clicked() {
choice = Some(false);
}
if widgets::pill_button(ui, tl!("Full Screen"), false).clicked() {
choice = Some(true);
}
});
});
if choice.is_none() && modal.should_close() {
choice = Some(false);
}
if let Some(allow) = choice {
app.resolve_full_screen_prompt(ctx, allow);
}
}
/// Absolute document-controlled local paths require consent before any filesystem access.
fn remote_link_prompt(app: &mut PdfCraftApp, ctx: &egui::Context) {
let Some(pending) = app.pending_remote_link.clone() else { return };
+4
View File
@@ -2379,6 +2379,10 @@ animation effects Off معطّلة
# Absolute local GoToR confirmation (#1364).
Allow السماح
Only allow this if you trust the source document. لا تسمح بذلك إلا إذا كنت تثق بالمستند المصدر.
Open in Full Screen mode? فتح في وضع ملء الشاشة؟
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. يطلب هذا المستند أن يُفتح في وضع ملء الشاشة: تملأ الصفحة الشاشة ولا يظهر شيء آخر. اضغط Esc في أي وقت للخروج منه.
Full Screen ملء الشاشة
Not now ليس الآن
Open this local PDF? هل تريد فتح ملف PDF المحلي هذا؟
This document is trying to open a local file: يحاول هذا المستند فتح ملف محلي:
Move tag earlier نقل العلامة للأعلى
Can't render this file because it contains an unexpected character in line 6 and column 47.
+4
View File
@@ -2321,6 +2321,10 @@ animation effects Off Изключени
# Absolute local GoToR confirmation (#1364).
Allow Разреши
Only allow this if you trust the source document. Разрешете това само ако имате доверие на изходния документ.
Open in Full Screen mode? Отваряне в режим на цял екран?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Този документ иска да се отвори в режим на цял екран: страницата изпълва екрана и нищо друго не се показва. Натиснете Esc по всяко време, за да излезете.
Full Screen Цял екран
Not now Не сега
Open this local PDF? Да се отвори ли този локален PDF?
This document is trying to open a local file: Този документ се опитва да отвори локален файл:
Move tag earlier Преместване на етикета по-рано
Can't render this file because it contains an unexpected character in line 8 and column 16.
+4
View File
@@ -2432,6 +2432,10 @@ animation effects Off Vypnuto
# Absolute local GoToR confirmation (#1364).
Allow Povolit
Only allow this if you trust the source document. Povolte tuto akci pouze v případě, že důvěřujete zdrojovému dokumentu.
Open in Full Screen mode? Otevřít v režimu celé obrazovky?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Tento dokument žádá o otevření v režimu celé obrazovky: stránka vyplní obrazovku a nic jiného se nezobrazí. Stisknutím Esc jej kdykoli opustíte.
Full Screen Celá obrazovka
Not now Teď ne
Open this local PDF? Otevřít tento místní soubor PDF?
This document is trying to open a local file: Tento dokument se pokouší otevřít místní soubor:
Move tag earlier Přesunout značku dříve
Can't render this file because it contains an unexpected character in line 6 and column 47.
+4
View File
@@ -2359,6 +2359,10 @@ animation effects Off Aus
# Absolute local GoToR confirmation (#1364).
Allow Zulassen
Only allow this if you trust the source document. Lassen Sie dies nur zu, wenn Sie dem Quelldokument vertrauen.
Open in Full Screen mode? Im Vollbildmodus öffnen?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Dieses Dokument möchte im Vollbildmodus geöffnet werden: Die Seite füllt den Bildschirm, sonst wird nichts angezeigt. Mit Esc verlassen Sie ihn jederzeit.
Full Screen Vollbild
Not now Jetzt nicht
Open this local PDF? Diese lokale PDF-Datei öffnen?
This document is trying to open a local file: Dieses Dokument versucht, eine lokale Datei zu öffnen:
Move tag earlier Tag früher verschieben
Can't render this file because it contains an unexpected character in line 6 and column 51.
+4
View File
@@ -2368,6 +2368,10 @@ animation effects Off Ανενεργά
# Absolute local GoToR confirmation (#1364).
Allow Να επιτραπεί
Only allow this if you trust the source document. Επιτρέψτε το μόνο αν εμπιστεύεστε το έγγραφο προέλευσης.
Open in Full Screen mode? Άνοιγμα σε λειτουργία πλήρους οθόνης;
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Αυτό το έγγραφο ζητά να ανοίξει σε λειτουργία πλήρους οθόνης: η σελίδα γεμίζει την οθόνη και τίποτα άλλο δεν εμφανίζεται. Πατήστε Esc οποιαδήποτε στιγμή για έξοδο.
Full Screen Πλήρης οθόνη
Not now Όχι τώρα
Open this local PDF? Να ανοίξει αυτό το τοπικό PDF;
This document is trying to open a local file: Αυτό το έγγραφο προσπαθεί να ανοίξει ένα τοπικό αρχείο:
Move tag earlier Μετακίνηση ετικέτας νωρίτερα
Can't render this file because it contains an unexpected character in line 475 and column 9.
+4
View File
@@ -2498,6 +2498,10 @@ animation effects Off Desactivados
# Absolute local GoToR confirmation (#1364).
Allow Permitir
Only allow this if you trust the source document. Permite esta acción solo si confías en el documento de origen.
Open in Full Screen mode? ¿Abrir en modo de pantalla completa?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Este documento pide abrirse en modo de pantalla completa: la página llena la pantalla y no se muestra nada más. Pulse Esc en cualquier momento para salir.
Full Screen Pantalla completa
Not now Ahora no
Open this local PDF? ¿Abrir este PDF local?
This document is trying to open a local file: Este documento intenta abrir un archivo local:
Move tag earlier Mover etiqueta antes
Can't render this file because it contains an unexpected character in line 6 and column 60.
+4
View File
@@ -2358,6 +2358,10 @@ animation effects Off Désactivés
# Absolute local GoToR confirmation (#1364).
Allow Autoriser
Only allow this if you trust the source document. N'autorisez cette action que si vous faites confiance au document source.
Open in Full Screen mode? Ouvrir en mode plein écran ?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Ce document demande à s’ouvrir en mode plein écran : la page remplit l’écran et rien d’autre n’est affiché. Appuyez sur Échap à tout moment pour le quitter.
Full Screen Plein écran
Not now Pas maintenant
Open this local PDF? Ouvrir ce PDF local ?
This document is trying to open a local file: Ce document tente d’ouvrir un fichier local :
Move tag earlier Déplacer la balise plus tôt
Can't render this file because it contains an unexpected character in line 6 and column 39.
+4
View File
@@ -2357,6 +2357,10 @@ animation effects Off Ki
# Absolute local GoToR confirmation (#1364).
Allow Engedélyezés
Only allow this if you trust the source document. Csak akkor engedélyezze ezt, ha megbízik a forrásdokumentumban.
Open in Full Screen mode? Megnyitás teljes képernyős módban?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Ez a dokumentum teljes képernyős módban kér megnyitást: az oldal kitölti a képernyőt, és semmi más nem látszik. Az Esc billentyűvel bármikor kiléphet.
Full Screen Teljes képernyő
Not now Most nem
Open this local PDF? Megnyitja ezt a helyi PDF-fájlt?
This document is trying to open a local file: Ez a dokumentum egy helyi fájlt próbál megnyitni:
Move tag earlier Címke korábbra helyezése
Can't render this file because it contains an unexpected character in line 7 and column 44.
+4
View File
@@ -2367,6 +2367,10 @@ animation effects Off Disattivati
# Absolute local GoToR confirmation (#1364).
Allow Consenti
Only allow this if you trust the source document. Consenti questa operazione solo se ti fidi del documento di origine.
Open in Full Screen mode? Aprire in modalità schermo intero?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Questo documento chiede di aprirsi in modalità schermo intero: la pagina riempie lo schermo e non viene mostrato altro. Premi Esc in qualsiasi momento per uscire.
Full Screen Schermo intero
Not now Non ora
Open this local PDF? Aprire questo PDF locale?
This document is trying to open a local file: Questo documento sta tentando di aprire un file locale:
Move tag earlier Sposta tag prima
Can't render this file because it contains an unexpected character in line 6 and column 47.
+4
View File
@@ -2358,6 +2358,10 @@ animation effects Off オフ
# Absolute local GoToR confirmation (#1364).
Allow 許可
Only allow this if you trust the source document. 元の文書を信頼できる場合にのみ許可してください。
Open in Full Screen mode? フルスクリーンモードで開きますか?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. この文書はフルスクリーンモードで開くよう求めています。ページが画面全体を占め、他には何も表示されません。Esc キーでいつでも終了できます。
Full Screen フルスクリーン
Not now 今はしない
Open this local PDF? このローカルPDFを開きますか?
This document is trying to open a local file: この文書はローカルファイルを開こうとしています:
Move tag earlier タグを前へ移動
Can't render this file because it contains an unexpected character in line 6 and column 47.
+4
View File
@@ -2356,6 +2356,10 @@ animation effects Off Өшірулі
# Absolute local GoToR confirmation (#1364).
Allow Рұқсат беру
Only allow this if you trust the source document. Бастапқы құжатқа сенсеңіз ғана рұқсат беріңіз.
Open in Full Screen mode? Толық экран режимінде ашу керек пе?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Бұл құжат толық экран режимінде ашылуды сұрайды: бет экранды толтырады және басқа ештеңе көрсетілмейді. Шығу үшін кез келген уақытта Esc басыңыз.
Full Screen Толық экран
Not now Қазір емес
Open this local PDF? Осы жергілікті PDF файлын ашу керек пе?
This document is trying to open a local file: Бұл құжат жергілікті файлды ашуға әрекеттеніп жатыр:
Move tag earlier Тегті ертерек жылжыту
Can't render this file because it contains an unexpected character in line 823 and column 9.
+4
View File
@@ -2602,6 +2602,10 @@ key Space Tarpas
# Absolute local GoToR confirmation (#1364).
Allow Leisti
Only allow this if you trust the source document. Leiskite tai tik tuo atveju, jei pasitikite pirminiu dokumentu.
Open in Full Screen mode? Atidaryti viso ekrano režimu?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Šis dokumentas prašo būti atidarytas viso ekrano režimu: puslapis užpildo ekraną ir daugiau niekas nerodoma. Norėdami išeiti, bet kada paspauskite Esc.
Full Screen Visas ekranas
Not now Ne dabar
Open this local PDF? Atverti šį vietinį PDF failą?
This document is trying to open a local file: Šis dokumentas bando atverti vietinį failą:
Move tag earlier Perkelti žymą anksčiau
Can't render this file because it contains an unexpected character in line 401 and column 9.
+4
View File
@@ -2338,6 +2338,10 @@ animation effects Off Wyłączone
# Absolute local GoToR confirmation (#1364).
Allow Zezwól
Only allow this if you trust the source document. Zezwól na to tylko wtedy, gdy ufasz dokumentowi źródłowemu.
Open in Full Screen mode? Otworzyć w trybie pełnoekranowym?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Ten dokument prosi o otwarcie w trybie pełnoekranowym: strona wypełnia ekran i nic innego nie jest widoczne. Naciśnij Esc w dowolnej chwili, aby go opuścić.
Full Screen Pełny ekran
Not now Nie teraz
Open this local PDF? Otworzyć ten lokalny plik PDF?
This document is trying to open a local file: Ten dokument próbuje otworzyć plik lokalny:
Move tag earlier Przenieś znacznik wcześniej
Can't render this file because it contains an unexpected character in line 6 and column 47.
+4
View File
@@ -2372,6 +2372,10 @@ animation effects Off Desativados
# Absolute local GoToR confirmation (#1364).
Allow Permitir
Only allow this if you trust the source document. Permita esta ação somente se confiar no documento de origem.
Open in Full Screen mode? Abrir no modo de tela cheia?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Este documento pede para abrir no modo de tela cheia: a página preenche a tela e nada mais é exibido. Pressione Esc a qualquer momento para sair.
Full Screen Tela cheia
Not now Agora não
Open this local PDF? Abrir este PDF local?
This document is trying to open a local file: Este documento está tentando abrir um arquivo local:
Move tag earlier Mover tag para antes
Can't render this file because it contains an unexpected character in line 9 and column 16.
+4
View File
@@ -2271,6 +2271,10 @@ animation effects Off Выкл
# Absolute local GoToR confirmation (#1364).
Allow Разрешить
Only allow this if you trust the source document. Разрешите это действие, только если доверяете исходному документу.
Open in Full Screen mode? Открыть в полноэкранном режиме?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Этот документ просит открыть его в полноэкранном режиме: страница занимает весь экран, и больше ничего не отображается. Нажмите Esc в любой момент, чтобы выйти.
Full Screen Полный экран
Not now Не сейчас
Open this local PDF? Открыть этот локальный PDF?
This document is trying to open a local file: Этот документ пытается открыть локальный файл:
Move tag earlier Переместить тег раньше
Can't render this file because it contains an unexpected character in line 9 and column 16.
+4
View File
@@ -2363,6 +2363,10 @@ animation effects Off Izklopljeni
# Absolute local GoToR confirmation (#1364).
Allow Dovoli
Only allow this if you trust the source document. To dovolite le, če zaupate izvornemu dokumentu.
Open in Full Screen mode? Odpri v celozaslonskem načinu?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Ta dokument želi, da se odpre v celozaslonskem načinu: stran zapolni zaslon in nič drugega ni prikazano. Za izhod kadar koli pritisnite Esc.
Full Screen Celoten zaslon
Not now Ne zdaj
Open this local PDF? Želite odpreti ta lokalni PDF?
This document is trying to open a local file: Ta dokument poskuša odpreti lokalno datoteko:
Move tag earlier Premakni oznako prej
Can't render this file because it contains an unexpected character in line 9 and column 16.
+4
View File
@@ -2271,6 +2271,10 @@ animation effects Off ఆఫ్
# Absolute local GoToR confirmation (#1364).
Allow అనుమతించు
Only allow this if you trust the source document. మూల పత్రాన్ని విశ్వసిస్తే మాత్రమే దీన్ని అనుమతించండి.
Open in Full Screen mode? పూర్తి తెర మోడ్‌లో తెరవాలా?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. ఈ పత్రం పూర్తి తెర మోడ్‌లో తెరవమని అడుగుతోంది: పేజీ తెరను నింపుతుంది, ఇంకేమీ కనిపించదు. బయటకు రావడానికి ఎప్పుడైనా Esc నొక్కండి.
Full Screen పూర్తి తెర
Not now ఇప్పుడు కాదు
Open this local PDF? ఈ స్థానిక PDF ఫైల్‌ను తెరవాలా?
This document is trying to open a local file: ఈ పత్రం ఒక స్థానిక ఫైల్‌ను తెరవడానికి ప్రయత్నిస్తోంది:
Move tag earlier ట్యాగ్‌ను ముందుకు తరలించు
Can't render this file because it contains an unexpected character in line 13 and column 16.
+4
View File
@@ -2354,6 +2354,10 @@ animation effects Off Kapalı
# Absolute local GoToR confirmation (#1364).
Allow İzin ver
Only allow this if you trust the source document. Buna yalnızca kaynak belgeye güveniyorsanız izin verin.
Open in Full Screen mode? Tam ekran modunda açılsın mı?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Bu belge tam ekran modunda açılmak istiyor: sayfa ekranı doldurur ve başka hiçbir şey görünmez. Çıkmak için istediğiniz zaman Esc tuşuna basın.
Full Screen Tam ekran
Not now Şimdi değil
Open this local PDF? Bu yerel PDF açılsın mı?
This document is trying to open a local file: Bu belge yerel bir dosya açmaya çalışıyor:
Move tag earlier Etiketi daha erken taşı
Can't render this file because it contains an unexpected character in line 822 and column 9.
+4
View File
@@ -2380,6 +2380,10 @@ animation effects Off Вимкнено
# Absolute local GoToR confirmation (#1364).
Allow Дозволити
Only allow this if you trust the source document. Дозволяйте це лише тоді, коли довіряєте вихідному документу.
Open in Full Screen mode? Відкрити в повноекранному режимі?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. Цей документ просить відкрити його в повноекранному режимі: сторінка заповнює екран, і більше нічого не показано. Натисніть Esc будь-коли, щоб вийти.
Full Screen Повний екран
Not now Не зараз
Open this local PDF? Відкрити цей локальний PDF?
This document is trying to open a local file: Цей документ намагається відкрити локальний файл:
Move tag earlier Перемістити тег раніше
Can't render this file because it contains an unexpected character in line 6 and column 47.
+4
View File
@@ -2322,6 +2322,10 @@ animation effects Off 关
# Absolute local GoToR confirmation (#1364).
Allow 允许
Only allow this if you trust the source document. 仅在您信任源文档时才允许此操作。
Open in Full Screen mode? 以全屏模式打开?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. 此文档要求以全屏模式打开:页面充满屏幕,不显示其他内容。随时按 Esc 即可退出。
Full Screen 全屏
Not now 暂不
Open this local PDF? 是否打开此本地 PDF?
This document is trying to open a local file: 此文档正尝试打开本地文件:
Move tag earlier 将标签前移
Can't render this file because it contains an unexpected character in line 9 and column 16.
+4
View File
@@ -2233,6 +2233,10 @@ animation effects Off 關
# Absolute local GoToR confirmation (#1364).
Allow 允許
Only allow this if you trust the source document. 只有在您信任來源文件時,才允許此操作。
Open in Full Screen mode? 要以全螢幕模式開啟嗎?
This document asks to open in Full Screen mode: the page fills the screen and nothing else shows. Press Esc at any time to leave it. 這份文件要求以全螢幕模式開啟:頁面佔滿整個螢幕,不顯示其他東西。隨時按 Esc 即可離開。
Full Screen 全螢幕
Not now 暫時不要
Open this local PDF? 要開啟此本機 PDF 嗎?
This document is trying to open a local file: 此文件正嘗試開啟本機檔案:
Move tag earlier 將標記前移
Can't render this file because it contains an unexpected character in line 9 and column 16.
+18
View File
@@ -791,6 +791,9 @@ pub struct PdfCraftApp {
pub last_opened_url: Option<String>,
/// A document asked to open this address; the user hasn't answered yet (#90, #91).
pub pending_link: Option<PendingLink>,
/// A document just opened asks to be shown in Full Screen mode (`/PageMode /FullScreen`):
/// the person is asked first, as in Acrobat, and this is the document waiting for the answer.
pub pending_full_screen: Option<DocId>,
/// An absolute GoToR target waiting for approval, before any target-file I/O (#1364).
pub pending_remote_link: Option<PendingRemoteLink>,
}
@@ -1023,6 +1026,7 @@ impl PdfCraftApp {
bookmark_rename: None,
last_opened_url: None,
pending_link: None,
pending_full_screen: None,
pending_remote_link: None,
protect_draft: Default::default(),
boxes_draft: Default::default(),
@@ -1317,6 +1321,11 @@ impl PdfCraftApp {
self.active = Some(self.views.len() - 1);
}
self.apply_initial_view(self.views.len() - 1, &initial);
// Full screen is asked for, never taken: a document can't put the app in full screen on
// its own (the prompt is `dialogs::full_screen_prompt`).
if activate && initial.full_screen {
self.pending_full_screen = Some(id);
}
if activate
&& self.left_open
&& self.left == LeftPanel::Tool("organize")
@@ -1545,6 +1554,15 @@ impl PdfCraftApp {
ctx.send_viewport_cmd(egui::ViewportCommand::Fullscreen(on));
}
/// Answer the Full Screen mode prompt a document raised on opening: enter it, or leave the
/// window as it is.
pub fn resolve_full_screen_prompt(&mut self, ctx: &egui::Context, allow: bool) {
let Some(id) = self.pending_full_screen.take() else { return };
if allow && self.session.get(id).is_some() {
self.set_full_screen(ctx, true);
}
}
/// Answer the password prompt (`None` cancels).
pub fn submit_password(&mut self, password: Option<String>) {
let Some(p) = self.password_prompt.take() else { return };
+29
View File
@@ -192,6 +192,35 @@ fn read_mode_rail_buttons_open_their_panels() {
h.get_by_label("Alpha section");
}
/// A document that asks to open in Full Screen mode (`/PageMode /FullScreen`) is asked about
/// first, as in Acrobat: "Not now" leaves the window as it is, "Full Screen" enters it.
#[test]
fn a_document_asking_for_full_screen_is_asked_about_first() {
let deck = || String::from_utf8(FIXTURE.to_vec()).unwrap().replace("/Outlines 6 0 R", "/Outlines 6 0 R /PageMode /FullScreen").into_bytes();
let mut h = harness(move |app| app.open_bytes("deck.pdf", None, deck()).expect("opens"));
h.run_steps(3);
assert!(!h.state().full_screen, "nothing happens before the answer");
h.get_by_label("Open in Full Screen mode?");
h.get_by_label("Not now").click();
h.run_steps(3);
assert!(!h.state().full_screen);
assert!(h.query_by_label("Open in Full Screen mode?").is_none() && h.state().pending_full_screen.is_none());
// Asked again for the next such document; Full Screen enters it.
let again = String::from_utf8(FIXTURE.to_vec()).unwrap().replace("/Outlines 6 0 R", "/Outlines 6 0 R /PageMode /FullScreen").into_bytes();
h.state_mut().open_bytes("deck2.pdf", None, again).expect("opens");
h.run_steps(3);
h.get_by_label("Full Screen").click();
h.run_steps(3);
assert!(h.state().full_screen, "Full Screen enters it");
assert!(h.state().pending_full_screen.is_none());
// A plain document asks nothing.
h.key_press(egui::Key::Escape);
h.run_steps(2);
h.state_mut().open_bytes("plain.pdf", None, FIXTURE.to_vec()).expect("opens");
h.run_steps(3);
assert!(h.query_by_label("Open in Full Screen mode?").is_none() && !h.state().full_screen);
}
/// Switching to Read mode closes the open pane, and switching back reopens it.
#[test]
fn read_mode_closes_the_panes_and_leaving_it_brings_them_back() {
+2 -2
View File
@@ -3475,8 +3475,8 @@ milestone = "M4"
status = "shipped"
commands = ["file.properties"]
tools = ["doc_initial_view"]
evidence = ["crates/organize/src/tests.rs::initial_view_round_trips_and_keeps_scripts", "crates/ui-egui/tests/viewer.rs::initial_view_is_edited_and_honoured_on_open", "crates/automation/tests/automation.rs::initial_view_through_tools"]
notes = "navigation panel, layout, magnification, page, window and interface options; honoured on open; script open actions kept"
evidence = ["crates/ui-egui/tests/ui.rs::a_document_asking_for_full_screen_is_asked_about_first", "crates/organize/src/tests.rs::initial_view_round_trips_and_keeps_scripts", "crates/ui-egui/tests/viewer.rs::initial_view_is_edited_and_honoured_on_open", "crates/automation/tests/automation.rs::initial_view_through_tools"]
notes = "navigation panel, layout, magnification, page, window and interface options; honoured on open; script open actions kept. Open in Full Screen mode (/PageMode /FullScreen) asks first (Full Screen / Not now), as Acrobat does, instead of taking the screen. Missing: Acrobat's Full Screen preference to turn that alert off and its \"remember my choice for this document\" (misc.prefs-full-screen)"
[[feature]]
id = "organize.custom-properties"