From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#49997: 27.2; idle-time reset when switching desktop-page Date: Sun, 22 Aug 2021 10:24:15 +0200 Message-ID: References: <87eeb0mkxa.fsf@a16n.net> <83tujwdwe0.fsf@gnu.org> <87sfzakczt.fsf@gnus.org> <83eeauaihs.fsf@gnu.org> <87a6likc5a.fsf@gnus.org> <0e03c073-2678-5f47-1a92-6a585c8dfe19@gmx.at> <87czqbi03a.fsf@a16n.net> <83czqb56i2.fsf@gnu.org> <09998a72-76dc-42a6-dc15-612cbc942863@gmx.at> <83eeao1jmt.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------CD7CF5F8967B50D8C17B1417" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25487"; mail-complaints-to="usenet@ciao.gmane.io" Cc: pm@a16n.net, larsi@gnus.org, 49997@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Aug 22 10:25:14 2021 Return-path: Envelope-to: geb-bug-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 1mHin2-0006PJ-55 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 22 Aug 2021 10:25:12 +0200 Original-Received: from localhost ([::1]:35674 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mHin0-00018U-Uj for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 22 Aug 2021 04:25:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35692) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mHims-00015r-Re for bug-gnu-emacs@gnu.org; Sun, 22 Aug 2021 04:25:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:54831) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mHims-0006tp-JL for bug-gnu-emacs@gnu.org; Sun, 22 Aug 2021 04:25:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mHims-0008VB-Cc for bug-gnu-emacs@gnu.org; Sun, 22 Aug 2021 04:25:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 22 Aug 2021 08:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49997 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: confirmed Original-Received: via spool by 49997-submit@debbugs.gnu.org id=B49997.162962066432611 (code B ref 49997); Sun, 22 Aug 2021 08:25:02 +0000 Original-Received: (at 49997) by debbugs.gnu.org; 22 Aug 2021 08:24:24 +0000 Original-Received: from localhost ([127.0.0.1]:38140 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHimF-0008Tv-VD for submit@debbugs.gnu.org; Sun, 22 Aug 2021 04:24:24 -0400 Original-Received: from mout.gmx.net ([212.227.15.19]:43263) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mHimE-0008Ti-3u for 49997@debbugs.gnu.org; Sun, 22 Aug 2021 04:24:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1629620656; bh=OGoziEWFPDDEqm01iGEOmCGCERVpAsFjwJ9Rf4ET+p8=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=Gm4P41j5M54m2uyfOkMgfi2Z8oUyWp4z5nPpKhTZ2bwlYrMimRSSpF9sTblK7/j/7 OjtDDcBNxa8gcjby1nJhHuRTczSyJkzAQE/KOUdB96Q/TcSe84W8TKkPCOV4AwEfY/ VF4yiuWnRNyKgbGcmb01SmI/3NOmU6p2X39z1eeo= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from [192.168.1.100] ([212.95.5.239]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MnJhO-1mjOY006Mu-00jG2t; Sun, 22 Aug 2021 10:24:16 +0200 In-Reply-To: <83eeao1jmt.fsf@gnu.org> Content-Language: en-US X-Provags-ID: V03:K1:bCc2yZvVKcntsieTyHvD7jWaZtln/Jl1xNvA4L+2lSX1H2vGMRx ScKBdBSrJokZaIUt+Czc2eM5ylJzCm4okFliHE8+mJnvTdqtF9FHDAoxo8REZEZf0NwXLxZ OVsczB+BT/EgoX2SMFpE8E3HWp29PQgbWsRez48l9A6zL7Ek2E7ekGtUheVNzyX0ykxYALj p+2DA/UPU7/Kwvatr74Gg== X-UI-Out-Filterresults: notjunk:1;V03:K0:94FIt/WCefg=:GDQdLdgi2bGUkxq/ZRtKWm ufXHtgSHVpHnylXk2nTfZt4ZGixPvhmIGkUfSf0TRCgVcBHL8VS96ZazeCvnoSAwCipQyORhv f1qPV4ty3YmAEWl9R5uAPZNMzJF4zgd0ZE7TVj2wgkmYH62aYnqkcoywb5E3eca59kBMGdg7f biE3WuBeo7sJC63UT7b3wkhr9RZEA0Q2rrFabr2cLSqKxN05AotLIkLDqX71h0/u/AV4erfXO rNFXWRhVvL1rlxrE9PdEwOxJKJ9pDtDM6kgcmSPO2WxVOJpvNjBapHcn+wU36AjwCd11JkUNo skYugaKe9TD1iF2Fd6UGOPHr1YsGRmil68+wLKWmIQ9lQ5u55o6RKDepiqZokMtL3ehNoIMCU DRMxebx5yJRBi7C6o6VEJKe1NVlcCk+XMSFhR4SweRQvPT840XoJ029kQQN3zdOojSYluhnpF SSUYcigiOrI3kp0g5iqnQUvdGsYw6UF1JXBkvkrf/7xaSZWmR2qqlpQIF1o/8TLgYGA7SDise q/bLOG2e7MfXQVlkHhQ8/PxTVQ7RadkkeLNOAn/chKoWnxFe1tSelAwPoK0xsJRwQoQUThLxS XdEue5E/Ft4JA2KEpjgi9PKCgOxdHf/KHEwxGbmmolneQPUowictEZ/zm9YfP4yrCU6Ye4YHO zGnEgZLhGPNy89sUHud9HIjwk3g0hwWyjWLmMHcHJsG6z89wDp+I6RkZhn7EtA9FF5dBRxWX+ CU91sFRlVCCkgDeYEPfyBXGym3X/4GwyngUmON6zU+qNfZIGlPpUHSH+UB9mpx0nPFzFdrPj X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:212398 Archived-At: This is a multi-part message in MIME format. --------------CD7CF5F8967B50D8C17B1417 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit > If we end up with a list of ignored events, as I think we should, we > should consider making the same list control all of the relevant > features. Not sure whether the attached is what you meant - it's just a first stab in that direction. martin --------------CD7CF5F8967B50D8C17B1417 Content-Type: text/x-patch; name="while-no-input-ignore-events.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="while-no-input-ignore-events.diff" diff --git a/lisp/subr.el b/lisp/subr.el index 0a31ef2b29..f100259e9e 100644 =2D-- a/lisp/subr.el +++ b/lisp/subr.el @@ -4350,11 +4350,6 @@ with-local-quit ;; that intends to handle the quit signal next time. (eval '(ignore nil))))) -;; Don't throw `throw-on-input' on those events by default. -(setq while-no-input-ignore-events - '(focus-in focus-out help-echo iconify-frame - make-frame-visible selection-request)) - (defmacro while-no-input (&rest body) "Execute BODY only as long as there's no pending input. If input arrives, that ends the execution of BODY, diff --git a/src/keyboard.c b/src/keyboard.c index 2e4c4e6aab..48b9904d85 100644 =2D-- a/src/keyboard.c +++ b/src/keyboard.c @@ -2927,20 +2927,8 @@ read_char (int commandflag, Lisp_Object map, last_input_event =3D c; call4 (Qcommand_execute, tem, Qnil, Fvector (1, &last_input_event),= Qt); - if (CONSP (c) - && (EQ (XCAR (c), Qselect_window) - || EQ (XCAR (c), Qfocus_out) -#ifdef HAVE_DBUS - || EQ (XCAR (c), Qdbus_event) -#endif -#ifdef USE_FILE_NOTIFY - || EQ (XCAR (c), Qfile_notify) -#endif -#ifdef THREADS_ENABLED - || EQ (XCAR (c), Qthread_event) -#endif - || EQ (XCAR (c), Qconfig_changed_event)) - && !end_time) + if (CONSP (c) && !NILP (Fmemq (XCAR (c), Vwhile_no_input_ignore_eve= nts)) + && !end_time) /* We stopped being idle for this event; undo that. This prevents automatic window selection (under mouse-autoselect-window) from acting as a real input event, for @@ -11550,6 +11538,27 @@ init_keyboard (void) {SYMBOL_INDEX (Qselect_window), SYMBOL_INDEX (Qswitch_frame)} }; +static Lisp_Object +init_while_no_input_ignore_events (void) +{ + Lisp_Object events =3D listn (9, Qselect_window, Qhelp_echo, Qmove_fram= e, + Qiconify_frame, Qmake_frame_visible, + Qfocus_in, Qfocus_out, Qconfig_changed_event, + Qselection_request); + +#ifdef HAVE_DBUS + events =3D Fcons (Qdbus_event, events); +#endif +#ifdef USE_FILE_NOTIFY + events =3D Fcons (Qfile_notify, events); +#endif +#ifdef THREADS_ENABLED + events =3D Fcons (Qthread_event, events); +#endif + + return events; +} + static void syms_of_keyboard_for_pdumper (void); void @@ -12444,7 +12453,12 @@ syms_of_keyboard (void) DEFVAR_LISP ("while-no-input-ignore-events", Vwhile_no_input_ignore_events, - doc: /* Ignored events from while-no-input. */); + doc: /* Ignored events from while-no-input. +Events in this list do not count as pending input while running +`while-no-input' and do not cause any idle timers to get reset when they +occur. */); + + Vwhile_no_input_ignore_events =3D init_while_no_input_ignore_events (); pdumper_do_now_and_after_load (syms_of_keyboard_for_pdumper); } --------------CD7CF5F8967B50D8C17B1417--