From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu Newsgroups: gmane.emacs.devel Subject: Re: master 5b5608c614: Fix glyph skipping optimization when a tab line is enabled Date: Mon, 18 Apr 2022 15:32:42 +0800 Message-ID: <87bkwykfs5.fsf@yahoo.com> References: <83k0bmx3ke.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9490"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Apr 18 09:35:28 2022 Return-path: Envelope-to: ged-emacs-devel@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 1ngLuw-0002I7-Qr for ged-emacs-devel@m.gmane-mx.org; Mon, 18 Apr 2022 09:35:26 +0200 Original-Received: from localhost ([::1]:38512 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ngLut-0007ei-NN for ged-emacs-devel@m.gmane-mx.org; Mon, 18 Apr 2022 03:35:25 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:53216) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ngLsV-0006V9-8k for emacs-devel@gnu.org; Mon, 18 Apr 2022 03:32:55 -0400 Original-Received: from sonic309-22.consmr.mail.ne1.yahoo.com ([66.163.184.148]:39874) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ngLsT-0005s4-CH for emacs-devel@gnu.org; Mon, 18 Apr 2022 03:32:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1650267170; bh=4HV1sX2FYf62SZWJV+8tz09Hs8G8NLFE1E9tTW66L7Q=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From:Subject:Reply-To; b=pOQxAfZ3ExI2VvGpj9PDMa+TMR0SnTZJXe4XYdAcob6wZPlmUpIzgnHI2Tx2y4piYtHZJmm6gO5UXgD1n4XQ36ZEFuS0IsyZZRXI3XrSdpelOuMtEiv73888GacG0hVCoSHVkHFzbRcpWM+EkdtWY88OwkAMSolU73T7yJ8m+nRhkSUhVOAvShSlvrPqL/bS+r1XOD9SyRO5VBvxDnyE6hNEkQZ9yEhtIclSFjoGZXq1ldIK6nFoC/8e4rMN01HblZh79r5MA0iLXB1cI/CrcCTZ6gyZHq/vqQKqiNtJWTKQlHN7/phqbpPbmJCJ7WV4J2GdMG+qovcERwhcghiIvw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1650267170; bh=d31R7d659VpYpQSX2oKQjzTyC59+HC4srP6kPWenoGc=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=fQ/sYm3w9rRvbefzXQjcCL4GUO0UpzeR87kDogaWjJKQp4yMiOIbDWY94SqDzc0tVvEWuhpcAFPWHuCe3D/MxywszcDL+6CZ6GjwwizNzHr41vgU4PC5sgxwm4cPoQsbLL2149qZFtWpdSDmHLNdNyoHfeTOCH7grPC/CLu5fXnXZ9k9f4d7quGcFA2HHJUCmjGdjA84y5w1nhAKGFIOTmByzuiIkTOyjz3J+3sE+o3FQ1+IRr1F4GwybfxYZh4FAl7O4toWEEsBMAD1NawSPYXyEZsle/ulbQ5LftJIMm1VzbrYmPF0pBfgLXEGHHRfk6E8n9xRjbhcmD5iE8iK+g== X-YMail-OSG: 8VyCgvEVM1kilIFn.sopJtopUdFpLs9IYwPRJkx_o9KSOTzGQJDvueINu4ajTwF Mu4sxVzpriy2Edu1wzftvmaZlapsvJE7za3HwpCPw905R0URNIXYpPU2LZWfRk92sWztm6qgW0IR hRglBojlw.5Wlzz7dlrn.HgG2cUcLKkJZsBTQUdRXiVn0IVyraKzThg77jZmLYiuPeoPhrktJ5mO FG8fLdZpygdmD.U3GVoGXLmeGHPPG71Sxltb9gvUvj54J4jLlGQW0MwktLopUGifHQIaIwq73TtC kSl067.VUjO6L_j5aO.3EB0jKIai70PPGrkszGdPcEE_HtRXnyf0UrbbZ2imLRdQczxi20vtk7Yp 2yzEqiLiM2LRHpPwXLm13l9wcAoz0jFlGrZWCGVA1fFKPnptNNANK1zc0U5lXeiUhfI2B4qrWtpT uw1XhVqOdZHm7d2nTVZ3ErskcmQ46E4h31.HfyfolllrxpGm9nEzI9FxoeezxIyBrIyp8Ucj09KO 1zBnDCeOsGwC3.ivX1xyGULonJWKUJgDVFlQ_MigY5r9r_aKE0.uuqR2hz21f2cQHul.046AOt5f 1cIwrGfcoDfYYQFusZQiMPq0cnfMk_w09dPZbnfXbMf2gBtWWaIMTLx06GpekMNuHHOwf7wtUKEq xMnQofYTU8gjWmR50ZgRzWfJhSGioisRbMS__riFNkvL42X8.ikPUWDz02GJgEpLvGju_ShK8sHs ciho1Qw6yM1x7MxzFPdBwYI.f6Mqjiy3IcNtGjyUG69VFQ.XTEtaGgelkpYQQQQA0qWaxXRTy3OA T7vqayFbi7cQr1i0yLs5dUWluTwHa7viKjSHUwiQZH X-Sonic-MF: Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic309.consmr.mail.ne1.yahoo.com with HTTP; Mon, 18 Apr 2022 07:32:50 +0000 Original-Received: by hermes--canary-production-sg3-cfddc4f9d-6mzbv (VZM Hermes SMTP Server) with ESMTPA ID 1d6a0c440d2ddf3a30f893fea66c394c; Mon, 18 Apr 2022 07:32:46 +0000 (UTC) In-Reply-To: <83k0bmx3ke.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 18 Apr 2022 10:18:09 +0300") X-Mailer: WebService/1.1.20048 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Received-SPF: pass client-ip=66.163.184.148; envelope-from=luangruo@yahoo.com; helo=sonic309-22.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, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:288605 Archived-At: Eli Zaretskii writes: >> Author: Po Lu >> AuthorDate: Mon Apr 18 13:23:23 2022 +0800 >> Commit: Po Lu >> CommitDate: Mon Apr 18 13:23:23 2022 +0800 >> >> Fix glyph skipping optimization when a tab line is enabled >> >> * src/dispnew.c (update_text_area): Compute vpos of header line >> correctly when window has tab line. >> >> diff --git a/src/dispnew.c b/src/dispnew.c >> index 0d95904..3cfe1b8 100644 >> --- a/src/dispnew.c >> +++ b/src/dispnew.c >> @@ -3928,9 +3928,12 @@ update_text_area (struct window *w, struct glyph_row *upd >> However, it causes excessive flickering when mouse is moved >> across the mode line. Luckily, turning it off for the mode >> line doesn't seem to hurt anything. -- cyd. >> - But it is still needed for the header line. -- kfs. */ >> + But it is still needed for the header line. -- kfs. >> + The header line vpos is 1 if a tab line is enabled. (18th >> + Apr 2022) */ >> || (current_row->mouse_face_p >> - && !(current_row->mode_line_p && vpos > 0)) >> + && !(current_row->mode_line_p >> + && (vpos > w->current_matrix->tab_line_p))) >> || current_row->x != desired_row->x) >> { >> output_cursor_to (w, vpos, 0, desired_row->y, desired_row->x); > > I'm not sure I understand this change. What exactly is the problem, > and how to reproduce it? What if there's no header-line, but there is > a tab-line, or vice versa, or both are displayed? Not sure, but the previous code would also trigger for just tab lines, but not also the header line if there was a tab line. Here is how to reproduce the problem this fixes: turn on global-tab-line-mode, open Info, type "m cl RET g Predicates RET", then click on the "e" in the "Next: Control Structure" link on the header line. "Next:" will continue to be displayed in the mouse face even though the mouse is no longer on any link, due to the "glyph-skipping" optimization that is normally disabled for the header and tab lines being used. Thanks.