focus(3Tk)

focus - Manage the input focus

As shipped in IRIX 6.5.30. Unchanged since IRIX 6.5.

NAME
     focus - Manage the input focus

SYNOPSIS
     focus
     focus window
     focus option ?arg arg ...?


DESCRIPTION
     The focus command is used to manage the Tk input focus.  At any given    |
     time, one window on each display is designated as the focus window;  any |
     key press or key release events for the display are sent to that window. |
     It is normally up to the window manager to redirect the focus among the  |
     top-level windows of a display.  For example, some window managers       |
     automatically set the input focus to a top-level window whenever the     |
     mouse enters it;  others redirect the input focus only when the user     |
     clicks on a window.  Usually the window manager will set the focus only  |
     to top-level windows, leaving it up to the application to redirect the   |
     focus among the children of the top-level.                               |

     Tk remembers one focus window for each top-level (the most recent        |
     descendant of that top-level to receive the focus);  when the window     |
     manager gives the focus to a top-level, Tk automatically redirects it to |
     the remembered window.  Within a top-level Tk uses an explicit focus     |
     model by default.  Moving the mouse within a top-level does not normally |
     change the focus;  the focus changes only when a widget decides          |
     explicitly to claim the focus (e.g., because of a button click), or when |
     the user types a key such as Tab that moves the focus.                   |

     The Tcl procedure tk_focusFollowsMouse may be invoked to create an       |
     implicit focus model:  it reconfigures Tk so that the focus is set to a  |
     window whenever the mouse enters it.  The Tcl procedures tk_focusNext and|
     tk_focusPrev implement a focus order among the windows of a top-level;   |
     they are used in the default bindings for Tab and Shift-Tab, among other |
     things.                                                                  |

     The focus command can take any of the following forms:                   |

     focus                                                                         ||
          Returns the path name of the focus window on the display containing |
          the application's main window,  or an empty string if no window in  |
          this application has the focus on that display.   Note:  it is      |
          better to specify the display explicitly using -displayof (see      |
          below) so that the code will work in applications using multiple    |
          displays.                                                           |

     focus window                                                                  ||
          If the application currently has the input focus on window's        |
          display, this command resets the input focus for window's display to|
          window and returns an empty string.  If the application doesn't     |
          currently have the  input focus on window's display, window will be |
          remembered as the focus for its top-level;  the next time the focus |
          arrives at the top-level, Tk will redirect it to window.  If window |
          is an empty string then the command does nothing.                   |

     focus -displayof window                                                       ||
          Returns the name of the focus window on the display containing      |
          window.  If the focus window for window's display isn't in this     |
          application, the return value is an empty string.                   |

     focus -force window                                                           ||
          Sets the focus of window's display to window, even if the           |
          application doesn't currently have the input focus for the display. |
          This command should be used sparingly, if at all.  In normal usage, |
          an application should not claim the focus for itself;  instead, it  |
          should wait for the window manager to give it the focus.  If window |
          is an empty string then the command does nothing.                   |

     focus -lastfor window                                                         ||
          Returns the name of the most recent window to have the input focus  |
          among all the windows in the same top-level as window.  If no window|
          in that top-level has ever had the input focus, or if the most      |
          recent focus window has been deleted, then the name of the top-level|
          is returned.  The return value is the window that will receive the  |
          input focus the next time the window manager gives the focus to the |
          top-level.                                                          |


QUIRKS                                                                        |
     When an internal window receives the input focus, Tk doesn't actually set|
     the X focus to that window;  as far as X is concerned, the focus will    |
     stay on the top-level window containing the window with the focus.       |
     However, Tk generates FocusIn and FocusOut events just as if the X focus |
     were on the internal window.   This approach gets around a number of     |
     problems that would occur if the X focus were actually moved; the fact   |
     that the X focus is on the top-level is invisible unless you use C code  |
     to query the X server directly.


KEYWORDS
     events, focus, keyboard, top-level, window manager