From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#52685: 29.0.50; Horizontal scrolling doesn't work when compiled with pgtk Date: Wed, 22 Dec 2021 14:11:01 +0800 Message-ID: <87v8zhqidm.fsf@yahoo.com> References: <878rwezqzk.fsf@yahoo.com> <20211221.222847.806642445048126400.masm@luna.pink.masm11.me> <8735mlv4h2.fsf@yahoo.com> <87r1a5tphk.fsf@yahoo.com> Reply-To: Po Lu Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3083"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.60 (gnu/linux) Cc: Yuuki Harano , 52685@debbugs.gnu.org To: Andrey Listopadov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Dec 22 07:12:50 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 1mzurq-0000jC-Dk for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 22 Dec 2021 07:12:50 +0100 Original-Received: from localhost ([::1]:50662 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mzurj-00038I-Ct for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 22 Dec 2021 01:12:43 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:53354) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mzur4-000382-VS for bug-gnu-emacs@gnu.org; Wed, 22 Dec 2021 01:12:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:44953) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mzur4-0004n8-Ls for bug-gnu-emacs@gnu.org; Wed, 22 Dec 2021 01:12:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mzur4-0006yZ-Fy for bug-gnu-emacs@gnu.org; Wed, 22 Dec 2021 01:12:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Po Lu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 22 Dec 2021 06:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 52685 X-GNU-PR-Package: emacs Original-Received: via spool by 52685-submit@debbugs.gnu.org id=B52685.164015349626778 (code B ref 52685); Wed, 22 Dec 2021 06:12:02 +0000 Original-Received: (at 52685) by debbugs.gnu.org; 22 Dec 2021 06:11:36 +0000 Original-Received: from localhost ([127.0.0.1]:56499 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mzuqP-0006xd-8o for submit@debbugs.gnu.org; Wed, 22 Dec 2021 01:11:36 -0500 Original-Received: from sonic304-20.consmr.mail.ne1.yahoo.com ([66.163.191.146]:40401) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mzuqL-0006xL-MP for 52685@debbugs.gnu.org; Wed, 22 Dec 2021 01:11:19 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1640153471; bh=kwgbCFWj0UKNOu2k8c9ikcDvV7Ys6xg1xvDVszaKsIQ=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From:Subject:Reply-To; b=Ep3zgH2hWXGheuF5BEi7r3ZoBsyjfooK84PPyViyqYoza/UjeUb+s4D9JPuo42vW5ETUIuVE47s/3/KwnQQtZ2382QATqATCbJouTta8+L30M+06n6CYiEQ9fejORZbC5OCuIhbW4uWIn0v4h3Bam3qXDFEDuy/4CJdjkfi5G6AobkNVypdYVsts5CL948JjyjpCd5dCu2GFlwaCfPn8puwrKDoSVH8UmwNeJ3fq4m6Y1UDkKIptSG7k+QLjpU4FJuWiRvz/a1XjIRtUG3CnBaF1m/UY8ysFP6nAjnPk+FefjhiD3UlrCjXhE/3bM11uKPCSVGIUmHJk1pWsu5kWeA== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1640153471; bh=S2I9D2ASSu8JVbwRd2RSZAZp1X/lctxhNT2dQ1kjFsC=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=SkjJhqFhL36b5Z9Qcs9cWfKG8bv6c4CqMSm4IzL5sp1nvaJeL1b+Ov5BssGEHq+7qN7p0j092QZCMOUukbgsGp7P5XC2xIlPOvl59VuvyqxWaiXHL4Jbt6L9C3HMjcvQf6a/dytFbOynpgz0KOzw7jr7FJGYayL9oZl/f7mC9iPyOm+tfK8CVPyllRVcSCxhnPT0gcY9J+/UfraMCsebbIfYN0fchJtUPmPVWCq9E1J64hB199IEgBtkJx4wXr4FPEm2Ba+tn9paEc8eZSnBx5WUjQz73X7QDUCl/z0lUdO/VjIhM1TZlk8cZNOITbbLF34AeO+CxUogfgPWxdGXcg== X-YMail-OSG: DDkHN8AVM1mHxNNM1DrpDa.41ORq4Nb4TgEVAW2U8dWpT5hFni5pvpAl8kVDu3s g.gkjyXW43K0HkQ3gmZUHrFpI_TnNW.Qfb9rwHjR7QxMUsB.Ganr.o09EOuR1XQur1LP2orbMots Zae4KkBFrAWZWwHOayzgycmUw89ASMNmH2HNUwyvd03c_udon4lD3IUwnHGfJcpedzg.WRv4IUol IHEYvQZeZgh6xwmyPh1m2s.bmbLJ1ZlP.FfXmU16P9Vj7I1bRw3Ip4fao2R9zVuREp8Q0RYwEhoq s3JsQgDTTB97VeIgjnPvsCFal9ypneFeasXZYrImH_0FAFDfszKn0EHLvE7RzoSMmwbCU44mL9Hd oKq_q5x8c3VxFMdQrXPGok2lTeqd0sgwNI0LyO7jTiwpENjy1GiUPeRClV08dKiV_AXD4OpzV7BA I77HPRnSJlgzEx1bUuD7ghTYEf.GLtajuY3EGP4h3NOEGDK_68riq4sqhRs9YZDr.4gVKJMvKTtn vWSOBJiBgqibk8Fpqg4Dpy3OktnTWSQB6An7cFArfTSiu2Fbrjd4qbjOd9H7gPLvZzs1rziaRgkN 2_3g.I0StBRe7C2AJm.gkkUsCncUEqxEsjp9xVrB5XGL6T3irFntItM7md8yADWQ7bBwrIvTJHrJ hyB0_WoOewGyXpHM5kmZ1pdtcZdPuQGbAgpQmAIwF7Z4Pa9VPuFNd5wqVLjj3HE5L9lXYiTdlSF2 qlk2i_S5KQkbMqLLTFS753lF0aighFWW.N5T8552dnjmMlmbDI6ykBouiq5EMz_WUu7UPKeBm7cn J7i5ots3yFSEuo3NrOA2rUC36ghDeLSTPtLBMTOpIc X-Sonic-MF: Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic304.consmr.mail.ne1.yahoo.com with HTTP; Wed, 22 Dec 2021 06:11:11 +0000 Original-Received: by kubenode512.mail-prod1.omega.sg3.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID a9f173f6a0fb4967da17ccb95450b3fa; Wed, 22 Dec 2021 06:11:06 +0000 (UTC) In-Reply-To: (Andrey Listopadov's message of "Wed, 22 Dec 2021 08:55:44 +0300") X-Mailer: WebService/1.1.19498 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo 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:222914 Archived-At: Andrey Listopadov writes: > On Wed, Dec 22, 2021 at 4:09 AM Po Lu wrote: >> >> Po Lu writes: >> >> > Andrey Listopadov writes: >> > >> >> When `pixel-scroll-precision-mode' is disabled everything works fine. >> >> When compiled without `--with-pgtk' but with `--with-xinput2' >> >> `pixel-scroll-precision-mode' works as expected. >> > >> > Thanks, I will look into this now. >> >> Please try the following patch to see if it resolves your problem. >> Thanks. >> >> diff --git a/src/pgtkterm.c b/src/pgtkterm.c >> index bd61c65edd..bea2650584 100644 >> --- a/src/pgtkterm.c >> +++ b/src/pgtkterm.c >> @@ -6133,78 +6133,64 @@ scroll_event (GtkWidget * widget, GdkEvent * event, gpointer * user_data) >> } >> else if (gdk_event_get_scroll_deltas (event, &delta_x, &delta_y)) >> { >> - dpyinfo->scroll.acc_x += delta_x; >> - dpyinfo->scroll.acc_y += delta_y; >> - if (dpyinfo->scroll.acc_y >= dpyinfo->scroll.y_per_line >> - || !mwheel_coalesce_scroll_events) >> + if (!mwheel_coalesce_scroll_events) >> { >> - int nlines = dpyinfo->scroll.acc_y / dpyinfo->scroll.y_per_line; >> - inev.ie.kind = WHEEL_EVENT; >> - inev.ie.modifiers |= down_modifier; >> - inev.ie.arg = list3 (make_fixnum (nlines), >> - make_float (-dpyinfo->scroll.acc_x * 100), >> - make_float (-dpyinfo->scroll.acc_y * 100)); >> - if (!mwheel_coalesce_scroll_events) >> - { >> - dpyinfo->scroll.acc_y = 0; >> - dpyinfo->scroll.acc_x = 0; >> - } >> - else >> + inev.ie.kind = ((fabs (delta_x) > fabs (delta_y)) >> + ? HORIZ_WHEEL_EVENT >> + : WHEEL_EVENT); >> + inev.ie.modifiers = (inev.ie.kind == HORIZ_WHEEL_EVENT >> + ? (delta_x >= 0 ? down_modifier : up_modifier) >> + : (delta_y >= 0 ? down_modifier : up_modifier)); >> + inev.ie.arg = list3 (Qnil, make_float (delta_x), >> + make_float (delta_y)); >> + } >> + else >> + { >> + dpyinfo->scroll.acc_x += delta_x; >> + dpyinfo->scroll.acc_y += delta_y; >> + if (dpyinfo->scroll.acc_y >= dpyinfo->scroll.y_per_line) >> { >> + int nlines = dpyinfo->scroll.acc_y / dpyinfo->scroll.y_per_line; >> + inev.ie.kind = WHEEL_EVENT; >> + inev.ie.modifiers |= down_modifier; >> + inev.ie.arg = list3 (make_fixnum (nlines), >> + make_float (-dpyinfo->scroll.acc_x * 100), >> + make_float (-dpyinfo->scroll.acc_y * 100)); >> dpyinfo->scroll.acc_y -= dpyinfo->scroll.y_per_line * nlines; >> } >> - } >> - else if (dpyinfo->scroll.acc_y <= -dpyinfo->scroll.y_per_line >> - || !mwheel_coalesce_scroll_events) >> - { >> - int nlines = -dpyinfo->scroll.acc_y / dpyinfo->scroll.y_per_line; >> - inev.ie.kind = WHEEL_EVENT; >> - inev.ie.modifiers |= up_modifier; >> - inev.ie.arg = list3 (make_fixnum (nlines), >> - make_float (-dpyinfo->scroll.acc_x * 100), >> - make_float (-dpyinfo->scroll.acc_y * 100)); >> - >> - if (!mwheel_coalesce_scroll_events) >> + else if (dpyinfo->scroll.acc_y <= -dpyinfo->scroll.y_per_line) >> { >> - dpyinfo->scroll.acc_y = 0; >> - dpyinfo->scroll.acc_x = 0; >> + int nlines = -dpyinfo->scroll.acc_y / dpyinfo->scroll.y_per_line; >> + inev.ie.kind = WHEEL_EVENT; >> + inev.ie.modifiers |= up_modifier; >> + inev.ie.arg = list3 (make_fixnum (nlines), >> + make_float (-dpyinfo->scroll.acc_x * 100), >> + make_float (-dpyinfo->scroll.acc_y * 100)); >> + >> + dpyinfo->scroll.acc_y -= -dpyinfo->scroll.y_per_line * nlines; >> } >> - else >> - dpyinfo->scroll.acc_y -= -dpyinfo->scroll.y_per_line * nlines; >> - } >> - else if (dpyinfo->scroll.acc_x >= dpyinfo->scroll.x_per_char >> - || !mwheel_coalesce_scroll_events) >> - { >> - int nchars = dpyinfo->scroll.acc_x / dpyinfo->scroll.x_per_char; >> - inev.ie.kind = HORIZ_WHEEL_EVENT; >> - inev.ie.modifiers |= up_modifier; >> - inev.ie.arg = list3 (make_fixnum (nchars), >> - make_float (-dpyinfo->scroll.acc_x * 100), >> - make_float (-dpyinfo->scroll.acc_y * 100)); >> - >> - if (mwheel_coalesce_scroll_events) >> - dpyinfo->scroll.acc_x -= dpyinfo->scroll.x_per_char * nchars; >> - else >> + else if (dpyinfo->scroll.acc_x >= dpyinfo->scroll.x_per_char >> + || !mwheel_coalesce_scroll_events) >> { >> - dpyinfo->scroll.acc_x = 0; >> - dpyinfo->scroll.acc_y = 0; >> + int nchars = dpyinfo->scroll.acc_x / dpyinfo->scroll.x_per_char; >> + inev.ie.kind = HORIZ_WHEEL_EVENT; >> + inev.ie.modifiers |= up_modifier; >> + inev.ie.arg = list3 (make_fixnum (nchars), >> + make_float (-dpyinfo->scroll.acc_x * 100), >> + make_float (-dpyinfo->scroll.acc_y * 100)); >> + >> + dpyinfo->scroll.acc_x -= dpyinfo->scroll.x_per_char * nchars; >> } >> - } >> - else if (dpyinfo->scroll.acc_x <= -dpyinfo->scroll.x_per_char) >> - { >> - int nchars = -dpyinfo->scroll.acc_x / dpyinfo->scroll.x_per_char; >> - inev.ie.kind = HORIZ_WHEEL_EVENT; >> - inev.ie.modifiers |= down_modifier; >> - inev.ie.arg = list3 (make_fixnum (nchars), >> - make_float (-dpyinfo->scroll.acc_x * 100), >> - make_float (-dpyinfo->scroll.acc_y * 100)); >> - >> - if (mwheel_coalesce_scroll_events) >> - dpyinfo->scroll.acc_x -= -dpyinfo->scroll.x_per_char * nchars; >> - else >> + else if (dpyinfo->scroll.acc_x <= -dpyinfo->scroll.x_per_char) >> { >> - dpyinfo->scroll.acc_x = 0; >> - dpyinfo->scroll.acc_y = 0; >> + int nchars = -dpyinfo->scroll.acc_x / dpyinfo->scroll.x_per_char; >> + inev.ie.kind = HORIZ_WHEEL_EVENT; >> + inev.ie.modifiers |= down_modifier; >> + inev.ie.arg = list3 (make_fixnum (nchars), >> + make_float (-dpyinfo->scroll.acc_x * 100), >> + make_float (-dpyinfo->scroll.acc_y * 100)); >> + >> + dpyinfo->scroll.acc_x -= -dpyinfo->scroll.x_per_char * nchars; >> } >> } >> } > The patch doesn't apply. That's odd. Could you try updating your checkout, or failing that, applying it manually? Thanks.