Skip to content

Contest-Panels aufs Raster; Rastersprung schließt sich selbst ab; Submodul auf CP #75 - #402

Merged
oe5sos merged 1 commit into
mainfrom
fix/contest-panels-raster
Nov 5, 2026
Merged

oe5sos merged 1 commit into
mainfrom
fix/contest-panels-raster

Conversation

@oe5sos

@oe5sos oe5sos commented Nov 5, 2026

Copy link
Copy Markdown
Owner

Betreiber 2026-11-05, mit Bild: „hier funktioniert der raster nicht mit der anordnung der fenster" — Karte, Log und Chat standen schief zum Panadapter.

Ursache: Longpaths vier schwebende Fensterklassen rufen aus moveEvent/resizeEvent das Raster (snapToGridAfterSettle) und den Zugmelder; ein Panel des Contestprogramms zieht sich mit eigenem Mauscode und rief nichts davon.

Behebung

  • Die Brücke hängt an jedes Panel einen Ereignisfilter (PanelRaster): dieselben Aufrufe, solange das Panel ein Fenster ist. Nach einem Schub des Rasters zusätzlich trySetGeometry(), damit das Contestprogramm die gerasterte Lage speichert.
  • Dabei in WindowPlacement gefunden: ein gelungener Rastersprung galt erst im Nachlauf 180 ms später als abgeschlossen; zog man vorher wieder, fiel der Nachlauf aus und der nächste Zug auf dieselben Linien wurde als „System hält das Fenster fest" verworfen. Jetzt sofort abgeschlossen, wenn der Rahmen sitzt — gilt für alle Fenster.
  • WindowPlacementBruecke.h: Kopf ohne Abhängigkeiten, weil die Brücke src nicht auf dem Include-Pfad haben darf (gleichnamige Köpfe im Contestprogramm).
  • Submodul auf Contestprogramm main nach Eingebettet bleibt die Menüleiste im Fenster Contestprogramm#75 (Menüleiste bleibt Longpath bei Panel/Logbuch vorn).

Prüfung: tst_contestfenster::einPanelRastetNachDemZugEin — rot ohne Filter (101,127), rot ohne die WindowPlacement-Behebung (101,135), grün mit beidem. Weitere Raster-/Platzierungs-Prüfstände grün (siehe Lauf). Live noch nicht gesehen.

🤖 Generated with Claude Code

…bmodul auf #75

Betreiber 2026-11-05, mit Bild: "hier funktioniert der raster nicht
mit der anordnung der fenster" -- Karte, Log und Chat standen schief
zum Panadapter.

Ursache: Longpaths vier schwebende Fensterklassen rufen aus ihrem
moveEvent/resizeEvent snapToGridAfterSettle() und meldeZug(); ein
Panel des Contestprogramms zieht sich mit EIGENEM Mauscode
(PanelContainerWidget::updateDrag -> move()) und wusste von beidem
nichts. Jetzt haengt die Bruecke an jedes Panel einen Ereignisfilter
(PanelRaster), der dieselben zwei Aufrufe macht, solange das Panel ein
Fenster ist. Schiebt das Raster selbst (EigeneBewegung), ruft der
Filter zusaetzlich trySetGeometry(), damit der PanelLayoutManager des
Contestprogramms die GERASTERTE Lage speichert.

Dabei gefunden, in WindowPlacement selbst: ein gelungener Rastersprung
wurde erst im Nachlauf 180 ms spaeter als abgeschlossen vermerkt. Zog
der Bediener vorher wieder (jeder Zug startet den Timer neu), fiel der
Nachlauf aus, und der naechste Zug auf dieselben Rasterlinien galt als
"das System haelt das Fenster fest" -- verworfen. Jetzt gilt der
Versuch sofort als erledigt, wenn der Rahmen nach dem setGeometry auf
dem Ziel sitzt. Das trifft Longpaths eigene Fenster genauso.

WindowPlacementBruecke.h: die Bruecke darf `src` nicht auf dem
Include-Pfad haben (das Contestprogramm hat Koepfe gleichen Namens,
core/RigctldClient.h), darum ein Kopf ohne weitere Abhaengigkeiten.

tst_contestfenster::einPanelRastetNachDemZugEin -- rot ohne Filter
(101,127), rot ohne die WindowPlacement-Behebung (101,135), gruen mit
beidem.

Submodul auf Contestprogramm main nach #75: eingebettet bleibt dessen
Menueleiste im Fenster, der Mac zeigt Longpaths (am Geraet gesehen:
"Datei / Fenster / Hilfe" mit dem Log-Fenster vorn). Nicht live gesehen.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@oe5sos
oe5sos merged commit 0aa25bd into main Nov 5, 2026
12 checks passed
@oe5sos
oe5sos deleted the fix/contest-panels-raster branch November 5, 2026 06:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant