Hi,

On Tue, 19 Sep 2023 09:34:34 +0000
Vasilis Vlachoudis <vasilis.vlachou...@cern.ch> wrote:

> Using column breaks and sub-menus, makes navigation with the mouse
> almost impossible. e.g. with the code below
>
>   *   open the menu
>   *   hover the mouse over "one"
>   *   hover the mouse over "Item #40"
>   *   <Left-mouse-click> to select the submenu
>   *   ... try to select in the new submenu "Item #40 : 2" with the mouse
>
> I cannot, since when I hover the mouse over the other items their
> respective submenu opens. I can only selected it with the keyboard.

you can avoid this by calling

    root.option_add('*Menu.clickToFocus', '1')

immediately after creating the main Tk window. This doesn't seem to be
documented, you can find the option in menu.tcl though.
It is in the following code block in the Tk function ::tk::MenuMotion :


            set mode [option get $menu clickToFocus ClickToFocus]
            if {[string is false $mode]} {
                set delay [expr {[$menu cget -type] eq "menubar" ? 0 : 50}]
                if {[$menu type $index] eq "cascade"} {
                    set Priv(menuActivatedTimer) \
                        [after $delay [list $menu postcascade active]]
                } else {
                    set Priv(menuDeactivatedTimer) \
                        [after $delay [list $menu postcascade none]]
                }



So you see, if clickToFocus evaluates True, the call to postcascade does not 
occur.

Have a nice day,

Michael
_______________________________________________
Tkinter-discuss mailing list
Tkinter-discuss@python.org
https://mail.python.org/mailman/listinfo/tkinter-discuss

Reply via email to