take.focus
is TRUE
(the default) the menu shell will take the keyboard
focus so that it will receive all keyboard events which is needed to enable
keyboard navigation in menus.gtkMenuShellSetTakeFocus(object, take.focus)
object
take.focus
TRUE
if the menu shell should take the keyboard focus on popup.take.focus
to FALSE
is useful only for special applications
like virtual keyboard implementations which should not take keyboard
focus.
The take.focus
state of a menu or menu bar is automatically propagated
to submenus whenever a submenu is popped up, so you don't have to worry
about recursively setting it for your entire menu hierarchy. Only when
programmatically picking a submenu and popping it up manually, the
take.focus
property of the submenu needs to be set explicitely.
Note that setting it to FALSE
has side-effects:
If the focus is in some other app, it keeps the focus and keynav in
the menu doesn't work. Consequently,
To avoid confusing the user, menus with take.focus
set to FALSE
should not display mnemonics or accelerators, since it cannot be
guaranteed that they will work.
See also gdkKeyboardGrab
Since 2.8