From 2275b9218874477ff412fa0d6732a84378135f69 Mon Sep 17 00:00:00 2001 From: Kerim Atilgan Date: Tue, 3 Nov 2026 16:33:09 +0100 Subject: [PATCH] =?UTF-8?q?Resize-Zeiger=20blieb=20im=20Inhalt=20h=C3=A4ng?= =?UTF-8?q?en=20(vererbt=20von=20der=20Trennlinie):=20Bereiche=20mit=20eig?= =?UTF-8?q?enem=20Zeiger;=20Version=201.8.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- provtool/__init__.py | 2 +- provtool/gui/app.py | 12 +++++++++--- tests/test_gui.py | 7 +++++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/provtool/__init__.py b/provtool/__init__.py index bcf3bc6..c9281e2 100644 --- a/provtool/__init__.py +++ b/provtool/__init__.py @@ -1,5 +1,5 @@ """Provisions-Manager 95 – Provisionsabrechnung für Unterhändler der Handy-Insel Miesbach.""" -__version__ = "1.8.0" +__version__ = "1.8.1" APP_NAME = "Provisions-Manager 95" APP_ORG = "Handy-Insel Miesbach" diff --git a/provtool/gui/app.py b/provtool/gui/app.py index 3b158a6..00f1290 100644 --- a/provtool/gui/app.py +++ b/provtool/gui/app.py @@ -260,7 +260,9 @@ class App: # ---------------- Seitenleiste: Abrechnungen und Händler # Win95: zwei eigene Flächen mit blauer Titelleiste auf dem Desktop - links = tk.Frame(pw, bg=w.FACE if m else w.BG) + # Eigener Pfeil-Zeiger für beide Bereiche: Sonst erben sie den Zeiger der Trennlinie, und der + # bleibt unter Windows hängen (Resize-Zeiger mitten im Inhalt, v. a. maximiert). + links = tk.Frame(pw, bg=w.FACE if m else w.BG, cursor="arrow") innen = tk.Frame(links, bg=w.FACE if m else w.BG) innen.pack(fill="both", expand=True, padx=12 if m else 0, pady=(16, 10) if m else 0) seite = dict(style="Seite.Treeview") if m else {} @@ -302,7 +304,8 @@ class App: pw.add(links, minsize=240, width=320) # ---------------- Inhalt: Kopf der Abrechnung, Kennzahlen, Positionen - rechts = tk.Frame(pw, bg=w.BG) + rechts = tk.Frame(pw, bg=w.BG, cursor="arrow") + self._bereiche = (links, rechts) innen = tk.Frame(rechts, bg=w.BG) innen.pack(fill="both", expand=True, padx=(16, 20) if m else 0, pady=(16, 0) if m else 0) @@ -749,7 +752,8 @@ class App: return bericht = [] importiert: list[tuple[int, int, list[str]]] = [] # (Zeile im Bericht, datei_id, Hinweise) - self.root.configure(cursor="watch") + for f in (self.root, *self._bereiche): + f.configure(cursor="watch") self.root.update() try: for f in dateien: @@ -774,6 +778,8 @@ class App: bericht.append((name, erg.format, n, sum(p.betrag_cent for p in erg.positionen), "")) finally: self.root.configure(cursor="") + for f in self._bereiche: + f.configure(cursor="arrow") self._aktualisieren() # Doppelte (schon abgerechnet oder schon offen vorhanden) je Datei zählen – einmal für alle Dateien doppelt: dict[int, int] = defaultdict(int) diff --git a/tests/test_gui.py b/tests/test_gui.py index d189efa..6a62cc6 100644 --- a/tests/test_gui.py +++ b/tests/test_gui.py @@ -1259,3 +1259,10 @@ def test_start_mit_unerreichbarer_datenbank_fragt(home, monkeypatch): with pytest.raises(SystemExit): A.App(root) assert not weg.exists() + + +def test_inhalt_erbt_nicht_den_zeiger_der_trennlinie(lauf_modern): + """Der Resize-Zeiger der Trennlinie blieb unter Windows im ganzen Inhalt hängen (Kinder erben den Zeiger + der Trennlinie). Beide Bereiche haben daher einen eigenen Zeiger.""" + app = lauf_modern.app + assert [str(app.root.nametowidget(str(p)).cget("cursor")) for p in app.pw.panes()] == ["arrow", "arrow"]