GNU bug report logs -
#7381
24.0.50; Provide a hook run when a window is selected
Previous Next
Reported by: Štěpán Němec <stepnem <at> gmail.com>
Date: Fri, 12 Nov 2010 00:12:02 UTC
Severity: wishlist
Merged with 16436
Found in version 24.0.50
Fixed in version 27.1
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #11 received at 7381 <at> debbugs.gnu.org (full text, mbox):
> Use case: I wanted to make myself a command to select the last selected
> window (i.e., repeating the command would toggle between two windows).
>
> After some head-scratching, the best I could come up with is this:
>
> (defun .goto-mru-window ()
> (interactive)
> (select-window (frame-parameter nil '.last-selected-window)))
>
> (defadvice select-window (before .save-selected-window activate)
> (set-frame-parameter nil '.last-selected-window (selected-window)))
>
> ...which seems to work most of the time, but using an advice doesn't
> feel that great, esp. with C functions.
You might want to have a look at my window-pub branch. It has
window-use-time is a built-in function in `window.c'.
(window-use-time &optional WINDOW)
Return WINDOW's use time.
WINDOW defaults to the selected window. The window with the highest use
time is the most recently selected one. The window with the lowest use
time is the least recently selected one.
and
get-mru-window is a compiled Lisp function in `window.el'.
(get-mru-window &optional ALL-FRAMES)
Return the most recently used window on frames specified by ALL-FRAMES.
Do not return a minibuffer window.
The following non-nil values of the optional argument ALL-FRAMES
have special meanings:
- t means consider all windows on all existing frames.
- `visible' means consider all windows on all visible frames.
- 0 (the number zero) means consider all windows on all visible
and iconified frames.
- A frame means consider all windows on that frame only.
Any other value of ALL-FRAMES means consider all windows on the
selected frame and no others.
martin
This bug report was last modified 6 years and 136 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.