From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#59785: 30.0.50; mouse-2 > (wrong-type-argument listp #) Date: Mon, 05 Dec 2022 16:32:55 +0200 Message-ID: <83mt819azs.fsf@gnu.org> References: <877cz9sje8.fsf@web.de> <83y1rpeg4q.fsf@gnu.org> <83wn79eftm.fsf@gnu.org> <874jucr95p.fsf@web.de> <87zgc4pubh.fsf@web.de> <83359wegvc.fsf@gnu.org> <87r0xgplti.fsf@web.de> <9C75CDAA-F4CF-45A0-9CA4-C9767E4ECE1D@gnu.org> <87mt84pfld.fsf@web.de> <87ilispe64.fsf@web.de> <83r0xgcpxj.fsf@gnu.org> <83mt84cp5s.fsf@gnu.org> <877cz8l176.fsf@web.de> <83bkojd75p.fsf@gnu.org> <87359ultd5.fsf@web.de> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5474"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 59785@debbugs.gnu.org To: Michael Heerdegen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Dec 05 15:34:22 2022 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 1p2CY1-000184-V4 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 05 Dec 2022 15:34:21 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p2CXo-0000T2-4e; Mon, 05 Dec 2022 09:34:13 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p2CXj-0000QQ-FG for bug-gnu-emacs@gnu.org; Mon, 05 Dec 2022 09:34:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1p2CXi-0006yv-MW for bug-gnu-emacs@gnu.org; Mon, 05 Dec 2022 09:34:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1p2CXi-0003m5-Dj for bug-gnu-emacs@gnu.org; Mon, 05 Dec 2022 09:34:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 05 Dec 2022 14:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59785 X-GNU-PR-Package: emacs Original-Received: via spool by 59785-submit@debbugs.gnu.org id=B59785.167025081014499 (code B ref 59785); Mon, 05 Dec 2022 14:34:02 +0000 Original-Received: (at 59785) by debbugs.gnu.org; 5 Dec 2022 14:33:30 +0000 Original-Received: from localhost ([127.0.0.1]:36337 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p2CXC-0003ln-8T for submit@debbugs.gnu.org; Mon, 05 Dec 2022 09:33:30 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:58580) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1p2CXA-0003lh-KQ for 59785@debbugs.gnu.org; Mon, 05 Dec 2022 09:33:29 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p2CX3-0006uy-LD; Mon, 05 Dec 2022 09:33:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=mxhZwr8DRGppJ71gH8paTP7agwQFmrJUtUhHLkJOJEk=; b=VyBq6XfDfpNS dnfJkX4hU/qsY3Gb/AD4SraYPY6J1so8BTO43HUN/xTou7XFRmy9Stx6owrDnsPE5IaFoiMgFjcNr 79SpP4N9mXBNgQiVsmLlNZBxo/jyvMObsX3kCuWWLVRtjeMlyZsm1dLV/E17oChkHk+Kvm/Xy/7p0 23pcqxIr49nSn1l3cWVW2uDeGGycM4CVe+C7kAHfdbvqXKg+Q9TeigVmRy0fOcQd/nNYRh/fopR8N tA1r8AZQvIKirY6JnVqmCFosUGlb6yuW55RlzjdwVHS2RaaE2aLsaDDfd4FBSYDoQAaVcdd5PAuFX m9OksxHqZ3lYvuuHcC3ugw==; Original-Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p2CWv-0001d8-7Q; Mon, 05 Dec 2022 09:33:21 -0500 In-Reply-To: <87359ultd5.fsf@web.de> (message from Michael Heerdegen on Sun, 04 Dec 2022 23:03:02 +0100) 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:250030 Archived-At: > From: Michael Heerdegen > Cc: 59785@debbugs.gnu.org > Date: Sun, 04 Dec 2022 23:03:02 +0100 > > Eli Zaretskii writes: > > > So if you cannot reproduce the org-capture case in "emacs -Q", perhaps > > some other recipe which causes the same backtrace can be reproduced? > > I tried all day and we are lucky, I finally found a recipe for emacs -Q, > and it seems indeed to be a regression from at least 27.1: > > #+begin_src emacs-lisp > (require 'org) > (require 'calendar) > > (setq org-read-date-popup-calendar t) > (setq calendar-setup 'calendar-only) > > ;; my probably a bit non-standard setup: > (global-set-key [down-mouse-2] #'mouse-drag-drag) > (define-key calendar-mode-map [down-mouse-2] nil) > > (setq debug-on-error t) > ;; this is only to allow to switch to the > ;; Debugger despite of the active minibuffer > (setq enable-recursive-minibuffers t) > > ;; Now select a date with mouse-2 in the calendar after > ;; evaluating this: > (org-read-date) > ;; then switch to the debugger buffer (e.g. with C-x C-b) > #+end_src Thanks, this helped a lot. Please try the patch below; it seems to work here, and doesn't break the mouse-drag-drag feature (which was my TIL moment, although it exists since Emacs 20...): diff --git a/lisp/mouse-drag.el b/lisp/mouse-drag.el index f515cc8..1665bd1 100644 --- a/lisp/mouse-drag.el +++ b/lisp/mouse-drag.el @@ -275,6 +275,7 @@ mouse-drag-drag have-scrolled window-last-row col window-last-col + switch-frame-p (scroll-col-delta 0) ;; be conservative about allowing horizontal scrolling (col-scrolling-p (mouse-drag-should-do-col-scrolling))) @@ -286,15 +287,16 @@ mouse-drag-drag (setq track-mouse 'drag-dragging) (while (progn (setq event (read--potential-mouse-event) - end (event-end event) - row (cdr (posn-col-row end)) - col (car (posn-col-row end))) - (or (mouse-movement-p event) - (eq (car-safe event) 'switch-frame))) + switch-frame-p (eq (car-safe event) 'switch-frame)) + (or switch-frame-p + (setq end (event-end event) + row (cdr (posn-col-row end)) + col (car (posn-col-row end)))) + (or (mouse-movement-p event) switch-frame-p)) ;; Scroll if see if we're on the edge. ;; FIXME: should handle mouse-in-other window. (cond - ((not (eq start-window (posn-window end))) + ((or switch-frame-p (not (eq start-window (posn-window end)))) t) ; wait for return to original window ((<= row 0) (mouse-drag-repeatedly-safe-scroll -1 0)) ((>= row window-last-row) (mouse-drag-repeatedly-safe-scroll 1 0))