Ich versuche einen sehr komischen Bug unter Linux zu finden.
Unter MacOS kann man das Fenster einfach wie gewohnt schließen und der Event-Loop ( FL_Run() ) beendet sich und das ganze Programm wird beendet (incl. Debugger).
Dieses Verhalten ist somit in Ordnung.
Unter Linux (Manjaro - Xfce 4.16) bleibt das Fenster aber nach schließen des Event-Loop (FL_Run() ) immer noch sichtbar.
Erst wenn man FL_Flush() danach aufruft wird das sichtbare Fenster unsichtbar (geschlossen?).
Das Programm hat dann auch das Ende erreicht und es wird "Debug Ende" ausgegeben, aber der Debugger ist immer noch aktiv und das Programm läuft ohne aktiven Eventloop und ohne sichtbares Fenster im Hintergrund einfach weiter.
Auf der Konsole gibt es nur eine Fehlermeldung:
X_ChangeProperty: BadValue (integer parameter out of range for operation) 0x0
Diese Meldung wird von FL_WindowShow(win) ausgelöst und lässt sich durch Verwendung von FL_WidgetShow(win) beheben, aber das fehlerhafte Debuggerverhalten bleibt weiterhin bestehen.
Dieser Eventloop fuktioniert unter Linux (Manjaro - Xfce 4.16), weil FL_Run() unter Linux fehlerhaft ist.
...Aber der Debugger bleibt danach trotzdem aktiv und das Programm ist still am Leben.
Bei Verwendung von "exit_(0)" als Befehl dauert es einen kurzen Moment und dann kommt:
"Das mit dem Debugger getestete Executable endete unerwartet."
Auf den PureBasic-Befehl "End" am Ende wird aber zum Beispiel gar nicht reagiert.
Der Destructor des Fenster wird aber korrekt aufgerufen und der Eventloop wird auch korrekt mit 0 beendet, aber das Programm bleibt innerhalb der IDE sowohl mit (als auch ohne) Debugger weiter hin aktiv und wird nicht korrekt beendet
Wenn man das Programm aber als "Console"-Programm als fertige Executable kompiliert und ohne Debugger außerhalb der IDE startet wird es korrekt im Taskmanager beenden.
???
-> Dieses seltsame Verhalten lässt sich auf FL_SetScheme() zurückführen.
-> Wenn man diesen Befehl nicht einsetzt beendet sich das Programm ganz normal.
Das Ganze wird weiter untersucht.
-> Bin am basteln einer "Fltk-Style.pbi"
...
Insgesamt ist vieles bisher ein Gebastel von sehr vielen Problemumgehungen (Workarounds).
Aktuell suche ich eine Alternative zu: "FL_DrawReadImage", weil diese Funktion unter MacOs nicht funktioniert.
Anbei:
Ein weiteres großes Problem stellt auch noch die Implementierung von Objekten (Interface(Class)-Integration) dar.
(Steht aber auf der "ToDo-Liste".)