Linus Rath
ce81623b2f
Merge branch 'feat/desktop-offline' into feat/do-pim-drawer
2026-11-04 17:25:01 +01:00
Linus Rath
cc587f6c5b
refactor: share the folder drawer's focus handling and dimmed backdrop with other sidebars
2026-11-04 16:38:00 +01:00
Linus Rath
455ef424fa
Merge branch 'feat/desktop-offline' into feat/do-ci-fix
2026-11-04 16:16:33 +01:00
Linus Rath
0c34edb64e
fix: draw an opened message with its conversation once, and open a message link with its conversation instead of alone first
...
The conversation effect threw away the conversation the open had just put on screen and fetched it again, which drew the whole mail view once more per opened message. A message link showed the message alone, then a placeholder for the conversation, then the message again, moving the body down. The routing test now expects the link's fetch to leave opening to the mail view, which opens the message with its conversation.
2026-11-04 16:09:39 +01:00
Linus Rath
b3ad80de70
fix: open the folder list in a narrow window as a drawer from the window's edge, with the page dimmed behind it
2026-11-04 15:52:58 +01:00
Linus Rath
c87c11734b
feat: add a setting to keep the account switcher at the top of the sidebar, on by default
2026-11-04 15:19:11 +01:00
Linus Rath
1b7b689662
Merge branch 'feat/desktop-offline' into feat/do-ux-p2-mail-fix
...
# Conflicts:
# components/ui/first-start-notice.tsx
2026-11-04 13:46:47 +01:00
Linus Rath
6975f96a4b
Merge branch 'feat/desktop-offline' into feat/do-ux-p2-mail-fix
...
# Conflicts:
# components/email/email-viewer.tsx
# components/email/thread-conversation-view.tsx
# components/mail/mail-app.tsx
# components/ui/toast.tsx
# lib/keyboard-shortcuts/mail.ts
# lib/window-controls-overlay.ts
2026-11-04 13:37:49 +01:00
Linus Rath
09335c76c5
Merge branch 'feat/do-ux-p2-settings-fix' into feat/desktop-offline
...
# Conflicts:
# components/settings/__tests__/notification-settings.test.tsx
2026-11-04 13:32:16 +01:00
Linus Rath
0f2fa7bafe
Merge branch 'feat/do-ux-p2-compose-fix' into feat/desktop-offline
2026-11-04 13:28:56 +01:00
Linus Rath
063d9c9c47
fix: drop the scheduled mark from a reply in the conversation once it has gone out
2026-11-04 13:10:38 +01:00
Linus Rath
850ebce944
fix: open a resumed reply draft under its message
2026-11-04 12:57:24 +01:00
Linus Rath
c5eb55467d
fix: lift toasts above the quick reply box and a docked reply while they are on screen
...
The toast-layout assertion changes because toasts now clear a bar taller
than 5rem while a composer is open, instead of a fixed 5rem.
2026-11-04 12:53:52 +01:00
Linus Rath
0728f854d2
fix: keep the message in view above a docked reply, which starts compact and grows to half the pane, and takes short panes with a Show the message bar
2026-11-04 12:50:22 +01:00
Linus Rath
98f814fced
fix: open a mail link from another program from the default account with no question, and drop "protocol link" from the account picker
2026-11-04 12:42:30 +01:00
Linus Rath
68bdaaac33
fix: hold the offline notice until the welcome tips are closed, also when they show in the reading pane
2026-11-04 12:41:37 +01:00
Linus Rath
1417c38a20
Merge branch 'feat/do-ux-p2-compose-send2' into feat/do-ux-p2-compose-fix
2026-11-04 12:41:03 +01:00
Linus Rath
358ba58b39
Merge branch 'feat/do-ux-p2-compose-drafts' into feat/do-ux-p2-compose-fix
2026-11-04 12:40:56 +01:00
Linus Rath
90e959a092
fix: show a sent reply in the open conversation at once, keep it out of Sent and Scheduled during Undo, and bring an undone reply back where it was written
2026-11-04 12:35:50 +01:00
Linus Rath
03ea1ab1aa
fix: open files sent from Explorer's Send to and Open with in a compose window, leaving the main window where it is
2026-11-04 12:32:54 +01:00
Linus Rath
df62335545
feat: name the desktop app's windows in the Window menu by folder and account, subject or New message
2026-11-04 12:25:33 +01:00
Linus Rath
801aa51b24
fix: discard a draft with the bin at once and offer Undo
...
The bin no longer asks "Discard draft?". The discard tests now expect no
question: the first one checks the late delete and the Undo instead of
the dialog, and the upload test that cancelled the question is gone,
since there is no question to cancel.
2026-11-04 12:20:42 +01:00
Linus Rath
0da07335cc
fix: give every message of a conversation the same header with Reply, Reply all and Forward, and open the newest one
2026-11-04 12:17:27 +01:00
Linus Rath
e93e0419b8
Merge branch 'feat/do-ux-p2-mail-desk' into feat/do-ux-p2-mail-fix
2026-11-04 11:58:31 +01:00
Linus Rath
712236867e
Merge branch 'feat/do-ux-p2-mail-folders' into feat/do-ux-p2-mail-fix
...
# Conflicts:
# components/email/email-viewer.tsx
2026-11-04 11:57:23 +01:00
Linus Rath
e9e5a43391
fix: say when a message needs a connection in a browser that keeps no mail offline
2026-11-04 11:51:47 +01:00
Linus Rath
c50726a15a
fix: run Message > Move to… on every selected message, and offer no Reply or Forward with several selected
2026-11-04 11:51:45 +01:00
Linus Rath
e7cef5ba1c
feat: open a draft in the composer on click, and Reply resumes the reply already drafted
2026-11-04 11:44:53 +01:00
Linus Rath
c2f80e2d29
fix: count every account's unread mail in the rail's Mail badge and the tab title, as the favicon does
2026-11-04 11:42:22 +01:00
Linus Rath
30e8cd02a4
feat: select every loaded conversation with one click and offer the rest of the folder
2026-11-04 11:36:55 +01:00
Linus Rath
cbb42c1f47
fix: count the undo send toast down and say Sent with View when undo ends
...
The undo send test allowed the toast at most the undo time; it now stays one second longer, since it turns into "Sent" when Undo ends instead of going away.
2026-11-04 11:34:41 +01:00
Linus Rath
9ae258cc74
fix: count conversations in batch toasts and say "Archived" after archiving in a message window
...
The moved-undo and popout-host tests expected "Email archived" from a
message window; the main window says "Archived", and now so does the
window.
2026-11-04 11:32:03 +01:00
Linus Rath
0a09fec123
fix: offer Empty Trash and Empty Spam only there, with the message count, and drop folder actions that can't apply
...
The folder menu tests no longer expect "Empty folder" on a folder of
your own: emptying is offered on Trash and Spam only now. The Mountain
View list test expects the entry to read "Empty Trash".
2026-11-04 11:30:11 +01:00
Linus Rath
890c49169b
fix: save the open message as a draft before Compose, Reply all or Forward opens another
2026-11-04 11:26:02 +01:00
Linus Rath
79fde240ac
fix: stop the app crashing when Compose is pressed while a reply is docked
2026-11-04 11:22:58 +01:00
Linus Rath
ea6b20d7ff
fix: show the selection in the reading pane once rows beyond the open message are ticked
2026-11-04 11:21:35 +01:00
Linus Rath
989385f4f6
Merge branch 'feat/desktop-offline' into feat/do-ux-compose-fixes
...
# Conflicts:
# components/email/email-viewer.tsx
# components/settings/accessibility-settings.tsx
# lib/__tests__/settings-search.test.ts
# lib/settings-search.ts
2026-11-04 09:54:25 +01:00
Linus Rath
ceaceb7f2a
Merge branch 'feat/desktop-offline' into feat/do-ux-compose-fixes
...
# Conflicts:
# components/email/email-composer.tsx
# components/email/email-viewer.tsx
# locales/ar/common.json
# locales/ca/common.json
# locales/cs/common.json
# locales/da/common.json
# locales/de/common.json
# locales/en/common.json
# locales/es/common.json
# locales/et/common.json
# locales/fa/common.json
# locales/fr/common.json
# locales/he/common.json
# locales/hu/common.json
# locales/it/common.json
# locales/ja/common.json
# locales/ko/common.json
# locales/lv/common.json
# locales/mn/common.json
# locales/nb/common.json
# locales/nl/common.json
# locales/pl/common.json
# locales/pt/common.json
# locales/ro/common.json
# locales/ru/common.json
# locales/sk/common.json
# locales/th/common.json
# locales/tr/common.json
# locales/uk/common.json
# locales/vi/common.json
# locales/zh-TW/common.json
# locales/zh/common.json
2026-11-04 09:20:50 +01:00
Linus Rath
adbbfe8149
test: give the welcome banner mock the due hook the notice bar now reads
2026-11-04 09:18:32 +01:00
Linus Rath
f1266889ed
fix: list To and Cc in the header of a message forwarded from the reader
2026-11-04 09:15:42 +01:00
Linus Rath
fcc9fc0cc0
Merge branch 'feat/desktop-offline' into feat/do-ux-mail-fixes
...
# Conflicts:
# components/email/email-viewer.tsx
# components/mail/mail-app.tsx
# components/offline/offline-host.tsx
# components/ui/welcome-banner.tsx
# locales/ar/common.json
# locales/ca/common.json
# locales/cs/common.json
# locales/da/common.json
# locales/de/common.json
# locales/en/common.json
# locales/es/common.json
# locales/et/common.json
# locales/fa/common.json
# locales/fr/common.json
# locales/he/common.json
# locales/hu/common.json
# locales/it/common.json
# locales/ja/common.json
# locales/ko/common.json
# locales/lv/common.json
# locales/mn/common.json
# locales/nb/common.json
# locales/nl/common.json
# locales/pl/common.json
# locales/pt/common.json
# locales/ro/common.json
# locales/ru/common.json
# locales/sk/common.json
# locales/th/common.json
# locales/tr/common.json
# locales/uk/common.json
# locales/vi/common.json
# locales/zh-TW/common.json
# locales/zh/common.json
2026-11-04 09:11:09 +01:00
Linus Rath
9df9505da0
test: look for the archive toast by its new wording in the undo reopen test
2026-11-04 09:09:18 +01:00
Linus Rath
044647ff34
fix: keep the desktop layout in a half-screen window and at 150 % zoom
...
A window snapped to half the screen (640-800 px) or a 1366x768 laptop
at 150 % (911 px) got the phone and tablet layout: bottom tab bar,
folders in a drawer, Settings as a phone list with a Back arrow. The
layout switched at the 64rem (1024 px) breakpoint.
Now the phone layout starts below 600 px. From 600 to 1024 px the app
is a compact desktop: app rail at the side, folder sidebar folded to
its icons (the existing collapsed state, opened per session with its
toggle), Settings with its two panes and a narrower page list. Below
840 px the split layout opens a message in the list's place, as the
focused layout does. This holds in the browser and the desktop app,
in the Pro shell (which now runs from 600 px) and under Mountain View.
- `hooks/use-media-query.ts`: classifyWidth, PHONE_BELOW 600,
FULL_DESKTOP 1024; the tablet class (`isTablet`) is gone, the store
has `isCompact` instead. Plugins still see "tablet" for it.
- `app/globals.css`: a `desk:` breakpoint at 37.5rem for the layout
classes, and a `tap:` variant for 44px rows on phones and touch
screens below 1024 px (was every window below 1024 px).
- Touch screens below 1024 px keep swiping list rows (was phones only).
- The boot skeletons, boot script, mail app, sidebar, reader, admin
shell and calendar, contacts and files follow the new widths.
Tests changed with the behaviour: the tablet cases in pro-gate,
mail-app-mv-composer-move, mail-app-compose-handoff,
mail-app-thread-expand-mark-read, mobile-tour-end and
thread-list-item-columns now run on a phone or a compact desktop, as
those widths no longer exist as a tablet. mail-app-short-window-tab-bar
is replaced by mail-app-compact-layout: a phone on its side is a
compact desktop with the rail at the side, so the short-window tab bar
rule is gone. Class and media-query assertions follow desk:/tap: and
37.5rem; the 32px-text test uses 1100 px, since 1440 px at 32px is now
a compact desktop.
2026-11-04 09:07:06 +01:00
Linus Rath
ad0b238e3d
feat: open a reply under the message it answers, which stays readable above it
2026-11-04 08:32:05 +01:00
Linus Rath
7517b024ec
fix: make Discard on the Continue draft bar delete the draft, with Undo, and reach it by keyboard
2026-11-04 08:23:01 +01:00
Linus Rath
2f31b435a2
Merge branch 'feat/desktop-offline' into feat/do-menu-fixes
...
# Conflicts:
# components/desktop/desktop-host.tsx
2026-11-04 07:57:50 +01:00
Linus Rath
1e51ff6e69
Merge branch 'feat/do-ux-mail-conv' into feat/do-ux-mail-fixes
...
# Conflicts:
# components/mail/mail-app.tsx
2026-11-04 07:24:19 +01:00
Linus Rath
d2f1e4bcc9
Merge branch 'feat/do-ux-mail-keys' into feat/do-ux-mail-fixes
2026-11-04 07:23:33 +01:00
Linus Rath
efa875ccc7
Merge branch 'feat/do-ux-mail-accounts' into feat/do-ux-mail-fixes
...
# Conflicts:
# components/email/email-list.tsx
2026-11-04 07:23:30 +01:00
Linus Rath
5fbc9b1f47
feat: open a mail link from another program in a compose window of its own in the desktop app
2026-11-04 07:12:06 +01:00