From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Newsgroups: gmane.emacs.bugs Subject: bug#32864: 26.1; menus don't work correctly in Mac OS Mojave Date: Mon, 3 Jun 2019 19:25:27 +0200 Message-ID: References: Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="64386"; mail-complaints-to="usenet@blaine.gmane.org" Cc: alan@idiocy.org, omari@smileystation.com, artemiog@mac.com, Robert Pluim , simon@simonscientific.com To: 32864@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jun 03 19:36:39 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hXqsw-000GZV-Qi for geb-bug-gnu-emacs@m.gmane.org; Mon, 03 Jun 2019 19:36:39 +0200 Original-Received: from localhost ([127.0.0.1]:38649 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hXqsv-0002kc-Nt for geb-bug-gnu-emacs@m.gmane.org; Mon, 03 Jun 2019 13:36:37 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:47721) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hXqih-0002MD-IX for bug-gnu-emacs@gnu.org; Mon, 03 Jun 2019 13:26:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hXqig-0004dB-Im for bug-gnu-emacs@gnu.org; Mon, 03 Jun 2019 13:26:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:57676) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hXqig-0004c6-2F for bug-gnu-emacs@gnu.org; Mon, 03 Jun 2019 13:26:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hXqif-0006eY-Sc for bug-gnu-emacs@gnu.org; Mon, 03 Jun 2019 13:26:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 03 Jun 2019 17:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 32864 X-GNU-PR-Package: emacs Original-Received: via spool by 32864-submit@debbugs.gnu.org id=B32864.155958273725541 (code B ref 32864); Mon, 03 Jun 2019 17:26:01 +0000 Original-Received: (at 32864) by debbugs.gnu.org; 3 Jun 2019 17:25:37 +0000 Original-Received: from localhost ([127.0.0.1]:42987 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hXqiG-0006dt-PY for submit@debbugs.gnu.org; Mon, 03 Jun 2019 13:25:37 -0400 Original-Received: from mail200c50.megamailservers.eu ([91.136.10.210]:50270 helo=mail193c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hXqiC-0006di-T1 for 32864@debbugs.gnu.org; Mon, 03 Jun 2019 13:25:34 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1559582730; bh=xpIFkg9Yj6U+aQqCd3XLmirkrpVYkX6Jur9eOXJ5ZP0=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=sxyk1T9Iz5w068n2vBpHlP+fUXGT0/r8k+fKNyAvDgewAgyo+Jkf5mzS1/gGd+Ja4 ImqmjHk4T0KuXLH9hiZayPRH9Dd/GyW5bW1asniA6MWWKAypuQlDglKoc1qprMzoNe 0X7vIBFCTupcZxGyVhVtJdZO28HXxaVppNdy3glA= Feedback-ID: mattiase@acm.or Original-Received: from [192.168.1.65] (c-e636e253.032-75-73746f71.bbcust.telenor.se [83.226.54.230]) (authenticated bits=0) by mail193c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id x53HPRRY004044; Mon, 3 Jun 2019 17:25:29 +0000 In-Reply-To: X-Mailer: Apple Mail (2.3445.104.11) X-CTCH-RefID: str=0001.0A0B0204.5CF5580A.005E, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=PM8hB8iC c=1 sm=1 tr=0 a=M+GU/qJco4WXjv8D6jB2IA==:117 a=M+GU/qJco4WXjv8D6jB2IA==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=ArORotC-kKlxFLxh8LIA:9 a=CjuIK1q_8ugA:10 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:160071 Archived-At: Bug explained: When the user clicks on the menu bar, Emacs receives a menuWillOpen: = message, and immediately cancels the menu by sending cancelTracking. It = then returns from the event loop to rebuild the menu, but first = synthesises a mouse click on the menu bar in the hope that this will = make the menu actually open. In MacOS Mojave, synthetic mouse events are blocked for security = reasons, so this no longer works; the synthetic click is discarded and = the menu doesn't open. When the user clicks on the menu bar a second = time, Emacs believes it's the synthetic click that was acted upon and = happily allows the menu to open. So why does Emacs do this to begin with? Because the menu contents are = generated dynamically from elisp code each time. The standard way to do = this in Cocoa is to implement menuNeedsUpdate:, but this requires = running arbitrary elisp code inside the event loop, which is undesirable = for some reason. The workarounds mentioned involved adding Emacs to some sort of = whitelist for legacy applications, but this cannot be a solution. The = synthetic mouse click hack must go away. Could someone explain why, exactly, elisp code cannot be run inside the = event loop? An alternative would be to run elisp code in a different = thread, and let menuNeedsUpdate: block until the menu has been updated. = I'm not sure what the difference would be.