From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.help Subject: Re: Ignore spurious focus events for =?utf-8?Q?=E2=80=98after-foc?= =?utf-8?Q?us-change-function=E2=80=99?= Date: Sat, 16 Jan 2021 09:02:00 +0200 Message-ID: <83h7nh9xg7.fsf@gnu.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="18971"; mail-complaints-to="usenet@ciao.gmane.io" To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jan 16 08:02:51 2021 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l0fbn-0004qc-8M for geh-help-gnu-emacs@m.gmane-mx.org; Sat, 16 Jan 2021 08:02:51 +0100 Original-Received: from localhost ([::1]:52378 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l0fbm-0006UB-Ae for geh-help-gnu-emacs@m.gmane-mx.org; Sat, 16 Jan 2021 02:02:50 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:56134) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l0fb3-0006U5-DM for help-gnu-emacs@gnu.org; Sat, 16 Jan 2021 02:02:05 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:50243) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l0fb3-0000rb-5O for help-gnu-emacs@gnu.org; Sat, 16 Jan 2021 02:02:05 -0500 Original-Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:2381 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1l0fax-0000FV-5s for help-gnu-emacs@gnu.org; Sat, 16 Jan 2021 02:02:00 -0500 In-Reply-To: (message from Andrea Greselin on Fri, 15 Jan 2021 21:26:32 +0100) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:127272 Archived-At: > From: Andrea Greselin > Date: Fri, 15 Jan 2021 21:26:32 +0100 > > My question is, how do I "'debounce' any user-visible updates arising > from focus changes"? I made a couple of attempts, with > > (defun focus-test () > (sit-for 0) > (message "ffs: %s" (frame-focus-state))) > > and > > (defun payload (_window) > (message "ffs: %s" (frame-focus-state)) > (remove-hook 'pre-redisplay-functions #'payload)) > (defun focus-test () > (add-hook 'pre-redisplay-functions #'payload)) > (add-function :after after-focus-change-function #'focus-test) > > but it didn't work. What do you want to accomplish, and how did it not work? In any case, I very much doubt that "deferring work until redisplay" meant that you should _trigger_ redisplay by calling sit-for. It probably meant running your code from some hook called by redisplay, or something similar.