From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Nick Helm Newsgroups: gmane.emacs.bugs Subject: bug#31371: 26.1; Menu-bar stops working after search Date: Sun, 13 May 2018 22:09:06 +1200 Message-ID: References: <20180506101411.GA3327@breton.holly.idiocy.org> <20180508214024.GB13768@breton.holly.idiocy.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1526206093 16500 195.159.176.226 (13 May 2018 10:08:13 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 13 May 2018 10:08:13 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (darwin) Cc: 31371@debbugs.gnu.org To: Alan Third Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun May 13 12:08:08 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fHnvE-0004D9-5S for geb-bug-gnu-emacs@m.gmane.org; Sun, 13 May 2018 12:08:08 +0200 Original-Received: from localhost ([::1]:57382 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fHnxL-0000iI-5k for geb-bug-gnu-emacs@m.gmane.org; Sun, 13 May 2018 06:10:19 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41861) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fHnx9-0000Vc-OZ for bug-gnu-emacs@gnu.org; Sun, 13 May 2018 06:10:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fHnx4-0006Fn-KY for bug-gnu-emacs@gnu.org; Sun, 13 May 2018 06:10:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:52301) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fHnx4-0006FU-D9 for bug-gnu-emacs@gnu.org; Sun, 13 May 2018 06:10:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fHnx4-0006km-1l for bug-gnu-emacs@gnu.org; Sun, 13 May 2018 06:10:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Nick Helm Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 13 May 2018 10:10:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 31371 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 31371-submit@debbugs.gnu.org id=B31371.152620616425905 (code B ref 31371); Sun, 13 May 2018 10:10:01 +0000 Original-Received: (at 31371) by debbugs.gnu.org; 13 May 2018 10:09:24 +0000 Original-Received: from localhost ([127.0.0.1]:60198 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fHnwS-0006jl-LD for submit@debbugs.gnu.org; Sun, 13 May 2018 06:09:24 -0400 Original-Received: from mail-sy3aus01on0113.outbound.protection.outlook.com ([104.47.117.113]:40822 helo=AUS01-SY3-obe.outbound.protection.outlook.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1fHnwQ-0006jX-3a for 31371@debbugs.gnu.org; Sun, 13 May 2018 06:09:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tenpointcomms.onmicrosoft.com; s=selector1-tenpoint-co-nz; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=jaZiEBY7TReM5SZXWDUtZqwXa1VKRw9aaBzJ8xDpmkI=; b=RZROU9QRxwX1mD+UK1oMFzqrBLiDRXGq5Gg9afyUDLDwXoHyJU6c9V0jgX2HOA5o7JEYnWXuQ5fv8XPn8pfRNg/YDtsWVTuvuzwr0OtqF3u+9X50+3xdJqu+kBuUMv/kNilTy0H16l6XqPMyX+4Sk4OjMhQfns2O175loCTYhCI= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=nick@tenpoint.co.nz; Original-Received: from jupiter.local (125.239.171.29) by ME2PR01MB2898.ausprd01.prod.outlook.com (2603:10c6:201:22::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.755.16; Sun, 13 May 2018 10:09:11 +0000 In-Reply-To: <20180508214024.GB13768@breton.holly.idiocy.org> (Alan Third's message of "Tue, 8 May 2018 22:40:24 +0100") X-Originating-IP: [125.239.171.29] X-ClientProxiedBy: SY3PR01CA0121.ausprd01.prod.outlook.com (2603:10c6:0:1a::30) To ME2PR01MB2898.ausprd01.prod.outlook.com (2603:10c6:201:22::15) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(7021125)(5600026)(4534165)(7022125)(4603075)(4627221)(201702281549075)(7048125)(7024125)(7027125)(7028125)(7023125)(2017052603328)(7153060)(49563074)(7193020); SRVR:ME2PR01MB2898; X-Microsoft-Exchange-Diagnostics: 1; ME2PR01MB2898; 3:lGLiZrbZzROgS0bEE9yvnM4oCNpt3mQ1FqqKYpsA8H1q9Yh81WBxDh6ZNnx12ow9YderDkIxLWPg8+VtNqafDY5j/+ZhXqc1nUsNJezXfopYD751u4Ka/QV/F8dO66p4y/oN0LvfuDekZKE5ueJzVxhPWM4HXCW7IncWjrEj5W5wmhUTuP6dlBB3aC9ZHANsVIz0Rpd1zq4fqlj+OGpVRUw0aW13/v4ui0f6hPfmS7HcOEIIL8qdYyU0QLPLFk/z; 25:xSB6cgixodsTiJG3OeA+niY13Cbxiav+FDTz/79oLD0Ilkx4yKv+XU6FMcStCiUHEkOjrQ8Xh076vnQgZCJpKaj6Q5i5RbHsQQYck+4TF6BmPMu8G4THYmTPrFqFUq4x/QFjpKcvVCCtMSD5ePl5DTtQEztbSuNjh+6BGZJ1fEQx4QFMqIQKwxiElMfSpKumbH0+EFClOze5qKZKLHmZ+NrK09xLCqMYvUjQGQfk1fybnQ93JVWBjEqtPZtZchL8e8JhCDOE/mrVs2wZ7WGZ/LMaVvRANwIGElqGykBP6j/JgOIvwEs4C09EwCzpCnZhXBN1/abwC+huYj8Vt7HySw==; 31:ucqs0RS/2jd9+zJL66VTe+z6VrHVzLtOlHEbSrm3jG9FQiG/R9+SqI4/djbHoMMNrjXgwLpvMnDIYjvwmVQxd36K7v1c54ZAkapplNpQAIx2Up+j4szMuWKOC48NxMuDACgUbErudLRz1/x8le0TXMx9jTw/hPrmGAgAowbrPBNZBca4XGT0UAMInIkF1POU/6AoBOWBAcuxMJ2WBnlyPtRC/OIi8GrmxxQSD2vgK X-MS-TrafficTypeDiagnostic: ME2PR01MB2898: X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(102415395)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(93006095)(93001095)(3002001)(10201501046)(149027)(150027)(6041310)(2016111802025)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(6072148)(6043046)(201708071742011); SRVR:ME2PR01MB2898; BCL:0; PCL:0; RULEID:; SRVR:ME2PR01MB2898; X-Microsoft-Exchange-Diagnostics: 1; ME2PR01MB2898; 4:x0+TPwfxgDfbrBQi9Vvs3QF1NuRYUSfkjCIXcchnaJ7WHXf6Dwqgf4yu3PSKjcul+HD6HXngpJqo04TuT2wqQL7krkxQiFEbGrfkF1jjMIHbB56kgzMPEDLxN1FEd7qI5ysXohcgi49JIqohE/7LW4k82mgDNGUe2O+gCcUmzThZ4wvXGrSFW6iH//xZLepZVCDYg2LeF2fRYufF3XNRIWPyHA4APGKZYcouHODuBkyjgqPqYS6ffoUP2b6ZMtXto4LAnFbeW6gkYhkGDsQJqw== X-Forefront-PRVS: 0671F32598 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39380400002)(376002)(346002)(39830400003)(396003)(366004)(189003)(199004)(316002)(59450400001)(16526019)(2906002)(8936002)(53936002)(26005)(486006)(2616005)(476003)(956004)(11346002)(4326008)(568964002)(93886005)(6246003)(386003)(6506007)(446003)(36756003)(68736007)(186003)(76176011)(52116002)(478600001)(66066001)(97736004)(6666003)(6916009)(229853002)(5890100001)(4610100001)(81156014)(81166006)(6486002)(74482002)(84326002)(2476003)(86362001)(16586007)(58126008)(6116002)(105586002)(5660300001)(3846002)(106356001)(305945005)(25786009)(7736002)(6512007)(8676002); DIR:OUT; SFP:1102; SCL:1; SRVR:ME2PR01MB2898; H:jupiter.local; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:3; A:1; Received-SPF: None (protection.outlook.com: tenpoint.co.nz does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; ME2PR01MB2898; 23:6qMnvoa+cpNVRTP/WK7L7xhqAknOD8l9flE0fUDvqeogiAFlFVIqitlivPhKJCNb72BOiHHs9g+qf194BF21lMNZrP0q/G4fIBOJeztlqpQfk8iRdlby8lNkSRKk8qQQMbNN7WbbYCE+267MIi/COJ9AQa/G/9dF50bFL6xLL8iETMgbGf+E3hok84hhQZJ+sC3jcCg1HKhJw2QyCvB3qri444CatG3CVKWo9aySLsQUV9pJFQwYg+RQ/39s4QPyGAlRBcfvqvSDXvH0M2g9b1G9Ey3TmLFi45r0EdBFNNZljdOTzepCg3m9ut8KW8o+PB4G8uPHUfRZ2SpAZX83hBEOT/fca2dAMCKl/Ai3EyZkkr2/Ea5dRwhG36F4CTtj8iccdv1jBBsLnGHwF/Ug7NsWfXLApE+d0DJCTKzszk1mwqfBVpafuwwwf90DV5CnT0MNhpeK9R+XWWz+sGkdoYMqwDx47RWr6bmTuYZyQbnwrgoo7e6wrRuTgC3VA+TlecABINlPpr43wZvXKy+3ueTvtqrXFwdwyJCRgm7IjoN/a1oxtyUnXlZrFunOZwNb8lmfcNnrlRyT9JAmuA0IcdBnjmsBvk7VLlxsZKXoyc0dUZSGqir5xIi1JTa/rtu1mYRR+cMjdypwHlapcOkxAEx7Nc+pzR1xDJ+6VlRcg5HfDplAJlOL5nZaevPiVdmHiYKSaccQ4U4LQpkMylrBoiFEjIoEdggl60ww+PScOYTlYzF11e03FEaxoF/8OYtDUce/cSdCs5BtXLXoEGv+M2XXug6y vjPWMYTpG88cnQyzVTlnYMbKQ+g4aHkwgDTTt4DhJZHtJp X-Microsoft-Antispam-Message-Info: ju3V4Z6852jw4UHAnTHimveaGQMM5mxPTY880I7pPj2OE+ZWMqMU4fJjPSeSLSlDfUGK57Vk5MMkn2BrVEWDjcVNqjw20V8wCYrW/r9UzsIH3YUpbUSKLxOVoDY3LAotoqqtLYwUltkL/gE6lbKKGaSYafG78qM+rKzhb5lMmnWFoyg2ky7D2SlkTyxJtXKB X-Microsoft-Exchange-Diagnostics: 1; ME2PR01MB2898; 6:1V7+EBhZKaueMFBL8oreDVnn/kV5kn1CgUbXWOCUcNp7Jx8S4wXQZaPU5tqLc7HO5PWmojS2DgLT+FJ+MuMyxnqGxhFOf3+c3xAlFJgerXNeaMi/y9ISS6WRsJbHlCuLDf7ND6/wyz8eZpjUXi93blzKhRcmVzFyfwDCp1iKl7NEBk2rx4Xue2cFy9FptLvCrLRXfsWIP1DqlKpXmTU6vdWJERnAT8ENFRIu03OltDt6c5PQHZuqqXBG64qbQ5ggcrwxTF2OSGMRXNa55Azhlqu4iOF8Lc5ul5ikbxFjeSntjGtP/Nh9IyIQ3tjUH1x7mYCqI94/RXuL5Ps9UQ9olzlGIOBcQfIt/hz+wVg4NQjwMnQAWed5JVUE9cW6C/LrF4ftD0VQ1WbIB8JBZl5FjO+xJMaSEdh8r0oVJSmcsZPGNkze+ZPK0qkLWvCuTRkI4hXkag4OTeIwngOE1RIGwg==; 5:kAmOs7zunlD1lAMUQVYXqRPndaCOXyyTHvKDiLWBF+LKJyk6yy1mvjjU7LrSARZs+PDmEGsTzd/kogR8w0tM/O4LKxzCNvOohHONlCQW+S/awcRISu8k2McDVHUT+X4M6uwO9JzTe4xDKnJ+cQ0tZh0K8lUGS1rUbm5njVrOUNc=; 24:uQBrZWmsIUFku9GrRTx1APPi4ft6ISpF3GJWaBkD1gO005GnWQ0uQfbNnWJIBxxylfCXafxRwtWtjW0ek5gDf6JOR/hWpMVysRM2AwnovVg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; ME2PR01MB2898; 7:XKdnIDmdueWs/+Bnp0NRB2LyBmd5m80DOAFe7rnnHYLavY7VlNqu1yCt3PWx+gS6KOvXQLFM/+K8Dc4HPwDGS9pet6tO32dyqIJxNh7+/R7tMg+2lH5OJ9ZMrdn2MRUgHWrZEwLbn4uAKrgd0zP3PhqO2XzmRlyTGeLg/rZOTnqmsN2QyVlI4to4tukYA9J7r9ti7NkkkAam7UocckhgQ4Kex9GcBIFgOZqh3OwtSGsidyEz8i+JhrCzjkvHBdzZ X-MS-Office365-Filtering-Correlation-Id: 1fd63a6f-862d-425e-e6b4-08d5b8b99337 X-OriginatorOrg: tenpoint.co.nz X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2018 10:09:11.8355 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1fd63a6f-862d-425e-e6b4-08d5b8b99337 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: ed686f26-19e8-407b-91d0-7364c1c6f5cf X-MS-Exchange-Transport-CrossTenantHeadersStamped: ME2PR01MB2898 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: 208.118.235.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:146144 Archived-At: --=-=-= Content-Type: text/plain I think I've worked out what's going on here. I've attached a patch - could you give it a try and see if works for you? When the user types in the search field, NSMenu looks for matching candidates by creating events to open each menu, trigger an update and read the results. If the search field already contains text, this happens as soon as the Help menu opens, either when the user clicks Help or mouse drags onto the Help menu. The code in ns_check_menu_open and ns_check_pending_open_menu that postpones mouse clicks (to fetch menus from Lisp) also tries to postpone these drag and search events. When it releases a delayed click on Help (even if the event wasn't a click to begin with), the menu reopens and the process loops. The attached patch gets around this by never postponing mouse drag or non-user mouse down events. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=31371.patch --- a/src/nsterm.m 2018-05-13 16:45:39.000000000 +1200 +++ b/src/nsterm.m 2018-05-13 16:44:31.000000000 +1200 @@ -4299,14 +4299,22 @@ NSEvent *theEvent = [NSApp currentEvent]; struct frame *emacsframe = SELECTED_FRAME (); - [menu cancelTracking]; - menu_will_open_state = MENU_PENDING; - emacs_event->kind = MENU_BAR_ACTIVATE_EVENT; - EV_TRAILER (theEvent); - - CGEventRef ourEvent = CGEventCreate (NULL); - menu_mouse_point = CGEventGetLocation (ourEvent); - CFRelease (ourEvent); + /*On macOS, the following can cause an event loop when the + Spotlight for Help search field is populated. Avoid this by + not postponing mouse drag and non-user-generated mouse down + events. (bug#31371).*/ + if (([theEvent type] == NSEventTypeLeftMouseDown) + && [theEvent eventNumber]) + { + [menu cancelTracking]; + menu_will_open_state = MENU_PENDING; + emacs_event->kind = MENU_BAR_ACTIVATE_EVENT; + EV_TRAILER (theEvent); + + CGEventRef ourEvent = CGEventCreate (NULL); + menu_mouse_point = CGEventGetLocation (ourEvent); + CFRelease (ourEvent); + } } else if (menu_will_open_state == MENU_OPENING) { --=-=-= Content-Type: text/plain On Wed, 09 May 2018 at 09:40:24 +1200, Alan Third wrote: > I notice all this code is cocoa only, though. Makes me wonder why > GNUstep is different. (The menus on GNUstep Emacs are awful, though, > they flicker constantly.) I think Cocoa uses a delegate method to update single submenus which (I've read) isn't supported on GNUStep. This means ns_update_menubar has to recreate every menu on every call (deep_p is always 1). Maybe that has something to do with it? --=-=-=--