Added maximize window and free scaling support.

This commit is contained in:
2026-09-03 23:12:48 +02:00
parent 5be4ace6c2
commit 598d761af4
3 changed files with 414 additions and 12 deletions

View File

@@ -18,7 +18,7 @@ from .paths import AppPaths
SETTINGS_SCHEMA = 1
_TITLE_FRAME_DEFAULT_MIGRATION_KEY = "title_frame_default_migrated"
UI_SCALE_CHOICES = frozenset({"auto", "100", "125", "150", "175", "200"})
_RETIRED_DISPLAY_SETTINGS = frozenset(
_RETIRED_SETTINGS = frozenset(
{
"width",
"height",
@@ -28,6 +28,7 @@ _RETIRED_DISPLAY_SETTINGS = frozenset(
"fullscreen",
"scaler",
"filter",
"maximize_button",
}
)
@@ -205,7 +206,7 @@ def _settings_need_migration(value: dict[str, object]) -> bool:
value.get("schema") != SETTINGS_SCHEMA
or not _SETTINGS_FIELD_NAMES.issubset(value)
or value.get(_TITLE_FRAME_DEFAULT_MIGRATION_KEY) is not True
or bool(_RETIRED_DISPLAY_SETTINGS.intersection(value))
or bool(_RETIRED_SETTINGS.intersection(value))
)
@@ -215,7 +216,7 @@ def _write_settings(
existing: dict[str, object] | None,
) -> None:
payload = dict(existing or {})
for name in _RETIRED_DISPLAY_SETTINGS:
for name in _RETIRED_SETTINGS:
payload.pop(name, None)
payload.update(asdict(settings))
payload["schema"] = SETTINGS_SCHEMA