From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Alan Third Newsgroups: gmane.emacs.bugs Subject: bug#28620: Interact directly on Emacs bug#28620: mouse drag event records wrong release window Date: Tue, 3 Oct 2017 23:40:17 +0100 Message-ID: <20171003224017.GA51637@breton.holly.idiocy.org> References: <83wp4e3nvx.fsf@gnu.org> <8360bx340d.fsf@gnu.org> <8360bw19es.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1507070476 26607 195.159.176.226 (3 Oct 2017 22:41:16 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 3 Oct 2017 22:41:16 +0000 (UTC) User-Agent: Mutt/1.9.0 (2017-09-02) Cc: 28620@debbugs.gnu.org To: rswgnu@gmail.com Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Oct 04 00:41:05 2017 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 1dzVs8-0005mj-Fe for geb-bug-gnu-emacs@m.gmane.org; Wed, 04 Oct 2017 00:41:04 +0200 Original-Received: from localhost ([::1]:60541 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dzVsG-00062c-0I for geb-bug-gnu-emacs@m.gmane.org; Tue, 03 Oct 2017 18:41:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57098) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dzVsA-00062V-N7 for bug-gnu-emacs@gnu.org; Tue, 03 Oct 2017 18:41:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dzVs6-0002Jy-Oe for bug-gnu-emacs@gnu.org; Tue, 03 Oct 2017 18:41:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:38292) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dzVs6-0002Js-JX for bug-gnu-emacs@gnu.org; Tue, 03 Oct 2017 18:41:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dzVs6-00033a-43 for bug-gnu-emacs@gnu.org; Tue, 03 Oct 2017 18:41:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Alan Third Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 03 Oct 2017 22:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28620 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 28620-submit@debbugs.gnu.org id=B28620.150707043011698 (code B ref 28620); Tue, 03 Oct 2017 22:41:02 +0000 Original-Received: (at 28620) by debbugs.gnu.org; 3 Oct 2017 22:40:30 +0000 Original-Received: from localhost ([127.0.0.1]:46972 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dzVra-00032b-EB for submit@debbugs.gnu.org; Tue, 03 Oct 2017 18:40:30 -0400 Original-Received: from mail-wm0-f51.google.com ([74.125.82.51]:43947) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dzVrX-00032M-Ue for 28620@debbugs.gnu.org; Tue, 03 Oct 2017 18:40:28 -0400 Original-Received: by mail-wm0-f51.google.com with SMTP id m72so12457033wmc.0 for <28620@debbugs.gnu.org>; Tue, 03 Oct 2017 15:40:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=zekWL6hXKyb4s51tVE22ZXVEpXfvCiT4EkQSDsnjD14=; b=vPivADS6BzGUCR6SAYi17ggUu6PY8yVuI0nemfaz27iWgByhahgR9Aee9ZIBkeM1by ed4IvvJkOyXGzwt+UfF02upHv0O6kgCoXsCMIflpOKBGqUORJtPY61J59sNO2XBuQUlJ M75FZXnlHotLnGCpsMOGEo8DVsk7MjHwMXBcfFDsTA5odGj1ShPFElqwzhGspbPmtzlg 7a1I6X6hctEIF/lQdbTtHOJN1mpvKt0cBK7/OiETyYZl/UTo1WyBZwqlyzkS7DRRXfMt g7IcVv3Vh+cQIBPOvYYIY2oM5X2cBKlkZfMx5+RIP9CeyTBMHcNqj0WzV3tmGggxYNfT pL+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=zekWL6hXKyb4s51tVE22ZXVEpXfvCiT4EkQSDsnjD14=; b=Ohevb0rvJBgSXMzTW1gEr5u4cxhYMaQsynl7xzUJWoL3d8pjsiNuqerhq5qYpuJqRY ThOMlxgCBRDyR+ApyhjEmXUqF1O99sRs227L/TxTJ4NbmZmSxVcldzHafklIreILppcD QSh/EuraRUAVicFxK4rLFT6PQOzwNgQf3Xvm5w2/Ntv8wThdfwzpR2Fi9ddj9pXbP8Lz tvJcSYSHX3iHtcVby7Tkb5Vl45qQaVUw031WimFvDyOwRcgqq/Zbs25ohaanMAReA5Z8 YnZ+J1ajyygDw7qy6brLQoznYL6leN5YMCZjduBtDOizZpotpnwYcvNwJIIz/1mPB50b oFPA== X-Gm-Message-State: AMCzsaX3OjtR8FJlNCGqrX6qXvEiTprApEdCslemeYZv8g6CcrVi85HU zrmz2dUMkyndJEROpw/gBt4= X-Google-Smtp-Source: AOwi7QDe79V3MKRnTOXttEnydExFZGI7PBWFIqhjii040S9xfssUcECAoJfYozW0h7IJ1ZYj8KrCNw== X-Received: by 10.28.17.1 with SMTP id 1mr266952wmr.66.1507070420995; Tue, 03 Oct 2017 15:40:20 -0700 (PDT) Original-Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-ad89-e054-05c6-3eca.holly.idiocy.org. [2001:8b0:3f8:8129:ad89:e054:5c6:3eca]) by smtp.gmail.com with ESMTPSA id 204sm15841692wml.10.2017.10.03.15.40.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 03 Oct 2017 15:40:19 -0700 (PDT) Content-Disposition: inline In-Reply-To: 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:137863 Archived-At: On Tue, Oct 03, 2017 at 02:21:43PM -0400, Robert Weiner wrote: > This happens consistently in testing. This must be a bug in mouse-position > for macOS, right? Why would (mouse-position) still report f1 when f2 is > the selected frame? Maybe this is why I am seeing the wrong frame on drag > releases too. As far as I can tell ns_mouse_position returns the frame stored in dpyinfo->last_mouse_frame, which is set by EmacsView::mouseDown, however: If the user clicks a view that isn’t in the key window, by default the window is brought forward and made key, but the mouse event is not dispatched. https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/EventOverview/HandlingMouseEvents/HandlingMouseEvents.html My guess is that ns_mouse_position needs to get a list of NSWindows, iterate over them to find out which one the mouse pointer is over, convert that NSWindow back to an Emacs frame, and set *fp to it before returning. That way it should return the frame the mouse is over, rather than the last one that received a click event. I’m not sure what happens if the mouse isn’t over an emacs frame... Does it just return *fp unchanged? -- Alan Third