From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.bugs Subject: bug#50256: thing-at-mouse Date: Wed, 01 Sep 2021 10:17:56 +0300 Organization: LINKOV.NET Message-ID: <87ilzk6bsr.fsf@mail.linkov.net> References: <87sfys6ubm.fsf@mail.linkov.net> <87eeacdnmg.fsf@gnus.org> <87h7f7z8ui.fsf@mail.linkov.net> <871r6a8ooe.fsf@gnus.org> <87y28i85xi.fsf@mail.linkov.net> <87k0k1o5ks.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="1241"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) Cc: 50256@debbugs.gnu.org To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Sep 01 09:26:17 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 1mLKdT-00007G-SU for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 01 Sep 2021 09:26:15 +0200 Original-Received: from localhost ([::1]:50990 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mLKdR-0000jL-RG for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 01 Sep 2021 03:26:14 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60802) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mLKdG-0000go-VO for bug-gnu-emacs@gnu.org; Wed, 01 Sep 2021 03:26:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:52749) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mLKdG-00036q-NR for bug-gnu-emacs@gnu.org; Wed, 01 Sep 2021 03:26:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mLKdG-0002wj-Jb for bug-gnu-emacs@gnu.org; Wed, 01 Sep 2021 03:26:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 01 Sep 2021 07:26:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50256 X-GNU-PR-Package: emacs Original-Received: via spool by 50256-submit@debbugs.gnu.org id=B50256.163048115511298 (code B ref 50256); Wed, 01 Sep 2021 07:26:02 +0000 Original-Received: (at 50256) by debbugs.gnu.org; 1 Sep 2021 07:25:55 +0000 Original-Received: from localhost ([127.0.0.1]:36061 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mLKd9-0002wA-0t for submit@debbugs.gnu.org; Wed, 01 Sep 2021 03:25:55 -0400 Original-Received: from relay10.mail.gandi.net ([217.70.178.230]:40761) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mLKd7-0002vm-Fc for 50256@debbugs.gnu.org; Wed, 01 Sep 2021 03:25:54 -0400 Original-Received: (Authenticated sender: juri@linkov.net) by relay10.mail.gandi.net (Postfix) with ESMTPSA id 38831240008; Wed, 1 Sep 2021 07:25:45 +0000 (UTC) In-Reply-To: <87k0k1o5ks.fsf@mail.linkov.net> (Juri Linkov's message of "Tue, 31 Aug 2021 20:52:43 +0300") 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:213143 Archived-At: > So maybe the check for current-buffer above should be added > to mouse-set-point. Now I found the real root of the problems. All reported problems can be solved by this short patch: diff --git a/lisp/subr.el b/lisp/subr.el index 0a31ef2b29..0b3b8d0e0f 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1510,8 +1510,8 @@ event-start For more information, see Info node `(elisp)Click Events'." (if (consp event) (nth 1 event) - (or (posn-at-point) - (list (selected-window) (point) '(0 . 0) 0)))) + (or (posn-at-point (window-point)) + (list (selected-window) (window-point) '(0 . 0) 0)))) (defun event-end (event) "Return the ending position of EVENT. @@ -1519,8 +1519,8 @@ event-end See `event-start' for a description of the value returned." (if (consp event) (nth (if (consp (nth 2 event)) 2 1) event) - (or (posn-at-point) - (list (selected-window) (point) '(0 . 0) 0)))) + (or (posn-at-point (window-point)) + (list (selected-window) (window-point) '(0 . 0) 0)))) Both 'event-start' and 'event-end' created an event with the window equal to the selected window, but point from some random buffer, not from selected window's buffer. One question still remains: maybe this fix should be implemented at a deeper level in posn-at-point when its arg POS is nil? But actually, posn-at-point just uses this line: tem = Fpos_visible_in_window_p (pos, window, Qt); So maybe this fix should be implemented in Fpos_visible_in_window_p, i.e. at the end of this code if (EQ (pos, Qt)) posint = -1; else if (!NILP (pos)) posint = fix_position (pos); else if (w == XWINDOW (selected_window)) posint = PT; else posint = marker_position (w->pointm); it should get position from the selected window's buffer?