unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Brian Jenkins <brian@brianjenkins.org>
To: Drew Adams <drew.adams@oracle.com>
Cc: emacs-devel <emacs-devel@gnu.org>
Subject: Re: [PATCH] frame.c: focus hooks
Date: Mon, 18 Nov 2013 08:24:25 -0500	[thread overview]
Message-ID: <CADTx1Oz6T_mmDdPhEYhRwEgsucXjLxZwPkCvArejLj13De9gpg@mail.gmail.com> (raw)
In-Reply-To: <183af97b-53d1-45b8-8a24-5ab6bd84f362@default>

[-- Attachment #1: Type: text/plain, Size: 1728 bytes --]

Hi, Drew.

Thanks for the feedback.

Unfortunately, no.  The "focus in" and "focus out" events in Emacs fire
per frame.  So alt-tabbing between Emacs frames will trigger a focus loss
event for the origin frame and focus gain for the destination frame

Initially I tried hacking in at the terminal level (nsterm.c, xterm.c,
and w32term.c) but I had difficulty figuring out how application
(opposed to frame) focus works under X.  It's not clear to me that X
itself even *has* a concept of "active application" distinct from "frame
that has input focus".  (Perhaps this concept exists at the window
manager level, but there are a lot of window managers...) I'm not even a
beginner at X programming, though, so maybe someone could point me in
the right direction?

The convenient thing about patching into the "focus in" and "focus out"
events is that they live up in frame.c, which appears to be
cross-platform.

Best,
Brian


On Sun, Nov 17, 2013 at 5:33 PM, Drew Adams <drew.adams@oracle.com> wrote:

> > I'd like to contribute the attached patch, which adds hooks into
> > gain and loss of focus events.
> >
> > This allows saving all buffers on loss of focus.  (Alt-tabbing
> > between an editor and browser is a popular workflow for web
> > programmers.)
> >
> > It also allows reversion of buffers on regain of focus, convenient
> > if one is switching between Emacs and another editor.
> >
> > People will probably find other handy uses for these hooks.
>
> Sounds useful.
>
> Is this only for a focus switch between Emacs (any frame) and some
> other application?  Or is it also for a focus switch from one Emacs
> frame to another.
>
> (I hope it is the former, which is what you describe in your example
> use cases.)
>

[-- Attachment #2: Type: text/html, Size: 2497 bytes --]

  reply	other threads:[~2013-11-18 13:24 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-17 17:50 [PATCH] frame.c: focus hooks Brian Jenkins
2013-11-17 18:29 ` Bozhidar Batsov
2013-11-17 22:25   ` Brian Jenkins
2013-11-17 22:33     ` Drew Adams
2013-11-18 13:24       ` Brian Jenkins [this message]
2013-11-18 14:53         ` Drew Adams
2013-11-19  0:19         ` Stefan Monnier
2013-11-19  8:26         ` Stephen J. Turnbull
2013-11-19 14:10           ` Bozhidar Batsov
2013-11-20  3:10             ` Brian Jenkins
2013-11-18  8:20     ` Bozhidar Batsov
2013-11-18 13:32   ` Stefan Monnier
     [not found]     ` <CAM9Zgm18uL7+PJ+60NjZqtjZJ6tUV77xUbFhXh7UPwqs==1=hg@mail.gmail.com>
2013-11-18 14:20       ` Fwd: " Bozhidar Batsov
2013-11-18 14:23     ` Brian Jenkins
2013-11-18 18:44   ` Richard Stallman
2013-11-18 19:49     ` Brian Jenkins
2013-11-19  6:02       ` Richard Stallman
2013-11-19 18:14         ` Brian Jenkins
2013-11-19 18:53           ` Drew Adams
2013-11-20  0:52             ` Brian Jenkins
2013-11-19 23:42           ` Richard Stallman
2013-11-20  0:52             ` Josh
2013-11-20  3:16               ` Stefan Monnier
2013-11-20  3:36                 ` Josh
2013-11-20  7:34                   ` martin rudalics
2014-01-09 17:01                     ` Josh
2014-01-11 10:25                       ` martin rudalics
2014-01-11 19:05                         ` Josh
2014-01-12  9:54                           ` martin rudalics
2014-01-14 17:30                             ` Josh
2014-01-14 18:10                               ` martin rudalics
2014-01-10 17:31                   ` Stefan Monnier
2014-01-11 19:06                     ` Josh
2013-11-20  0:53             ` Brian Jenkins
2013-11-20  7:46               ` Jarek Czekalski
2013-11-17 19:28 ` Glenn Morris
2013-11-17 21:19 ` Stefan Monnier
2013-11-18  4:11 ` Leo Liu
     [not found]   ` <CADTx1Oy5pUmb9sPU6jm0yt1hJtvgJmfDtZQpeFakmHknhEXE=A@mail.gmail.com>
2013-11-18 13:33     ` Fwd: " Brian Jenkins

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=CADTx1Oz6T_mmDdPhEYhRwEgsucXjLxZwPkCvArejLj13De9gpg@mail.gmail.com \
    --to=brian@brianjenkins.org \
    --cc=drew.adams@oracle.com \
    --cc=emacs-devel@gnu.org \
    /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).