Mouse Freeze bei Debug von TListBox Event

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
kpmais
Beiträge: 4
Registriert: Di 26. Mai 2020, 08:51

Mouse Freeze bei Debug von TListBox Event

Beitrag von kpmais »

Hallo Leute,
Ich habe da ein seltsames Phänomen zu dem ich auch im Netz nichts finde.
Folgendes:
BS: Linux Mint 19 mit xfce, LXQt, LXDE und MX Linux mit xfce und LXQt
Lazarus 2.06 bis zur aktuellen Version.
GDB 8.2.1
Das Problem tritt nur beim Compilieren mit qt5/qt auf. GTK2 ohne Probleme.

Wenn ich ein TListBox Event auslöse (Click, dblClick) und einen Debugger Breakpoint
im ListBox-Event setze, friert die Mouse nachdem der Breakpoint angesprungen worden ist ein.
- Der Cursor ist bewegbar, weitere Mouseaktionen sind jedoch nicht mehr durchführbar.
- Tasten funktionieren problemlos.
- Verwende ich dann <STRG>+F2 um das Prog zu beenden, beendet sich das Prog nicht, sondern es wird
zum Desktop gewechselt. Bringe ich nun die IDE wieder in den Vordergrund sind alle Mouseaktionen wieder
durchführbar.
Die ausführbare Datei läuft problemlos. Das Phänomen tritt nur beim Debuggen auf.
Ich habe das ganze mit mehreren Apps getestet. Es tritt auch auf bei einem Test mit lediglich einer TListBox und einem Event zu dieser. Mit oder ohne Inhalt in der Listbox.

Ich frage mich, handelt es sich um einen BUG in Lazarus, der qt-Version oder dem GDB ?
Da es bei einer nativen TListBox eben auch auftritt, schließe ich mal einen Programmierfehler aus.

Es nervt und ich bin etwas ratlos dem gegenüber.

Danke für die Hilfe

Peter

kpmais
Beiträge: 4
Registriert: Di 26. Mai 2020, 08:51

Re: Mouse Freeze bei Debug von TListBox Event

Beitrag von kpmais »

Nachtrag: das gleiche Phänomen tritt auch bei der TColorListBox auf.

martin_frb
Beiträge: 485
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Mouse Freeze bei Debug von TListBox Event

Beitrag von martin_frb »

Ich würde denken das Problem liegt im jeweiligem Toolkit.
Wenn das Event im Debugger anhält bekommt das Toolkit keine Rückmeldung mehr.

Im Falle das ein Work-around benötigt wird:
- breakpoint properties setzen:
"break" false
"snapshot" true

Dann läuft die App weiter, die Watches werden aber aufgezeichnet und können mittels des "Debug History" Fenster eingesehen werden.

---
Das Fenster wechseln (Desktop/IDE...) beendet möglicherweise ein MouseCapture der ListBox. Wenn dem so wäre wird das Laufzeit-verhalten der debuggten Anwendung verändert.

Antworten