On Monday, 13 December 2021 at 20:57:09 UTC Mo wrote:
make_modal() just calls Fl_Window::set_modal and set_non_modal depending on the flag.
OK - but for the avoidance of any doubt here, I feel it is worth emphasising that the "modal-ness" of a window has three states, not two, so a binary true/false option may not cover it. Does the Rust port also provide a method to remove the "modality" altogether and set the window back to normal? (cf; Fl_Window::clear_modal_states(); )
For those following along who may be unfamiliar with the (somewhat odd, in my opinion) terminology, it comes out as something like:
modal - a window that remains on top of its parent, and grabs the focus so that all interactions go to that window rather than the parent (menus, alert dialogs, etc.)
non-modal -
a window that remains on top of its parent, but DOES NOT grab the focus so that the parent can still be used (toolboxes, typically and other types of dialog)
normal - a regular window, that does not remain on top or prevent access to its peers: this is the default for a window
So... I'm still not really clear on why Mark had a non-modal window at all; it seemed like a normal window would have been what was wanted?
Anyway, notwithstanding, it sounds like it has been sorted out anyway, which is good.