feat: letterbox-aware clamp, full-frame image, fit/fill zoom fix
Build Windows / build-windows (push) Has been cancelled

- image_canvas.dart:
  - Fill mod: viewport tabanli clamp (_tx=0'da kilit)
  - Fit mod: RenderBox ile resmin gercek render boyutuna gore clamp
  - Letterbox offset (offX/offY) hesaba katilarak resmin kenarlarina kadar pan
  - Zoom-to-cursor dogru calisiyor (alignment: topLeft ile)
  - Min scale 1.0 (her iki modda da)
  - Overflow durumunda lo/hi reversed clamp (goruntu disari kacmaz)
- viewer_screen.dart: image alani top:24 -> top:0 (tam cerceve)
- install.sh: release -> debug bundle path (gelistirme)
This commit is contained in:
Alhan committed 2026-07-24 06:22:59 +03:00
1 parent 9a0e89bcea
commit 4dae4234ba
3 files changed
+171 -152

No files matched your search

+24 -16
View File
@@ -119,28 +119,36 @@ class _ViewerScreenState extends State<ViewerScreen> with WindowListener {
child: Stack(
children: [
Positioned(
top: 24,
top: 0,
left: 0,
right: 0,
bottom: 0,
child: Container(color: const Color(0xFF1a1a1a)),
),
Container(
color: Colors.transparent,
child: _hasImages
? ImageCanvas(filePath: ImageManager.instance.currentImagePath)
: const Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.image, size: 64, color: Colors.white24),
SizedBox(height: 16),
Text('Resimleri buraya sürükleyin\nveya Ctrl+O ile açın',
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white38, fontSize: 16)),
],
Positioned(
top: 0,
left: 0,
right: 0,
bottom: 0,
child: Container(
color: Colors.transparent,
child: _hasImages
? ImageCanvas(
filePath: ImageManager.instance.currentImagePath,
)
: const Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.image, size: 64, color: Colors.white24),
SizedBox(height: 16),
Text('Resimleri buraya sürükleyin\nveya Ctrl+O ile açın',
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white38, fontSize: 16)),
],
),
),
),
),
),
const CustomTitleBar(),
if (_isDragging)