Commit Graph
14 Commits
Author SHA1 Message Date
Linus Rath bb2393cf04 feat: open messages and drafts in their own windows and save all attachments to a folder
An installed app had no title bar of its own, no way to save attachments
except a zip, and "pop out" stayed inside the page. A new window was a
second copy of the app that had to restore the session itself, and on
start-up that evicts any login made without "Remember me" from the list
every window shares.

- Title bar: `display_override` with `window-controls-overlay`, one
  `--titlebar-inset` variable at the page roots and skeletons, and a drag
  strip with the window title. 0 without an overlay, so nothing moves.
- Save all to a folder: `showDirectoryPicker`, asking the device policy
  before the picker and before each file, with the zip as the fallback.
- Pop-out routes `/popout/message/<id>` and `/popout/compose`, on offer in
  an installed app or when the desktop bridge has windows. Hidden in Lite.
- A pop-out borrows the main window's session and never evicts or starts a
  token timer. Every renewal now takes a Web Lock, so two windows can't
  send the same refresh token, which Stalwart 1.0 may treat as a replay.
- A draft moves to its window under the same id. A closing window hands
  unsaved text to the main window to save, since its own request wouldn't
  survive the close.
- Read state, drafts, theme and language follow across windows, and
  `html[data-desktop]` gates the app-like behaviour in `app/desktop.css`.
2026-11-03 06:50:21 +01:00
Robert ONeillandClaude Opus 5.5 b419065d8d fix: keep the command palette field's focus outline inside the dialog
The search field fills the header of a dialog with overflow hidden, so the
global focus outline, drawn 2px outside it, lost its top edge and crossed
the header's bottom border. focus-inset draws it inside the field.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 22:06:43 -05:00
Linus Rath 35be105a73 fix: size small text in rem so it follows the browser and app text size 2026-10-29 19:38:45 +01:00
Linus Rath 13d697ddfb feat: turn off every single-key shortcut when the setting is off 2026-10-29 17:53:34 +01:00
Linus Rath 368acca121 fix: stop app shortcuts from acting behind open dialogs and menus 2026-10-29 17:53:33 +01:00
Linus Rath 8b35962efb fix: show section labels in sentence case instead of all caps 2026-10-28 22:26:39 +01:00
Linus Rath 4995024223 fix: show the compose and search mail keys in the command palette only in Mail 2026-10-28 10:24:03 +01:00
Linus Rath 1de1d02f57 feat: list plugin pages in the command palette's Go to commands 2026-10-28 04:24:05 +01:00
Linus Rath 95d8230bb4 fix: give the command palette a close button on phones and drop the keyboard shortcuts entry on touch screens 2026-10-28 03:09:24 +01:00
Linus Rath 22629c0c6c feat: open the keyboard shortcuts with ? in every app, on that app's keys 2026-10-28 02:04:37 +01:00
Linus Rath 7e23c7de21 feat: let apps add their own commands to the command palette, with account switching and search everything 2026-10-28 02:00:31 +01:00
Linus Rath dd8aa05151 feat: use simpler calendar, contacts and files icons in the app switcher 2026-10-19 21:08:25 +02:00
Linus Rath 8e7245b26c feat: let the theme policy set and lock the color mode #1280 2026-10-18 13:46:49 +02:00
Linus Rath 86e593a752 feat: add a command palette on Ctrl+K where plugins can add their own commands 2026-10-14 05:10:10 +02:00