unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
Subject: elisp's frames.texi.  Add doc for `select-frame-set-input-focus', etc.
Date: Sat, 3 Jul 2004 14:56:42 +0000 (GMT)	[thread overview]
Message-ID: <Pine.LNX.3.96.1040703142341.787A-100000@acm.acm> (raw)

Hi, everybody!

Had problems finding the function `select-frame-set-input-focus', an
essential function for switching frames on a windowing system by any
method other than mouse clicks.  Currently, the only way to find it is to
bring up the source for `other-frame' in frame.el.  What makes it even
more confusing is that `select-frame' works fine on a text-terminal, but
has no apparent effect on a windowing system.

Thus the following patch to elisp's frames.texi.  This file made reference
to a mysterious function `switch-frame', which I assume ought to have
been `select-frame'.  Also, _every_ frame on a tty gets a frame number
(such as "F2"), not just the second and subsequent ones.  I also took the
liberty of doing a little tidying up of the tty paragraph in the `select
frame' description.  I found the existing version a little confusing, in
that it wasn't too clear that the second sentence was continuing to refer
only to ttys.


2004-07-03  Alan Mackenzie  <acm@muc.de>

	* frames.texi (Input Focus): Add documentation for
	select-frame-set-input-focus.  Replace refs to non-existent
	`switch-frame' with `select-frame'.  Minor corrections and tidying
	up of text-only terminal stuff.


*** frames-1.72.texi	Sat Jul  3 08:18:40 2004
--- frames-1.72.acm.texi	Sat Jul  3 14:22:34 2004
***************
*** 1,6 ****
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
! @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002
  @c   Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../info/frames
--- 1,6 ----
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
! @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2002, 2004
  @c   Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../info/frames
***************
*** 996,1014 ****
  Some window systems and window managers direct keyboard input to the
  window object that the mouse is in; others require explicit clicks or
  commands to @dfn{shift the focus} to various window objects.  Either
! way, Emacs automatically keeps track of which frame has the focus.
  
  Lisp programs can also switch frames ``temporarily'' by calling the
  function @code{select-frame}.  This does not alter the window system's
  concept of focus; rather, it escapes from the window manager's control
  until that control is somehow reasserted.
  
! When using a text-only terminal, only the selected terminal frame is
! actually displayed on the terminal.  @code{switch-frame} is the only way
! to switch frames, and the change lasts until overridden by a subsequent
! call to @code{switch-frame}.  Each terminal screen except for the
! initial one has a number, and the number of the selected frame appears
! in the mode line before the buffer name (@pxref{Mode Line Variables}).
  
  @c ??? This is not yet implemented properly.
  @defun select-frame frame
--- 996,1023 ----
  Some window systems and window managers direct keyboard input to the
  window object that the mouse is in; others require explicit clicks or
  commands to @dfn{shift the focus} to various window objects.  Either
! way, Emacs automatically keeps track of which frame has the focus.  To
! switch to a different frame from a lisp function, call
! @code{select-frame-set-input-focus}.
  
  Lisp programs can also switch frames ``temporarily'' by calling the
  function @code{select-frame}.  This does not alter the window system's
  concept of focus; rather, it escapes from the window manager's control
  until that control is somehow reasserted.
  
! When using a text-only terminal, only one frame can be displayed at a
! time on the terminal, so @code{select-frame} actually displays the
! newly selected frame.  This frame remains displayed until a subsequent
! call to @code{select-frame} or @code{select-frame-set-input-focus}.
! Each terminal frame has a number which appears in the mode line before
! the buffer name (@pxref{Mode Line Variables}).
! 
! @defun select-frame-set-input-focus frame
! This function makes FRAME the selected frame, raises it (should it
! happen to be obscured by other frames) and tries to give it the X
! server's focus.  On a text-only terminal, the new frame gets displayed
! on the entire terminal screen.
! @end defun
  
  @c ??? This is not yet implemented properly.
  @defun select-frame frame


-- 
Alan Mackenzie (Munich, Germany)
acm@muc.de

             reply	other threads:[~2004-07-03 14:56 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-03 14:56 Alan Mackenzie [this message]
2004-07-04 17:03 ` elisp's frames.texi. Add doc for `select-frame-set-input-focus', etc Richard Stallman
2004-07-04 18:27   ` Luc Teirlinck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.3.96.1040703142341.787A-100000@acm.acm \
    --to=acm@muc.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).