unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* switch-buffer-hook to catch the switch-event?
@ 2013-02-26  0:41 Thorsten Jolitz
  2013-02-26  3:14 ` Stefan Monnier
       [not found] ` <mailman.20875.1361848468.855.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 6+ messages in thread
From: Thorsten Jolitz @ 2013-02-26  0:41 UTC (permalink / raw)
  To: help-gnu-emacs


Hi List, 

I want to revert a buffer everytime it is switched to (it becomes
current-buffer). Searching the web and the manuals for a related emacs
hook, I found out that someone asked the same question before - but with
no 'positive' answer. 

How can I trigger an action everytime a certain buffer gets the focus
(becomes current-buffer)? Is there no hook for 'switch-buffer' or
something similar?

from: http://emacswiki.org/emacs/SwitchingBuffers
,-------------------------------------------------------------------------
|   Question: Is there a way to find out that the user has switched to a
|   buffer, i.e., someting like switch-to-buffer-hook? The manual seems to
|   say no, which is surprising. I would like to set some frame-specific
|   variables according to the buffer which has been selected….
|   JoergVolbers?
|  
|      If you don’t need to know when the switch was made, and you just
|      need to know the current buffer, use function ‘current-buffer’. You
|      might also want to look at variable ‘major-mode’ and the hooks
|      ‘change-major-mode-hook’ and ‘after-change-major-mode-hook’. The
|      last of these is in Emacs 22 only. – DrewAdams
|  
| Thank you for the fast reply, but what I want to do is to catch, so to
| speak, the switch-event [...]
`-------------------------------------------------------------------------


-- 
cheers,
Thorsten





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: switch-buffer-hook to catch the switch-event?
  2013-02-26  0:41 switch-buffer-hook to catch the switch-event? Thorsten Jolitz
@ 2013-02-26  3:14 ` Stefan Monnier
  2013-02-26  4:23   ` Thorsten Jolitz
       [not found] ` <mailman.20875.1361848468.855.help-gnu-emacs@gnu.org>
  1 sibling, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2013-02-26  3:14 UTC (permalink / raw)
  To: help-gnu-emacs

> How can I trigger an action everytime a certain buffer gets the focus
> (becomes current-buffer)? Is there no hook for 'switch-buffer' or
> something similar?

No, indeed, there isn't.  You can use window-configuration-change-hook
to detect changes within an Emacs frame, but in order to detect focus
changing from/to Emacs to/from other applications you'd additionally
need a focus-hook, but last I checked the corresponding C-level events
are not reliably propagated to Elisp.  Patch welcome.


        Stefan




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: switch-buffer-hook to catch the switch-event?
  2013-02-26  3:14 ` Stefan Monnier
@ 2013-02-26  4:23   ` Thorsten Jolitz
  2013-02-26  5:11     ` Stefan Monnier
  0 siblings, 1 reply; 6+ messages in thread
From: Thorsten Jolitz @ 2013-02-26  4:23 UTC (permalink / raw)
  To: help-gnu-emacs

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> How can I trigger an action everytime a certain buffer gets the focus
>> (becomes current-buffer)? Is there no hook for 'switch-buffer' or
>> something similar?
>
> No, indeed, there isn't.  You can use window-configuration-change-hook
> to detect changes within an Emacs frame, but in order to detect focus
> changing from/to Emacs to/from other applications you'd additionally
> need a focus-hook, but last I checked the corresponding C-level events
> are not reliably propagated to Elisp.  Patch welcome.

window-configuration-change-hook is not exactly what I was looking for,
but in the absence of a more straight-forward solution I'll give it a
try. If the only thing that happens is a 'switch-window or
'switch-buffer command - is that considered a
window-configuration-change and triggers the hook?

-- 
cheers,
Thorsten




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: switch-buffer-hook to catch the switch-event?
  2013-02-26  4:23   ` Thorsten Jolitz
@ 2013-02-26  5:11     ` Stefan Monnier
  0 siblings, 0 replies; 6+ messages in thread
From: Stefan Monnier @ 2013-02-26  5:11 UTC (permalink / raw)
  To: help-gnu-emacs

> try. If the only thing that happens is a 'switch-window or
> 'switch-buffer command - is that considered a
> window-configuration-change and triggers the hook?

I don't know any `switch-window' command, but for `switch-to-buffer',
the hook is definitely triggered.


        Stefan





^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: switch-buffer-hook to catch the switch-event?
       [not found] ` <mailman.20875.1361848468.855.help-gnu-emacs@gnu.org>
@ 2013-02-26 19:46   ` Sean McAfee
  2013-02-26 23:38     ` Thorsten Jolitz
  0 siblings, 1 reply; 6+ messages in thread
From: Sean McAfee @ 2013-02-26 19:46 UTC (permalink / raw)
  To: help-gnu-emacs

Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> How can I trigger an action everytime a certain buffer gets the focus
>> (becomes current-buffer)? Is there no hook for 'switch-buffer' or
>> something similar?

> No, indeed, there isn't.

Hmm!  It seems dired-auto-revert-buffer doesn't do what I always assumed
it did.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: switch-buffer-hook to catch the switch-event?
  2013-02-26 19:46   ` Sean McAfee
@ 2013-02-26 23:38     ` Thorsten Jolitz
  0 siblings, 0 replies; 6+ messages in thread
From: Thorsten Jolitz @ 2013-02-26 23:38 UTC (permalink / raw)
  To: help-gnu-emacs

Sean McAfee <eefacm@gmail.com> writes:

> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> How can I trigger an action everytime a certain buffer gets the focus
>>> (becomes current-buffer)? Is there no hook for 'switch-buffer' or
>>> something similar?
>
>> No, indeed, there isn't.
>
> Hmm!  It seems dired-auto-revert-buffer doesn't do what I always assumed
> it did.

But dired-auto-revert-buffer is a defcustom (variable), I wonder how the
switch-to-buffer event is actually tracked? I searched around a bit in
dired.el, but couldn't find an obvious answer.

-- 
cheers,
Thorsten




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-02-26 23:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-02-26  0:41 switch-buffer-hook to catch the switch-event? Thorsten Jolitz
2013-02-26  3:14 ` Stefan Monnier
2013-02-26  4:23   ` Thorsten Jolitz
2013-02-26  5:11     ` Stefan Monnier
     [not found] ` <mailman.20875.1361848468.855.help-gnu-emacs@gnu.org>
2013-02-26 19:46   ` Sean McAfee
2013-02-26 23:38     ` Thorsten Jolitz

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).