- Settings 'Size' section: 8 col x 4 row grid, 31 buttons labeled a:b
(a splits H, b splits W); top-left cell empty placeholder (no 1:1 —
title bar double click already maximizes)
- Click resizes the window to work.width/b x work.height/a of the
display's work area (screen_retriever visibleSize, taskbar excluded);
position unchanged, no selection state tracking
- minimumSize 400x300 -> 160x100 (4:8 cell needs it)
- Settings file-properties rows left-aligned (were centered under path)
- Percentage shown between the prev/next buttons, together with the hover
controls, on a translucent background.
- Value is the on-screen scale relative to the image's real pixel size
(100% = 1:1); updated on wheel zoom, fill/fit toggle, image change and
window resize.
- Pixel-size header parsing moved to lib/services/image_header.dart, shared
with the settings file-properties panel.
- dist: 1.7.1 .deb replaces the tracked 1.7.0 package.
- R mirrors the view about the viewport centre and clears the active effects
(same reset as double right click); pressing R again restores the original
orientation. Pan/zoom are kept.
- Image switch, fill/fit toggle and right double click also clear the flip.
- Crop save (Ctrl+S) mirrors the output too, so the saved JPEG matches the
on-screen view (verified in combination with rotation).
- Shortcut lists (tr/en), README and CHANGELOG updated; deb rebuilt as 1.6.0.
The double-click fill/fit mode was hardcoded (image_canvas: _isFilled = true) and
reset on every image change, so it never survived a restart. It is now stored as
"filled" in window.json and restored on launch and on image switch.
WindowPersistence.saveSync() now merges with the existing file, otherwise the
startup/move/resize geometry writes would drop the mode key.
Also: version 1.5.0, CHANGELOG entry, dist/ ships imajviewer_1.5.0_amd64.deb
(replaces 1.4.2).
m[13] (blue alpha coefficient, always 0) was read as the blue offset instead of
m[14], so saved JPEGs lost the blue brightness/contrast offset and came out with a
color cast. Saturation/rotate were unaffected (no offsets).
Also: version 1.4.2, CHANGELOG entry, dist/ ships imajviewer_1.4.2_amd64.deb
(replaces 1.4.1).
- Save visible area at original resolution as JPEG q90 (title bar button or Ctrl+S)
- Output name: original name + _HHmmss suffix; no overwrite, warning shown
- Active color effects baked in; rotation saves bounding box
- New: crop_save_service, l10n strings TR/EN, docs/plan-crop-save.md
- _imageSize reset on image switch (wrong swap threshold on nav)
- downsample caps both dims (tall images no longer full-res decode)
- single _readImageSize instead of leaking loadingBuilder listeners
- evict old downsample provider on full-res swap
- remove imageCache.clear() that dropped live image (gallery flash)