kas-gui / kas

Another GUI toolkit
Apache License 2.0
892 stars 27 forks source link

Events::recurse_range, kas_core::Popup, EventState::depress_with_key #405

Closed dhardy closed 10 months ago

dhardy commented 10 months ago

Add Events::recurse_range and use to restrict both configure and update to (a superset of) visible widgets. As a consequence, hidden widgets may not have a WidgetId assigned, which required a change in the gallery but otherwise appears fine. This could be changed if required.

Add kas_core::Popup widget as the root of all popups (similar to the Window widget). This avoids redundant logic in ComboBox and SubMenu and fixes some things in the gallery's popup. Several more fixes related to popups included (including the annoying mouse focus issue in the gallery's pop-up edit-box).

Rename "accelerator keys" to "access keys" which is a more standard name (the other being mnemonics).

Add EventState::depress_with_key; widgets are now call this explicitly to depress themselves as a result of key-activation. This fixes button-depression on key usage in the calculator and adds it for Tab widgets and Spinner up/down buttons (those need better visuals now).