gnudatalanguage / gdl

GDL - GNU Data Language
GNU General Public License v2.0
277 stars 61 forks source link

better widget user experience, on OSX in particular. And a few bugs cured. #1878

Closed GillesDuvert closed 2 months ago

GillesDuvert commented 2 months ago

Removed the 2 different codes between OSX and other platforms (with a small exception for the MenuBar), Menubars now are the same in unix, windows and OSX, and permit teh same button functionality as IDL (fancy fonts, images).

Yield() is still the unique way to have widgets going on OSX, the standard way of creating a wxApp does not work there. Conversely, using only Yield() instead of having mgGDlApp run a loop, is not working on Windows. Go figure.

widget responsiveness was extremely slow on OSX when an action here (ex: cursor on ATV) generates a change in another wxWindow, and more so if that window is in another topFrame ( OSX focus changes!)!! This PR greatly improves things but is not 100% satisfactory. Probably sign that Yield() is not the good way to handle our wxwidgets inner loop, should make the step and use threads?

WIDGET_EVENT was found wrong in the sense that it used the same eventloop treatment as the 'always active' eventloop. But WIDGET_EVENT should just report the event, not call event handlers. Hopefully this new version is better. At least it satisfactorily solves #1685 without ugly #1716 patch