Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Sep 12, 2024

Conversation

GillesDuvert
Copy link
Contributor

@GillesDuvert GillesDuvert commented Sep 2, 2024

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

widget loop mamangement strange on OSX (extremely slow in some cases) --- why?
not related to Readline as behaviour same without.
…event are performed AFTER widget_event is returned.

Fluidize events and widgets responsiveness
events returned are conform to what IDL expects
…when needed, and found that WIDGET_EVENT was returning events AFTER event processing, not before. This was the sole reason of gnudatalanguage#1685. Thus removed the unnecessary (and wrong) patch made in 1716

HANDLER is now 0 in all structures created by widgets events, to be updated eventually by user event_pro or event_func.

wxLoop is called way more frequently than before, at times when it is needed,  widgets shoudl be  more reactive.
@GillesDuvert GillesDuvert changed the title better user exeperience on OSX ? better widget user experience, on OSX in particular. And a few bugs cured. Sep 7, 2024
@GillesDuvert GillesDuvert reopened this Sep 12, 2024
@GillesDuvert GillesDuvert merged commit fb0caa0 into gnudatalanguage:master Sep 12, 2024
10 of 14 checks passed
@GillesDuvert GillesDuvert deleted the improve_widgets_osx branch December 16, 2024 12:57
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