Files
imajviewer/CHANGELOG.md
T

9.1 KiB
Raw Blame History

Changelog

All notable changes to imajViewer are documented in this file.

[Unreleased]

[1.9.2] - 2026-10-31

Changed

  • Settings dialog is now tabbed (General / Size / Shortcuts) instead of one long scrolling column; settings dialog panel has no outer margin, no rounded corners and fills the window on small sizes — separated from the canvas by a thin border.
  • Tab bar spans the panel width; size grid cells stretch to fill the tab.
  • Size grid: top-left cell is the H:W axis label; cells highlight on hover with a pointer cursor.
  • Sort labels are single words (Time / Name) so they never wrap on narrow windows; section titles are bold.
  • Shortcut key column uses the UI font (monospace removed) and is narrower.
  • Footer tagline: "Simple, clean, light, fast image viewer."
  • Language row (English / Türkçe / Français) added to the General tab as a disabled placeholder — switching is not wired yet.
  • Title bar: crop-save icon moved from the window controls to the left group, right next to the settings gear.
  • Hover highlight color is selectable in Settings > General (8-color palette, default red) and applies to title bar buttons, navigation arrows and size grid cells; stored as hoverColor in window.json.
  • Title bar drag area: grab cursor and a faint hover tint while the pointer is on the bar (buttons keep the click cursor and their own highlight).

[1.9.1] - 2026-10-31

Changed

  • Settings dialog: compact single top row — "Settings" title on the left, print and close as icon buttons on the right (bottom action row removed).
  • Settings dialog facelift: capped 520×560 centered dialog, M3 section cards, segmented sort control, two-column shortcuts, fixed footer, size grid cells 52×28.

[1.9.0] - 2026-10-31

Added

  • Taskbar/alt-tab title now shows the opened image's file name (falls back to "imajViewer" when no image is open).
  • Full hicolor icon size set (16–256 px) instead of only 64 px, so small-icon contexts (Thunar "Open With", Xfce app menu) keep the symbol visible.

Changed

  • install.sh generates the full icon size set and rewrites the hicolor index; uninstall hint updated.
  • Settings size grid is now a fixed 4-column layout (the wide/narrow transposition introduced in this release was removed).

[1.8.0] - 2026-10-31

Added

  • Window size presets: 4×8 screen-ratio grid in settings; clicking a preset resizes the window to that fraction of the screen work area (taskbar excluded). Minimum window size lowered to 160×100.

Fixed

  • Settings file-properties rows were centered under the longest row (path); now left-aligned.

[1.7.2] - 2026-10-25

Fixed

  • Rotating sometimes vanished before saving: the right-button double-click reset was detected on button down against the previous down time and position, so two rotate drags started quickly at nearly the same spot were treated as a double click — all effects (rotation included) were wiped and the second drag was ignored, so Ctrl+S saved an unrotated crop. A double click is now only counted for actual clicks (movement ≤ 4 px, decided on button up), a drag breaks the chain, and pointer up is matched by pointer id so a left-drag pan never counts as a click.

[1.7.1] - 2026-10-25

Added

  • Zoom percentage badge at the bottom center, between the previous/next buttons: shown together with the hover controls, translucent background, live while wheeling (100% = one image pixel per screen pixel), recomputed on fill/fit toggle, image change and window resize.

Changed

  • Image header parsing (pixel size without decoding) moved from the viewer screen into lib/services/image_header.dart; the settings file-properties panel and the zoom badge use the same code.

[1.7.0] - 2026-10-20

Added

  • Settings dialog shows the app version next to the name.
  • Fine zoom: Ctrl+wheel zooms 1% per step (plain wheel stays 10% per step).
  • Settings shortcut list completed: Ctrl+O (open), Esc (exit fullscreen), scroll/zoom, Ctrl+scroll fine zoom, left-drag pan, double right click (reset effects).

Changed

  • README: zoom feature line and shortcut table updated to match.

[1.6.3] - 2026-10-20

Fixed

  • SIGSEGV while resizing the window. The GTK embedder's OpenGL compositor uploaded the frame using the window's new dimensions while its pixel buffer still held the previous size, so memcpy read past the end of the buffer (engine/.../linux/fl_compositor_opengl.cc). Fixed upstream in flutter#187626, which is not part of Flutter 3.44.7 — the Linux build now uses Flutter 3.47.7, where the compositor derives the texture size from the framebuffer itself.

[1.6.2] - 2026-10-14

Changed

  • Crop save JPEG quality raised from 93 to 95.

[1.6.1] - 2026-10-14

Fixed

  • Horizontal flip shortcut (Ctrl+R) never fired when the keyboard layout resolves the R key to a different logical key (reported with a Turkish/remote-desktop setup where the R key arrives as logical T). The shortcut now matches the physical R key position as well.

[1.6.0] - 2026-10-14

Added

  • Horizontal flip (Ctrl+R): mirrors the image left-right about the viewport centre and clears the active effects (same reset as double right click); pressing Ctrl+R again restores the original orientation. Zoom/pan are kept.
  • Crop save (Ctrl+S) now bakes the flip into the output as well, so the saved JPEG matches the mirrored view (also in combination with rotation).

[1.5.0] - 2026-10-12

Added

  • Fill/fit mode (double-click) is now persisted in window.json and restored on the next launch and when switching images, instead of always resetting to fill.

[1.4.2] - 2026-10-12

Fixed

  • Crop save dropped the blue channel's brightness/contrast offset (matrix index m[13], the alpha coefficient, instead of m[14]), so saved JPEGs came out with a color cast whenever brightness or contrast was applied. Saturation/rotate were unaffected.

[1.4.1] - 2026-10-11

Fixed

  • Crop save always writes JPEG (previously kept the source extension, e.g. PNG) — quality 93
  • Crop save with rotation now saves the rotated view 1:1 instead of an unrotated bounding box

[1.4.0] - 2026-10-11

Added

  • Crop save: saves the visible area at original resolution as JPEG quality 90 — title bar save button or Ctrl+S
    • Output name: original name + _HHmmss time suffix (e.g. photo.jpg → photo_143025.jpg)
    • If a file with the same name exists, nothing is written and a warning is shown
    • Active color effects (contrast/saturation/brightness) are baked into the output
    • With rotation active, the bounding box around the visible area is saved

[1.3.2] - 2026-08-28

Fixed

  • Window position/size persistence under Wayland — forces X11 backend (XWayland) when an X server is available

[1.3.1] - 2026-08-14

Fixed

  • Aspect ratio distortion on image switch — downsample now uses ResizeImagePolicy.fit (was exact, which forced 2048×2048 square and stretched non-square images)

[1.3.0] - 2026-08-14

Fixed

  • _imageSize now resets on image switch (wrong swap threshold on navigation)
  • Downsample now caps both dimensions, not just width (tall images no longer full-res decode)
  • Image size listener leak in loadingBuilder — replaced with single _readImageSize
  • Old downsample provider now evicted on full-res swap
  • Removed imageCache.clear() that also dropped the live image (gallery flash)

[1.2.0] - 2026-08-14

Added

  • Downsampling: large images decode at max 2048px on first load (RAM ~1.6MB)
  • Full-res swap: zooming in past 1.5x stretch swaps to original resolution
  • Internationalization: Turkish + English, auto-detected from system locale
  • Zoom decodes at original resolution while zooming in (crisp details)
  • Max zoom increased to 20x

Fixed

  • RAM leak on image switch — old providers now evicted + ImageCache.evict()
  • Black screen flash during zoom (gapless playback)

Changed

  • App ID com.example.imajviewer → com.softmediadesign.imajviewer
  • CI now runs flutter analyze and flutter test on every push
  • pubspec.yaml description in English (open-source ready)

[1.1.0] - 2026-08-06

Fixed

  • Ctrl+Q now closes the window reliably (onKeyEvent rework)
  • Pan freeze regression on effect-applied images (root cause analysis)

Added

  • Navigation arrows (visible on hover)
  • Settings window: folder sorting by time/name, print, shortcut info
  • Print support (printing package, A4 fit)
  • Title bar hover transparency
  • Shader warmup — right-click effects no longer stutter on first use

[1.0.1] - 2026-07-27

Fixed

  • Zoom/pan issues on large images
  • Image provider memoize — repeated opens no longer reload from disk

Changed

  • Version now sourced from pubspec.yaml (single source of truth)

[1.0.0] - 2026-07-22

Added

  • Initial release: ultra-lightweight image viewer
  • Formats: PNG, JPEG, JFIF, WebP, BMP, GIF, WBMP
  • Pan (left drag), zoom (wheel, cursor-centered), fill/fit toggle (double click)
  • Contrast / saturation / brightness / rotate gestures
  • Drag & drop, window position memory, set-as-default-viewer
  • Linux (.deb) and Windows (setup.exe) installers