From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Marcin Borkowski Newsgroups: gmane.emacs.help Subject: Re: How to determine (from Elisp) whether the Emacs frame has focus? Date: Sat, 14 Nov 2015 13:34:06 +0100 Message-ID: <871tbsbw01.fsf@mbork.pl> References: <87fv09o9p5.fsf@mbork.pl> <83twopdmz4.fsf@gnu.org> <83d1vcexdp.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1447526756 18846 80.91.229.3 (14 Nov 2015 18:45:56 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 14 Nov 2015 18:45:56 +0000 (UTC) Cc: help-gnu-emacs@gnu.org To: Eli Zaretskii Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sat Nov 14 19:45:47 2015 Return-path: Envelope-to: geh-help-gnu-emacs@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 1Zxfpa-0007ts-QU for geh-help-gnu-emacs@m.gmane.org; Sat, 14 Nov 2015 19:45:46 +0100 Original-Received: from localhost ([::1]:36572 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zxfpa-0004OT-0U for geh-help-gnu-emacs@m.gmane.org; Sat, 14 Nov 2015 13:45:46 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50110) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zxa2D-0000tL-Q7 for help-gnu-emacs@gnu.org; Sat, 14 Nov 2015 07:34:26 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zxa2C-0002qo-Od for help-gnu-emacs@gnu.org; Sat, 14 Nov 2015 07:34:25 -0500 Original-Received: from mail.mojserwer.eu ([2a01:5e00:2:52::8]:52642) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zxa27-0002qE-Hr; Sat, 14 Nov 2015 07:34:19 -0500 Original-Received: from localhost (localhost [127.0.0.1]) by mail.mojserwer.eu (Postfix) with ESMTP id A502B8F201B; Sat, 14 Nov 2015 13:34:15 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at mail.mojserwer.eu Original-Received: from mail.mojserwer.eu ([127.0.0.1]) by localhost (mail.mojserwer.eu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2A4E+ey1THrW; Sat, 14 Nov 2015 13:34:12 +0100 (CET) Original-Received: from localhost (unknown [109.232.24.28]) by mail.mojserwer.eu (Postfix) with ESMTPSA id 83CC88F201A; Sat, 14 Nov 2015 13:34:11 +0100 (CET) User-agent: mu4e 0.9.15; emacs 25.0.50.1 In-reply-to: <83d1vcexdp.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a01:5e00:2:52::8 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:108067 Archived-At: On 2015-11-14, at 10:36, Eli Zaretskii wrote: >> From: Random832 >> Date: Sat, 14 Nov 2015 03:36:03 -0500 >> >> Eli Zaretskii writes: >> > I'm probably missing something very important, because I don't >> > understand what you are looking for. The selected frame by definition >> > has focus, at least AFAIK. What am I missing? >> >> Well that may be true who never leave their Emacs instance, but for the >> rest of us some non-Emacs application might have focus instead. > > Ah, so he meant detect when some other application has focus? That's > what I was missing, thanks. > > Then I don't understand why the solution of focus-in/out-hook was > rejected as "hackish". These hooks are there precisely for situations > like these, AFAIK. IMO, there's nothing hackish about that. AFAIU, these hooks are best suited to situations like "run LaTeX on switching to a pdf viewer". That does not require global variables; my use case does. Would it be possible to introduce a function like (emacs-has-focus-p) for that? Would it make sense? >> (Also I suspect by "selected" he meant a frame the programmer "selects" >> to pass in to e.g. a function that answers the question, rather than >> selected-frame.) > > I indeed feel there might still be aspects of the original question > that need to be further clarified. For starters, I only want to know whether it is Emacs which has focus or not. Then, I would like to know e.g. the mode of the current buffer; in that case, I'm not sure what I should do when the current buffer is the minibuffer or something. But this is less important for me now. Best, -- Marcin Borkowski http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski Faculty of Mathematics and Computer Science Adam Mickiewicz University