Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fix: improve Windows UX and complete zh-Hans translations#1

Open
YuYingRay wants to merge 10 commits into
webadderall:main from
YuYingRay:fix-windows-ux-and-i18n
Open

fix: improve Windows UX and complete zh-Hans translations #1
YuYingRay wants to merge 10 commits into
webadderall:main from
YuYingRay:fix-windows-ux-and-i18n

Conversation

@YuYingRay

@YuYingRay YuYingRay commented Apr 22, 2026

Copy link
Copy Markdown
  1. Windows: set KeepInTrayState default to false so the close button actually quits the app, matching Windows user expectations.

  2. Windows: add CREATE_NO_WINDOW flag to all PowerShell screenshot commands to prevent the console window from flashing during capture.

  3. i18n: add 8 missing watermark-related translation keys for Simplified Chinese (zh-Hans).

YuYingRay and others added 10 commits April 22, 2026 13:02
1. Windows: set KeepInTrayState default to false so the close button
 actually quits the app, matching Windows user expectations.
2. Windows: add CREATE_NO_WINDOW flag to all PowerShell screenshot
 commands to prevent the console window from flashing during
 capture.
3. i18n: add 8 missing watermark-related translation keys for
 Simplified Chinese (zh-Hans).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The #[cfg] attribute cannot appear inside a tauri::Builder method
chain. Replace it with the cfg!() boolean macro so the expression
remains valid Rust inside the .manage() call.
- Replace PredefinedMenuItem::quit with custom tray-quit item that
 explicitly calls app.exit(0) to work around Tauri v2 Windows quit bug.
- Add language dropdown in Settings modal using existing i18n context.
- I18nProvider was never mounted in the React tree, so useI18n() always
 returned default no-op values. Wrap both main.jsx and SettingsWindow
 with I18nProvider so language selection actually persists.
- Tray icon Click event on Windows was intercepting all mouse buttons,
 interfering with the right-click context menu. Restrict to Left button
 only and add a tooltip for better Windows shell integration.
- When keep_in_tray is false on Windows, explicitly call app.exit(0)
 on CloseRequested so the process actually quits and the tray icon
 is cleaned up immediately.
- Change frontend DEFAULT_SETTINGS.keepAppInTray to false on Windows so
 new users get the expected close-to-quit behavior out of the box.
Avoids importing the non-public MouseButton type on Tauri v2.
DoubleClick is also less likely to interfere with the right-click
context menu on Windows.
- Fix missing I18nProvider mounts in main.jsx and SettingsWindow.jsx
- Add useI18n to all active UI components: Sidebar, AppHelpers, App,
 WallpaperGrid, ExportFooter, CenterPreview, AnnotationBar,
 WindowControls, PresetSelectorTopRight, PresetSaveDialog,
 SettingsModal
- Add useI18n to hooks: useExportFunctions, usePresets,
 useScreenshotCapture, useShortcuts
- Add ~60 new translation keys to i18nStrings.js for en and zh-Hans
 covering ratios, shadow styles, watermark labels, tilt/rotation,
 system wallpaper errors, toast messages, placeholders, and aria labels
- Translate aspect ratio dropdown labels (LinkedIn, Facebook, X, Twitter,
 Instagram presets)
- Translate Safari mockup text, UI scale, and watermark placeholders
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Annotations were mispositioned (shifted upper-left and shrunk) in
exported images because dom-to-image could not reliably serialize the
annotation canvas replacement. Export resolution was also too low when
the source <img> was hidden in canvas-rendering mode.
New approach: exclude the annotation layer from dom-to-image capture,
then composite annotations at full output resolution via a separate
canvas pass using drawAnnotationsToCanvas(). This fixes both position
accuracy and output quality. When no annotations exist, the pipeline
is unchanged.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
macos-latest now maps to ARM64 runners, which fail when creating
DMG bundles for x86_64 targets. Use macos-13 (Intel) for x86_64
builds so DMG packaging runs natively.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
macos-13 Intel runners have very long queue times. Switch to macos-14
(ARM) with Rosetta 2 and brew-installed create-dmg to handle x86_64
cross-compilation DMG bundling reliably.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Three export fixes:
1. Pen stroke annotations used cached pathStr with absolute pixel
 coords from the display canvas, causing wrong positions on the
 export canvas. Now always recomputes path from normalized coords.
2. exportScale (1X/2X/3X) was applied on top of the auto-detected
 captureScale, causing double-scaling that exceeded browser canvas
 limits. Now exportScale feeds directly into captureScale via
 max(nativeRatio, exportScale) — no second pass.
3. Background rounded corners were forced to 0 during export because
 dom-to-image can't reliably clip via CSS overflow:hidden. Now bakes
 rounded corners into the background canvas pixels via destination-in
 compositing, so they survive serialization.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant

AltStyle によって変換されたページ (->オリジナル) /