emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: request: make-frame-visible hook


From: John J Foerch
Subject: Re: request: make-frame-visible hook
Date: Wed, 18 Feb 2009 12:14:06 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

Richard M Stallman <address@hidden> writes:
>       The make-frame-visible
>     event is very useful for, e.g. updating buffer-tracking notification in
>     modules like erc-track (in erc)
>
> Could you explain why it is useful to keep track of which frames
> are visible?
>
>                                   or tracking (in circe) when a frame is
>     made visible because of changing desktops/workspaces in a window
>     manager.
>
> Could you explain what that means?  Why does changing desktops affect
> frame visibility?  The window manager I use (a common one) offers 4
> desktops in parallel, but I don't think switching between them has any
> effect on Emacs frame visibility, because the frames on other desktops
> are nonetheless visible.


Hi Richard,

  Certainly.  Let me answer your second question first.  I'm using the
window manager XMonad, and when I switch to a workspace containing some
emacs frame, the make-frame-visible event is fired for that frame.  I
did not realize other WMs did not necessarily work the same way.

  I have used the emacs irc clients Circe and Erc, which both provide
modes to track activity in hidden irc buffers.  "Hidden" may mean a
buffer that is not visible in any frame, or a buffer shown in a
non-visible frame.  The irc channels with new activity are indicated in
the mode-line.  Switching to a tracked buffer removes that buffer's
indicator from the mode-line.

  What I would like to achieve is to have the make-frame-visible event
trigger an update of the tracking indicator, so that when I switch to a
workspace which contains an emacs frame in which a tracked buffer is
visible, the indicator for that buffer will be removed from the
mode-line tracking indicator.

  I have been able to get this effect in the past by registering a
handler in special-event-map, but that method is not good, because other
modules (like dframe) put their own handlers on the same event.

Thank you.

-- 
John Foerch





reply via email to

[Prev in Thread] Current Thread [Next in Thread]