From unknown Fri Aug 15 18:54:10 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#51681 <51681@debbugs.gnu.org> To: bug#51681 <51681@debbugs.gnu.org> Subject: Status: 29.0.50; [PATCH] Really fix xwidget scroll optimization Reply-To: bug#51681 <51681@debbugs.gnu.org> Date: Sat, 16 Aug 2025 01:54:10 +0000 retitle 51681 29.0.50; [PATCH] Really fix xwidget scroll optimization reassign 51681 emacs submitter 51681 Po Lu severity 51681 normal tag 51681 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 08 01:24:36 2021 Received: (at submit) by debbugs.gnu.org; 8 Nov 2021 06:24:36 +0000 Received: from localhost ([127.0.0.1]:55810 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjy55-0007lF-Lg for submit@debbugs.gnu.org; Mon, 08 Nov 2021 01:24:35 -0500 Received: from lists.gnu.org ([209.51.188.17]:57024) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjy53-0007l7-RJ for submit@debbugs.gnu.org; Mon, 08 Nov 2021 01:24:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44416) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mjy53-0003sx-M0 for bug-gnu-emacs@gnu.org; Mon, 08 Nov 2021 01:24:33 -0500 Received: from sonic301-30.consmr.mail.ne1.yahoo.com ([66.163.184.199]:38926) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mjy50-0006Bh-SJ for bug-gnu-emacs@gnu.org; Mon, 08 Nov 2021 01:24:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1636352668; bh=h8QcNHYvPlB2lePIwki4KyW5N1a6zwagHgcUby8gSno=; h=From:To:Subject:Date:References:From:Subject:Reply-To; b=bZkkctjyOzbxoe0coszulbK1ZlcQMZYh9fXcqJTl6EtizQVc0AujitJ/t0roI9l3VJEuLBXLqZVAK6HWk3ivHArhQo5zxZ+pp6Rp9DQABSiFZD4ZJGdhaVx09W6uZNCPUIbh1LLV8KtUDoq7tvzQPOiIFtwrJts+b4SGjIS3P8W+TeBLtKUD98B+4d8FfGU21VbrUrEjiaJ7GWYPVEdSkpi0B14wYO0EEATIWgSbw2GAjqtsOpqn59fbhpAqG/wnlXbNP/vv62TpumwEmhCp7xee6CaGlcXoQgjyDl59IL8liNgqdzt1+BnSnVKx3pB8dKy5bdOExxqzPuI+CA76vw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1636352668; bh=28n5TyhqNQuXcdIGFZgcYZ//SjeXzWT7hMuzG+tdBAt=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=nm4luxA32XBnQd1MO6+nkZP9LX8HvzJKCZtDl1Ox/MCW7b2jRuI252ev4RgDHOVpqw5hh4T6c9MERleysnStEcI+7cOr8xvYWxD/8WmqXO656PB5wr27G4PDENbo4Im/zBxRU04AF+jB4FBwT3H6KpofXNT6wiB5SpNxUuwtEryG+fkNQIuyErV/MIS5NAG7Z6HqN6b22+QxtfQizOZXS18slNPEel4C4p9xqUTXtY8zjxcyMcReTOOgfX7xA8AkGK1KHGBTkMm3NRSH2EvILzimjQrnAu8g9OqjHfwygoLYm3wrGQqS6KQMMHQjyOoPITfUpxnQeaXrNdjEpUCv+A== X-YMail-OSG: EturzWoVM1lb0.0J_s_zjR89Ud4j7PDwWB_v84D0Ha82uWYYDWgdRYma69T3xDY dMefGPyGcsQ5M4SHbyh1pCg81bYBdXm5wfjbeP45jSF40aDRg6iBr3AhhoHzFs1arVdfC3vKKN4P jOKwhJfTlvAPNWADcx5YmdHhsC3U2OZ7okjukFwgYoK9NF5Je1viZSutAv2.bpSBS900EU4IApOj bos8pQ53QJs66NcbXSGCULoYDIP.46ep8w7_gg1rNWjCQZUoZrqmvU0oTe2JG5FnkGVTr.HFRRkS 4h2wT0N8VQdOhD1lhUjZu4h5XVKU3x4mVbQH.g5EF0R7.MVj5oVTqpS_.QAyCznj_D2gWEvO33H_ FiuU2uHiRjzK7rZmpwRJJe3OXaooPMhzFkC3Ve1keFmzmaRM6doifyWR5qDCPYVcni.BLxmIYize QyYZ39KUmus38C65Tg2yvhFzmqZj1PJxaV7NpY9a6GfzpDeSUGSZ5ZoU4_ELOXA7ui11gll2KmJF QjhP4YAlBE5f9xN1NNt28.yujaOMcYzKa.BFgwGvQ28kVNV4HU0tEtkkXLHqX16yUVh4gqDD6yNu aC_CQTeXVEYEW._QoA8nTMkeerjYSdpIENIeuSPpegQvIl7eqUoYXe1l38s7L37jPAkYER6h8VYF M5RZVyqGxzqSjSeF.AxBaQ1Oe9EhylB6zvAo35s_KPCqIGJ.3Js4j6jmiwktqFTm6B_dbeRaMCZb mQ_3Q53tOceHmVgrTttVq_gEbbv8hhGfVkASOd3e.uQJxs3y4qqdAsALzDtlTSzZKCgsXLUAY267 rmXO.EuxgH_ApZMmoy1sGKz.nRezBxJ3vlxs3_hlDWv3WIW.B.iEEKeOnVc_cbIyFIFuuyEQXAor CdYsFpa4cLF6DKh81Ulm4wFwLz06FeDNOIrCZO5Jgj21nWbm2A5Wh9m6yprL6KnPAW7LtliIquBc s9Sai95aEo8GOaz9ncvGMXEvdw.koe8_XvL6z8HEgtgBYLI6oe66xwPk5nNVpcIuj7R6_DVjQ739 sxx1CyrUNiIADi3PmAhmm1oYvT5LUkz6KLWDDyFAEhEEF2t16HOSLTd4cy7vXEMx.dNM.OPfG8e8 L0Qf1wyWVW6dMY1Ltu59i1e6qxs1.1CKrOXVQctBQ5ifPnmcV6PtVQf43_h2KERYBe80TC7vARtX Wv_EQU0SNWRDTzQM1Qv3xMK6b7YcnfENPfUWvzK8RJMiTJlW1m8cCrffi_ejamE6qFl3o_CImgeF yfjohjHYRWM9GouJEHIDaYz0uSAApG.IpPpI00He0uKxVnWn3lTYAxs3xxG7abctI5o0G5Qxk93c .VSQ_M.i7eV5Muc93HOQo8zpF_5Z44THyqAwAeRyUBTpcnju9abjCXMe5e1gtgjDPzsA9Z3rZik3 rd3XHxLGyjaBu_5ybJheQCSVCrx0UELOlH0toGvC0HihGkPRGhXoFcU9yLiNZMt8aTHjjqe0fLY2 bYZXL5v6RbnuWhfS_39v_RcA5jk7ciX4YDMcxxwV988niK4u2PjfZpUCnv4I_wGZO5r9G_D_zFoL wr_wpUiiDO5ESa_HQAcnwIu6BimvtPJ17K8x9.BMEQhwro.DnfO2HkaRInWUz8xuYQPZDWjHie.r ak7O35xE.MGrstQ8bPt9vmQTpjl.ZYyUprsnGmQ1d1hTZmsv_Pr85ZVbebaMd9SjUuA3sYYJIrhw xjcv54_NUxVPn5DGRHlRWsj2_5M8nitBP0tAXGExJbdweKUPtOFrynAaAYwQW_gqJIan0j1hdfjG 8BWrDS7OE_VRCXhL09QbQaR3fN6AD5Zd8ePdZSyV36GPLKyMDzTruf4_66GOs.c0Yjlozk_jdhsI vJGIMnwqP87OhL1IsH9xbX6yKjVRBZO0OqtSWgotHMNCYQf2bzBLTqzar0jEDygev8seIJ8j5YkM xK97FcWW0UCi4ColmvFhHnqXjCrbzaUppk.Bx5q2bXeItaJgH392sZTicKmlVs0XHfp1VTIdDBce wrdDaVsBdo3axPDP5cl2emfT913GQ7QtcFb4Eyo8k5ddl3kVDkEDnF3pWB4L2HUGlx4dOZ0PerpY 9J5ympTNvVcYm16R1dS2O0ti8zeyf_2_ryTxLF0tvp_gkalxIpB7UoLA.bt32FFq_MyaGYSXmJp5 DqD.iZnej_5Oi81K7.hKF6bk0DYlJslOlPqL8RBaPQgN088cHyuXQRlb7z9QnP1OjnNGsywYyLEo BdwAbELXPgSZCecMQcWZJm6NP7IJ.Gw-- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic301.consmr.mail.ne1.yahoo.com with HTTP; Mon, 8 Nov 2021 06:24:28 +0000 Received: by kubenode502.mail-prod1.omega.sg3.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 28be4f49c2abd48048a95f70d5b2bb25; Mon, 08 Nov 2021 06:24:21 +0000 (UTC) From: Po Lu To: bug-gnu-emacs@gnu.org Subject: 29.0.50; [PATCH] Really fix xwidget scroll optimization Date: Mon, 08 Nov 2021 14:24:18 +0800 Message-ID: <8735o7qi5p.fsf@yahoo.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" References: <8735o7qi5p.fsf.ref@yahoo.com> X-Mailer: WebService/1.1.19266 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Content-Length: 3509 Received-SPF: pass client-ip=66.163.184.199; envelope-from=luangruo@yahoo.com; helo=sonic301-30.consmr.mail.ne1.yahoo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.6 (-) --=-=-= Content-Type: text/plain Sorry for missing this, it was quite obvious in retrospect, but when I first wrote the code for x_scroll_run it was with a mistaken understanding of the meaning of `clip_bottom'. Thanks. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Really-fix-xwidget-scroll-optimization-and-clip.patch >From 75c0f76a3f8f122151c20e3f2037a17e78ede970 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Mon, 8 Nov 2021 14:17:48 +0800 Subject: [PATCH] Really fix xwidget scroll optimization and clip * src/xterm.c (x_scroll_run): Improve clip detection. * src/xwidget.c (xv_do_draw): Use cairo_translate. (xwidget_motion_or_crossing): Use correct fields. --- src/xterm.c | 23 ++++++++++++++++------- src/xwidget.c | 8 ++++---- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/xterm.c b/src/xterm.c index 24f12d6e24..1fb3d8d7c0 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -4442,18 +4442,27 @@ x_scroll_run (struct window *w, struct run *run) window_box (w, TEXT_AREA, &text_area_x, &text_area_y, &text_area_width, &text_area_height); - clip_top = max (0, text_area_y - y); - clip_bottom = max (clip_top, - min (XXWIDGET (view->model)->height, - text_area_y + text_area_height - y)); - view->y = y; + + clip_top = 0; + clip_bottom = window_height; + + if (y < text_area_y) + clip_top = text_area_y - y; + + if ((y + clip_top + window_height) + > (text_area_y + text_area_height)) + { + clip_bottom -= (y + clip_top + window_height) + - (text_area_y + text_area_height); + } + view->clip_top = clip_top; view->clip_bottom = clip_bottom; /* This means the view has moved offscreen. Unmap it and hide it here. */ - if ((view->clip_top - view->clip_bottom) <= 0) + if ((view->clip_bottom - view->clip_top) <= 0) { view->hidden = true; XUnmapWindow (dpy, child); @@ -4462,7 +4471,7 @@ x_scroll_run (struct window *w, struct run *run) XMoveResizeWindow (dpy, child, view->x + view->clip_left, view->y + view->clip_top, view->clip_right - view->clip_left, - view->clip_top - view->clip_bottom); + view->clip_bottom - view->clip_top); XFlush (dpy); } } diff --git a/src/xwidget.c b/src/xwidget.c index 1815a39ab6..2d9351308e 100644 --- a/src/xwidget.c +++ b/src/xwidget.c @@ -753,9 +753,9 @@ xwidget_motion_or_crossing (struct xwidget_view *view, const XEvent *event) GtkWidget *target = find_widget_at_pos (model->widgetwindow_osr, (event->type == MotionNotify ? event->xmotion.x + view->clip_left - : event->xmotion.y + view->clip_top), + : event->xcrossing.x + view->clip_left), (event->type == MotionNotify - ? event->xmotion.y + view->clip_left + ? event->xmotion.y + view->clip_top : event->xcrossing.y + view->clip_top), &x, &y); @@ -855,8 +855,8 @@ xv_do_draw (struct xwidget_view *xw, struct xwidget *w) cairo_save (xw->cr_context); if (surface) { - cairo_set_source_surface (xw->cr_context, surface, xw->clip_left, - xw->clip_top); + cairo_translate (xw->cr_context, -xw->clip_left, -xw->clip_top); + cairo_set_source_surface (xw->cr_context, surface, 0, 0); cairo_set_operator (xw->cr_context, CAIRO_OPERATOR_SOURCE); cairo_paint (xw->cr_context); } -- 2.31.1 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 08 23:02:49 2021 Received: (at 51681) by debbugs.gnu.org; 9 Nov 2021 04:02:49 +0000 Received: from localhost ([127.0.0.1]:60206 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkILQ-0004ZB-SQ for submit@debbugs.gnu.org; Mon, 08 Nov 2021 23:02:49 -0500 Received: from quimby.gnus.org ([95.216.78.240]:54832) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkILO-0004Yv-Hj for 51681@debbugs.gnu.org; Mon, 08 Nov 2021 23:02:47 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=emW21wEBPm3eHlxk5Tim+rlAGh7eCdXbd1YppRdhstg=; b=lbCHu7o+UJ3AzG7J3siml9vAB+ g2l32s9AaLHOU/ECFixaxjUvuoLzTgeCGpk5XVSTnTLqGRgD38p/cGXR+gIB+Ld39sXx6Ii6Hv/oA Qr5hV3QPA2/5g0++lZ2BPsl5jQta5i25KkhC6BOl7qj6BOkd1Zgw0VF4uScDCWjDC0uQ=; Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mkILC-0008NX-Ow; Tue, 09 Nov 2021 05:02:39 +0100 From: Lars Ingebrigtsen To: Po Lu Subject: Re: bug#51681: 29.0.50; [PATCH] Really fix xwidget scroll optimization References: <8735o7qi5p.fsf.ref@yahoo.com> <8735o7qi5p.fsf@yahoo.com> X-Now-Playing: Arc's _Rogue Pulse: Gravity Collapse (10)_: "Breathe Couplings Undulation Map" Date: Tue, 09 Nov 2021 05:02:34 +0100 In-Reply-To: <8735o7qi5p.fsf@yahoo.com> (Po Lu's message of "Mon, 08 Nov 2021 14:24:18 +0800") Message-ID: <877ddit1r9.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Po Lu writes: > Sorry for missing this, it was quite obvious in retrospect, but when I > first wrote the code for x_scroll_run it was with a mistaken > understanding of the meaning of `clip_bottom'. Thanks. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 51681 Cc: 51681@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Po Lu writes: > Sorry for missing this, it was quite obvious in retrospect, but when I > first wrote the code for x_scroll_run it was with a mistaken > understanding of the meaning of `clip_bottom'. Thanks. Thanks; pushed to Emacs 29. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 08 23:02:57 2021 Received: (at control) by debbugs.gnu.org; 9 Nov 2021 04:02:57 +0000 Received: from localhost ([127.0.0.1]:60209 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkILZ-0004ZX-2I for submit@debbugs.gnu.org; Mon, 08 Nov 2021 23:02:57 -0500 Received: from quimby.gnus.org ([95.216.78.240]:54846) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkILX-0004ZJ-R2 for control@debbugs.gnu.org; Mon, 08 Nov 2021 23:02:56 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Subject:From:To:Message-Id:Date:Sender:Reply-To:Cc: MIME-Version:Content-Type:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=rJwbMSoCG8R7Uz/cgGCKONFjCFbTY3e9ulGgFzC+h0k=; b=lVIs+SUebkp4vqGbYIUbapJf2I /gaIz3PpagLmv1M2rUcrqd+zbYdO6wdMGrIczBzxbcmfmncRQhddptj/0rtW520XXKiTSqSnGVn5B +oAVQPmIUyev2YBo5ibAqI40t6cW0rPlbKg2ROddnMnQLnpgcXK7Ipa85BxnCXfxI3OY=; Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mkILM-0008Ne-8Z for control@debbugs.gnu.org; Tue, 09 Nov 2021 05:02:49 +0100 Date: Tue, 09 Nov 2021 05:02:43 +0100 Message-Id: <875yt2t1r0.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #51681 X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: close 51681 29.1 quit Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) close 51681 29.1 quit From unknown Fri Aug 15 18:54:10 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 07 Dec 2021 12:24:09 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator