I upgraded from open_local_symbol.e v4.0.6 to v4.0.8.
4.0.8 seems to have introduced a problem with auto-hide toolbars:
Relevant config settings:- def_toolbar_autohide_delay=1500;
- Bottom side auto-hide toolbars: Search Results, Preview, References, Clipboards, Build, Message List, Output.
- Right side auto-hide toolbars: Files, Projects, Open.
Baseline repro of proper auto-hide with v4.0.6:1. Open open_local_symbol.e v4.0.6.
2. Load Module (F12 in the default config, I think).
3. Hover mouse over the Preview toolbar's tab.
--> Preview toolbar unhides.
4. Move mouse over the main editing window.
--> Preview toolbar auto-hides.
5. Invoke the ols command.
--> OLS dialog pops up and Preview toolbar unhides.
6. Press Escape to dismiss the OLS dialog.
--> OLS dialog closes and Preview toolbar auto-hides.
7. Do steps 3 & 4 again; results are the same as before.
Repro for problem with v4.0.8:1. Open open_local_symbol.e v4.0.8.
2. Load Module.
3. Hover mouse over the Preview toolbar's tab.
--> Preview toolbar unhides.
4. Move mouse over the main editing window.
--> Preview toolbar auto-hides.
5. Invoke the ols command.
--> OLS dialog pops up and Preview toolbar unhides.
6. Press Escape to dismiss the OLS dialog.
--> OLS dialog closes
but Preview toolbar does not auto-hide.
7. Do steps 3 & 4 again; do the steps 3 & 4 for the Preview toolbar, and for the Output toolbar.
-->
Pretty quickly the auto-hide toolbars get stuck in the unhidden state, and won't auto-hide.8. At the SE command line type "set-var def_toolbar_autohide_delay" and it reports that the value is 2147483647.Diagnosis:I inserted some say() lines where orig_autohide_delay gets set/restored, and the problem appears to be because both on_create and on_got_focus set orig_autohide_delay, but both of those get called when the ols window gets created, so the true orig value ends up getting overwritten with the MAXINT value.
A Possible Fix:1. If the condition for restoring the orig value were "if ( def_toolbar_autohide_delay != orig_autohide_delay
&& def_toolbar_autohide_delay == MAXINT )", then the restore wouldn't overwrite an intentional change the user might have made to the setting while the ols dialog is up.
2. If a boolean is used to guard the orig value (e.g. "is_orig_value_saved"), it can avoid saving the def value multiple times and avoid accidentally overwriting an already-saved value. Should then also check the boolean when determining whether to restore the saved orig value.
See attached file for possible implementation of the possible fix.