Files
imajviewer/lib/main.dart
Alhan a65bdc152c feat: jfif/jpe/wbmp format destegi, pencere cascade yerlesimi, konum kaydi duzeltmesi
- file_handler/image_manager: jfif, jpe, wbmp uzantilari
- .desktop + install.sh MimeType: image/vnd.wap.wbmp eklendi
- main.dart: yeni pencere oncekinin saginda acilir (screen_retriever ile ekran tespiti)
- viewer_screen: 2sn polling kaldirildi, konum kaydi tek akisa oturtuldu (acilis + move/resize debounce + close senkron)
- dist/rebuild-deb.sh: .desktop kaynaktan kopyalanir (MimeType/StartupWMClass guncel kalir)
- .deb guncellendi, docs: session-2026-08-03 + plan dokumanlari
2026-08-03 06:44:57 +03:00

52 lines
1.6 KiB
Dart
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:window_manager/window_manager.dart';
import 'app.dart';
import 'services/image_manager.dart';
import 'services/window_persistence.dart';
void main(List<String> args) async {
WidgetsFlutterBinding.ensureInitialized();
ImageManager.configureCache();
await windowManager.ensureInitialized();
// Restore saved window position/size or use defaults
final saved = WindowPersistence.restore();
final defaultSize = const Size(1280, 800);
final windowOptions = WindowOptions(
size: saved?.size ?? defaultSize,
minimumSize: const Size(400, 300),
backgroundColor: Colors.transparent,
titleBarStyle: TitleBarStyle.hidden,
);
await windowManager.waitUntilReadyToShow(windowOptions, () async {
if (saved != null) {
final position = await WindowPersistence.cascadePosition(
previousPosition: saved.position,
previousSize: saved.size,
);
await windowManager.setPosition(position);
await windowManager.setSize(saved.size);
} else {
await windowManager.center();
}
await windowManager.setResizable(true);
await windowManager.show();
await windowManager.focus();
// Açılış konumunu hemen kaydet — sıradaki pencere güncel referans okusun
final pos = await windowManager.getPosition();
final size = await windowManager.getSize();
WindowPersistence.saveSync(position: pos, size: size);
});
// Extract file paths from command-line arguments
final filePaths = args.where((a) => !a.startsWith('-') && a != Platform.script.path).toList();
runApp(ImajViewerApp(initialFiles: filePaths));
}