@bobfrankston/rmfmail 1.0.535 → 1.0.537
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/app.js +26 -21
- package/client/app.js.map +1 -1
- package/client/app.ts +21 -21
- package/docs/contacts.md +6 -1
- package/package.json +1 -1
- package/packages/mailx-store/db.d.ts.map +1 -1
- package/packages/mailx-store/db.js +7 -1
- package/packages/mailx-store/db.js.map +1 -1
- package/packages/mailx-store/db.ts +7 -1
- package/packages/mailx-store-web/db.d.ts.map +1 -1
- package/packages/mailx-store-web/db.js +5 -1
- package/packages/mailx-store-web/db.js.map +1 -1
- package/packages/mailx-store-web/db.ts +5 -1
package/client/app.js
CHANGED
|
@@ -2209,28 +2209,33 @@ onWsEvent((event) => {
|
|
|
2209
2209
|
});
|
|
2210
2210
|
// ── Keyboard shortcuts ──
|
|
2211
2211
|
// Capture-phase pre-handler: intercept WebView accelerator keys that would
|
|
2212
|
-
// otherwise trigger a browser action (Ctrl+R / Ctrl+Shift+R
|
|
2213
|
-
//
|
|
2214
|
-
//
|
|
2215
|
-
//
|
|
2216
|
-
//
|
|
2217
|
-
//
|
|
2218
|
-
//
|
|
2212
|
+
// otherwise trigger a browser action (Ctrl+R / Ctrl+Shift+R = reload). Call
|
|
2213
|
+
// the action directly here — earlier version re-dispatched a synthetic
|
|
2214
|
+
// keydown to document, which bubbled back up to this window listener and
|
|
2215
|
+
// fired again, breaking unrelated shortcuts (user-reported: Ctrl+N
|
|
2216
|
+
// stopped composing). Direct dispatch avoids the recursion.
|
|
2217
|
+
//
|
|
2218
|
+
// Whether preventDefault actually suppresses WebView2's native reload
|
|
2219
|
+
// depends on AreBrowserAcceleratorKeysEnabled — if it still reloads,
|
|
2220
|
+
// the msger Rust side needs the flag flipped (option 1 in the original
|
|
2221
|
+
// design notes).
|
|
2219
2222
|
window.addEventListener("keydown", (e) => {
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2223
|
+
if (!e.ctrlKey || e.altKey || e.metaKey)
|
|
2224
|
+
return;
|
|
2225
|
+
if (e.key !== "r" && e.key !== "R")
|
|
2226
|
+
return;
|
|
2227
|
+
// Skip when the user is typing in an input (compose textarea etc.) so
|
|
2228
|
+
// we don't hijack their typing to fire reply-all.
|
|
2229
|
+
const t = e.target;
|
|
2230
|
+
const tag = t?.tagName;
|
|
2231
|
+
if (tag === "INPUT" || tag === "TEXTAREA" || tag === "SELECT" || t?.isContentEditable)
|
|
2232
|
+
return;
|
|
2233
|
+
e.preventDefault();
|
|
2234
|
+
e.stopImmediatePropagation();
|
|
2235
|
+
if (e.shiftKey)
|
|
2236
|
+
openCompose("replyAll");
|
|
2237
|
+
else
|
|
2238
|
+
openCompose("reply");
|
|
2234
2239
|
}, { capture: true });
|
|
2235
2240
|
document.addEventListener("keydown", (e) => {
|
|
2236
2241
|
// Ctrl+N or Ctrl+Shift+M = Compose
|