From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Brian Jenkins Newsgroups: gmane.emacs.devel Subject: [PATCH] frame.c: focus hooks Date: Sun, 17 Nov 2013 12:50:26 -0500 Message-ID: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=047d7b6d8d96e3f7aa04eb631177 X-Trace: ger.gmane.org 1384710643 2567 80.91.229.3 (17 Nov 2013 17:50:43 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 17 Nov 2013 17:50:43 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Nov 17 18:50:49 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Vi6Ui-0002QG-K3 for ged-emacs-devel@m.gmane.org; Sun, 17 Nov 2013 18:50:48 +0100 Original-Received: from localhost ([::1]:39830 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vi6Ui-0003X7-75 for ged-emacs-devel@m.gmane.org; Sun, 17 Nov 2013 12:50:48 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53635) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vi6Ue-0003X0-I2 for emacs-devel@gnu.org; Sun, 17 Nov 2013 12:50:45 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Vi6Ud-0007eZ-N1 for emacs-devel@gnu.org; Sun, 17 Nov 2013 12:50:44 -0500 Original-Received: from mail-pa0-x232.google.com ([2607:f8b0:400e:c03::232]:46950) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Vi6Ud-0007eG-9G for emacs-devel@gnu.org; Sun, 17 Nov 2013 12:50:43 -0500 Original-Received: by mail-pa0-f50.google.com with SMTP id kp14so4134616pab.9 for ; Sun, 17 Nov 2013 09:50:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:content-type; bh=lkFKJ/VuF9NJwBJmSas42x/WxoV2xc4fyCoOnA3cPnI=; b=hXIYQsYDD5l9nKZlvYHMRMGfbUtQCLOf5FgGHEu54tx+W68sXsWORhHWYmPcz2x+bE Ljsqojdoa0CCfzjiXFRcmuXBXlpOSwNolt81utFpclVX+5Jlz+LXkcovnRDd/7WGvXOV +S2IoC8XlWD3ML5UsXmTv+w3M+dOTcu7GQ3P5A4EaS34lYNJkZ6X/Qy3SLUasx6F2gah 3i/eszTZne1eN3mEBSl2pE9vdD0x1jM6v0FxzFnXIDsWnxlJKuH6wJ4oO1MY105eGjdb MvtHgwvM94Xi5YM5gxyH0x2VVuCgUrP2OcTBRHzHqUegk8tMLI9n9XyHIenOmscr5xhi NOQA== X-Received: by 10.68.178.229 with SMTP id db5mr2992327pbc.97.1384710641275; Sun, 17 Nov 2013 09:50:41 -0800 (PST) Original-Received: by 10.68.29.202 with HTTP; Sun, 17 Nov 2013 09:50:26 -0800 (PST) X-Google-Sender-Auth: duXmb4GF1Dz0cnXOswgdl5ULk40 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:400e:c03::232 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:165300 Archived-At: --047d7b6d8d96e3f7aa04eb631177 Content-Type: multipart/alternative; boundary=047d7b6d8d96e3f7a704eb631175 --047d7b6d8d96e3f7a704eb631175 Content-Type: text/plain; charset=ISO-8859-1 Hello. 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. Best, Brian Jenkins --047d7b6d8d96e3f7a704eb631175 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hello.

I'd like to contr= ibute the attached patch, which adds hooks into gain and
loss of = focus events.

This allows saving all buffers on lo= ss of focus. =A0(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 ho= oks.

Best,
Brian Jenkins
--047d7b6d8d96e3f7a704eb631175-- --047d7b6d8d96e3f7aa04eb631177 Content-Type: application/octet-stream; name="focus-hooks.patch" Content-Disposition: attachment; filename="focus-hooks.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ho4kv1uy0 ZGlmZiAtLWdpdCBhL3NyYy9mcmFtZS5jIGIvc3JjL2ZyYW1lLmMKaW5kZXggNDQ5NGVkZGEuLjZj ODliN2UgMTAwNjQ0Ci0tLSBhL3NyYy9mcmFtZS5jCisrKyBiL3NyYy9mcmFtZS5jCkBAIC0xMDks NiArMTA5LDggQEAgTGlzcF9PYmplY3QgUWFscGhhOwogCiBMaXNwX09iamVjdCBRZmFjZV9zZXRf YWZ0ZXJfZnJhbWVfZGVmYXVsdDsKIAorc3RhdGljIExpc3BfT2JqZWN0IFFmb2N1c19pbl9ob29r Oworc3RhdGljIExpc3BfT2JqZWN0IFFmb2N1c19vdXRfaG9vazsKIHN0YXRpYyBMaXNwX09iamVj dCBRZGVsZXRlX2ZyYW1lX2Z1bmN0aW9uczsKIAogc3RhdGljIExpc3BfT2JqZWN0IFFnZW9tZXRy eSwgUXdvcmthcmVhLCBRbW1fc2l6ZSwgUWZyYW1lcywgUXNvdXJjZTsKQEAgLTg5Myw2ICs4OTUs NyBAQCBpcyBub3QgZ2VuZXJhdGVkLgogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgYmxpbmstY3Vy c29yIHRpbWVycyBzaG91bGQgYmUgdHVybmVkIG9uIGFnYWluLiAgKi8pCiAgIChMaXNwX09iamVj dCBldmVudCkKIHsKKyAgRnJ1bl9ob29rcyAoMSwgJlFmb2N1c19pbl9ob29rKTsKICAgcmV0dXJu IGNhbGwwIChpbnRlcm4gKCJibGluay1jdXJzb3ItY2hlY2siKSk7CiB9CiAKQEAgLTkwMyw2ICs5 MDYsNyBAQCBGb2N1cyBvdXQgZXZlbnRzIG9jY3VyIHdoZW4gbm8gZnJhbWUgaGFzIGZvY3VzLgog VGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgYmxpbmstY3Vyc29yIHRpbWVycyBzaG91bGQgYmUgdHVy bmVkIG9mZi4gICovKQogICAoTGlzcF9PYmplY3QgZXZlbnQpCiB7CisgIEZydW5faG9va3MgKDEs ICZRZm9jdXNfb3V0X2hvb2spOwogICByZXR1cm4gY2FsbDAgKGludGVybiAoImJsaW5rLWN1cnNv ci1zdXNwZW5kIikpOwogfQogCkBAIC00NDY1LDYgKzQ0NjksMTYgQEAgd2hlbiB0aGUgbW91c2Ug aXMgb3ZlciBjbGlja2FibGUgdGV4dC4gICovKTsKIFRoZSBwb2ludGVyIGJlY29tZXMgdmlzaWJs ZSBhZ2FpbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZC4gICovKTsKICAgVm1ha2VfcG9pbnRlcl9p bnZpc2libGUgPSBRdDsKIAorICBERUZWQVJfTElTUCAoImZvY3VzLWluLWhvb2siLCBWZm9jdXNf aW5faG9vaywKKyAgICAgICAgICAgICAgIGRvYzogLyogTm9ybWFsIGhvb2sgcnVuIHdoZW4gYSBm cmFtZSBnYWlucyBpbnB1dCBmb2N1cy4qLyk7CisgIFZmb2N1c19pbl9ob29rID0gUW5pbDsKKyAg REVGU1lNIChRZm9jdXNfaW5faG9vaywgImZvY3VzLWluLWhvb2siKTsKKworICBERUZWQVJfTElT UCAoImZvY3VzLW91dC1ob29rIiwgVmZvY3VzX291dF9ob29rLAorICAgICAgICAgICAgICAgZG9j OiAvKiBOb3JtYWwgaG9vayBydW4gd2hlbiBhIGZyYW1lIGxvc2VzIGlucHV0IGZvY3VzLiovKTsK KyAgVmZvY3VzX291dF9ob29rID0gUW5pbDsKKyAgREVGU1lNIChRZm9jdXNfb3V0X2hvb2ssICJm b2N1cy1vdXQtaG9vayIpOworCiAgIERFRlZBUl9MSVNQICgiZGVsZXRlLWZyYW1lLWZ1bmN0aW9u cyIsIFZkZWxldGVfZnJhbWVfZnVuY3Rpb25zLAogCSAgICAgICBkb2M6IC8qIEZ1bmN0aW9ucyBy dW4gYmVmb3JlIGRlbGV0aW5nIGEgZnJhbWUuCiBUaGUgZnVuY3Rpb25zIGFyZSBydW4gd2l0aCBv bmUgYXJnLCB0aGUgZnJhbWUgdG8gYmUgZGVsZXRlZC4K --047d7b6d8d96e3f7aa04eb631177--