X-Loop: help-debbugs@HIDDEN Subject: bug#78953: 31.0.50; tab-bar-format-align-right alignment breaks if field widths change Resent-From: Daniel Mendler <mail@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: juri@HIDDEN, bug-gnu-emacs@HIDDEN Resent-Date: Fri, 04 Jul 2025 06:41:02 +0000 Resent-Message-ID: <handler.78953.B.17516112025603 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 78953 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 78953 <at> debbugs.gnu.org Cc: Juri Linkov <juri@HIDDEN> X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN X-Debbugs-Original-Xcc: Juri Linkov <juri@HIDDEN> Received: via spool by submit <at> debbugs.gnu.org id=B.17516112025603 (code B ref -1); Fri, 04 Jul 2025 06:41:02 +0000 Received: (at submit) by debbugs.gnu.org; 4 Jul 2025 06:40:02 +0000 Received: from localhost ([127.0.0.1]:56162 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uXa5Z-0001S4-64 for submit <at> debbugs.gnu.org; Fri, 04 Jul 2025 02:40:01 -0400 Received: from lists.gnu.org ([2001:470:142::17]:51606) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <mail@HIDDEN>) id 1uXa5U-0001RU-QE for submit <at> debbugs.gnu.org; Fri, 04 Jul 2025 02:39:59 -0400 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 <mail@HIDDEN>) id 1uXa5O-00083w-0i for bug-gnu-emacs@HIDDEN; Fri, 04 Jul 2025 02:39:50 -0400 Received: from server.qxqx.de ([2a01:4f8:c012:9177::1] helo=mail.qxqx.de) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <mail@HIDDEN>) id 1uXa5K-0006tP-Ry for bug-gnu-emacs@HIDDEN; Fri, 04 Jul 2025 02:39:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=daniel-mendler.de; s=key; h=Content-Type:MIME-Version:Message-ID:Date: Subject:To:From:Sender:Reply-To:Cc: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=GyI6AW6cA7iDWcRx2jQUpC2z2jInDn2HTaPghEz0JgU=; b=D/ESpc9QccuDS5eYFwjZe1el4f omevRlxigz7IBNk08esaQ5nuvg5b0wVzU+E4pd4rNIheA2wSufPBZb+b7JoRDwSy1vFxAG8BjSec3 iYV8pBJ6V3+v3eMhvhusKm0HawQyj3uVoWn94+htZK2S6UthcMWP1KnRHo9g90F+3TOs=; From: Daniel Mendler <mail@HIDDEN> Date: Fri, 04 Jul 2025 08:39:24 +0200 Message-ID: <87h5zsa28z.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2a01:4f8:c012:9177::1; envelope-from=mail@HIDDEN; helo=mail.qxqx.de X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.9 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.1 (/) When fields in `tab-bar-format' after `tab-bar-format-align-right' change their width between two calls, then the alignment breaks - the right aligned tab field jumps around. Example configuration which uses a `global-mode-string' with a random width: (setq tab-bar-format '( tab-bar-format-tabs tab-bar-format-align-right tab-bar-format-global)) (setq global-mode-string '("|" (:eval (make-string (random 10) ?#)) "|")) (run-at-time 1 1 #'force-mode-line-update t) A more realistic configuration with a timer (and a variable pitch face) also shows the problem. A possible solution could be to handle `tab-bar-format-align-right' in `tab-bar-format-list', such that the functions in the `tab-bar-format' list after `tab-bar-format-align-right' are not called twice, such that the computed field width matches the displayed field. In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.49, cairo version 1.18.4) of 2025-06-20 Windowing system distributor 'The X.Org Foundation', version 11.0.12101016 System Description: Debian GNU/Linux 13 (trixie) Configured using: 'configure --prefix=$HOME/.local/share/emacs --without-compress-install --with-tree-sitter --with-native-compilation --with-dbus --without-selinux --without-threads --disable-gc-mark-trace --without-gsettings --without-gpm --with-cairo --with-cairo-xcb --with-xinput2 --with-x-toolkit=gtk3 --without-toolkit-scroll-bars' Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ JPEG LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 TIFF TREE_SITTER WEBP X11 XDBE XIM XINERAMA XINPUT2 XPM XRANDR GTK3 ZLIB
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Daniel Mendler <mail@HIDDEN> Subject: bug#78953: Acknowledgement (31.0.50; tab-bar-format-align-right alignment breaks if field widths change) Message-ID: <handler.78953.B.17516112025603.ack <at> debbugs.gnu.org> References: <87h5zsa28z.fsf@HIDDEN> X-Gnu-PR-Message: ack 78953 X-Gnu-PR-Package: emacs Reply-To: 78953 <at> debbugs.gnu.org Date: Fri, 04 Jul 2025 06:41:02 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. As you requested using X-Debbugs-CC, your message was also forwarded to Juri Linkov <juri@HIDDEN> (after having been given a bug report number, if it did not have one). Your message has been sent to the package maintainer(s): bug-gnu-emacs@HIDDEN If you wish to submit further information on this problem, please send it to 78953 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 78953: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D78953 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#78953: 31.0.50; tab-bar-format-align-right alignment breaks if field widths change Resent-From: Juri Linkov <juri@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 04 Jul 2025 06:54:02 +0000 Resent-Message-ID: <handler.78953.B78953.175161203211858 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 78953 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Daniel Mendler <mail@HIDDEN> Cc: 78953 <at> debbugs.gnu.org Received: via spool by 78953-submit <at> debbugs.gnu.org id=B78953.175161203211858 (code B ref 78953); Fri, 04 Jul 2025 06:54:02 +0000 Received: (at 78953) by debbugs.gnu.org; 4 Jul 2025 06:53:52 +0000 Received: from localhost ([127.0.0.1]:56213 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uXaIx-00035B-Rq for submit <at> debbugs.gnu.org; Fri, 04 Jul 2025 02:53:52 -0400 Received: from mout-y-111.mailbox.org ([91.198.250.236]:50542) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1uXaIs-00033C-Il for 78953 <at> debbugs.gnu.org; Fri, 04 Jul 2025 02:53:48 -0400 Received: from smtp1.mailbox.org (smtp1.mailbox.org [IPv6:2001:67c:2050:b231:465::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-y-111.mailbox.org (Postfix) with ESMTPS id 4bYPVV2h4Xz9xrB; Fri, 4 Jul 2025 08:53:38 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; t=1751612018; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=6HJX3oOyX6w5SW37nRNmjP26HXQYOUVx0Xd/v49kA+s=; b=ppgKpI+21krxE2BXmH5VgIFfOFh+1u+vja79TI+q2jNNYjElywGP00WkGdrBEyCKSTYJj0 u7rU8zgNKGsZMFFTza1s3Q18xyknVM0zEQYEQbAoCJrfisAtiTC3+jHwxfR1svG1g+LnF6 NBhP9RFWjv4BJvho06RxlR+sm8QfR1pcJ3VY/AveVWxMozI7xqRT0uvC2ET0iua3oJBsZG PCoxiBeCTtiRwk+udhKIB7H3oV25pRGU6crKhiNq4ItaQUjiY+wS7o0n9HTmPQJagQUNuP q2gaKJabMCUqU2niHNCoLOmvM2QRy6hxf9730ok1ETFzCT5r6PzW7CUTVF/cCQ== From: Juri Linkov <juri@HIDDEN> In-Reply-To: <87h5zsa28z.fsf@HIDDEN> Organization: LINKOV.NET References: <87h5zsa28z.fsf@HIDDEN> Date: Fri, 04 Jul 2025 09:52:58 +0300 Message-ID: <878ql4tpkl.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Rspamd-Queue-Id: 4bYPVV2h4Xz9xrB X-Spam-Score: -0.5 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.5 (-) > When fields in `tab-bar-format' after `tab-bar-format-align-right' > change their width between two calls, then the alignment breaks - the > right aligned tab field jumps around. Example configuration which uses a > `global-mode-string' with a random width: > > (setq tab-bar-format > '( tab-bar-format-tabs > tab-bar-format-align-right > tab-bar-format-global)) > > (setq global-mode-string > '("|" (:eval (make-string (random 10) ?#)) "|")) > > (run-at-time 1 1 #'force-mode-line-update t) Thanks, I confirm the problem. > A more realistic configuration with a timer (and a variable pitch face) > also shows the problem. A possible solution could be to handle > `tab-bar-format-align-right' in `tab-bar-format-list', such that the > functions in the `tab-bar-format' list after > `tab-bar-format-align-right' are not called twice, such that the > computed field width matches the displayed field. So need to update :align-to in tab-bar-format-list.
X-Loop: help-debbugs@HIDDEN Subject: bug#78953: 31.0.50; tab-bar-format-align-right alignment breaks if field widths change Resent-From: Daniel Mendler <mail@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 04 Jul 2025 07:22:02 +0000 Resent-Message-ID: <handler.78953.B78953.175161371024190 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 78953 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov <juri@HIDDEN> Cc: 78953 <at> debbugs.gnu.org Received: via spool by 78953-submit <at> debbugs.gnu.org id=B78953.175161371024190 (code B ref 78953); Fri, 04 Jul 2025 07:22:02 +0000 Received: (at 78953) by debbugs.gnu.org; 4 Jul 2025 07:21:50 +0000 Received: from localhost ([127.0.0.1]:56300 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uXak2-0006I6-46 for submit <at> debbugs.gnu.org; Fri, 04 Jul 2025 03:21:50 -0400 Received: from server.qxqx.de ([2a01:4f8:c012:9177::1]:59969 helo=mail.qxqx.de) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <mail@HIDDEN>) id 1uXajy-0006H5-FU for 78953 <at> debbugs.gnu.org; Fri, 04 Jul 2025 03:21:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=daniel-mendler.de; s=key; h=Content-Type:MIME-Version:Message-ID:Date: References:In-Reply-To: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=RmDyJkYN9BHQB0oMOqg1MjufttLTRDkhr6H3N18MVZk=; b=d+It5c7B8/50ey1zMPshSMTS8q 5bbT9dL4sy5LeiGKt0HkTEksEYgq+zqhif5Or1FutLMJc9r3MGzh1DTOTeKvTb6VHckJlwAs4mM4p 7In4genk9yaPZgtooGZU/RPLhsnbqomXxisLqBcGXtbhajkd2vgcbnTgI4saDKbf2ohs=; From: Daniel Mendler <mail@HIDDEN> In-Reply-To: <878ql4tpkl.fsf@HIDDEN> References: <87h5zsa28z.fsf@HIDDEN> <878ql4tpkl.fsf@HIDDEN> Date: Fri, 04 Jul 2025 09:21:38 +0200 Message-ID: <87sejc775p.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) Juri Linkov <juri@HIDDEN> writes: >> When fields in `tab-bar-format' after `tab-bar-format-align-right' >> change their width between two calls, then the alignment breaks - the >> right aligned tab field jumps around. Example configuration which uses a >> `global-mode-string' with a random width: >> >> (setq tab-bar-format >> '( tab-bar-format-tabs >> tab-bar-format-align-right >> tab-bar-format-global)) >> >> (setq global-mode-string >> '("|" (:eval (make-string (random 10) ?#)) "|")) >> >> (run-at-time 1 1 #'force-mode-line-update t) > > Thanks, I confirm the problem. Thanks for checking. >> A more realistic configuration with a timer (and a variable pitch face) >> also shows the problem. A possible solution could be to handle >> `tab-bar-format-align-right' in `tab-bar-format-list', such that the >> functions in the `tab-bar-format' list after >> `tab-bar-format-align-right' are not called twice, such that the >> computed field width matches the displayed field. > > So need to update :align-to in tab-bar-format-list. Yes, exactly. Also another problem I've observed is that `string-pixel-width' is slow, which is a problem with frequent updates/redisplays, for example when scrolling a lot with `pixel-scroll-precision-mode'. I suggest to update `:align-to' in `tab-bar-format-list' and also cache the computed width and the formatted tab bar string. Then the cached string can be compared with `equal-including-properties` and only if the string changes, the pixel width needs to be recomputed. Daniel
X-Loop: help-debbugs@HIDDEN Subject: bug#78953: 31.0.50; tab-bar-format-align-right alignment breaks if field widths change Resent-From: Juri Linkov <juri@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 09 Jul 2025 06:34:02 +0000 Resent-Message-ID: <handler.78953.B78953.175204283530809 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 78953 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Daniel Mendler <mail@HIDDEN> Cc: 78953 <at> debbugs.gnu.org Received: via spool by 78953-submit <at> debbugs.gnu.org id=B78953.175204283530809 (code B ref 78953); Wed, 09 Jul 2025 06:34:02 +0000 Received: (at 78953) by debbugs.gnu.org; 9 Jul 2025 06:33:55 +0000 Received: from localhost ([127.0.0.1]:48052 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uZONO-00080n-Vd for submit <at> debbugs.gnu.org; Wed, 09 Jul 2025 02:33:55 -0400 Received: from mout-y-111.mailbox.org ([2001:67c:2050:103:465::111]:52270) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1uZONL-0007zE-Mg; Wed, 09 Jul 2025 02:33:53 -0400 Received: from smtp202.mailbox.org (smtp202.mailbox.org [10.196.197.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-y-111.mailbox.org (Postfix) with ESMTPS id 4bcSq80KXVz9y0x; Wed, 9 Jul 2025 08:33:40 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; t=1752042820; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=pJ+hUBNuF5ip6cTf0x3uEdA8eVIHaThvOj4Vu6KFvVI=; b=Wegxyy436cGHzfdIgqsOjTEMrJGgDKX5ME2h7K5eZqxXAMI7aCcQdGvH85pCfUoVxgjayy to7lD3CEm0dkPh8nvbzknKx8btHINYqBgXg1TuGLMrjFOimH0D3lMneXMnQ+4SvOlEfvdD 4apePACfA+4JOygIf+PVepi3P7rwb4bYokUgzHCdfYtd0j+8kfQs8Tc3KPGTbfhUtsS6z5 YtvHzy+JMi8+QJb01x7y/wV/d9GEugjz3B285rjt5NbGlbmNzp2k2NhyN2i0SoD7+X8GjP dkk6M/b0Sw7kCp2K70iLdSBUX+6AgIlx1HjXV6nXGlt2KpfbySTnYzsScbV5JA== From: Juri Linkov <juri@HIDDEN> In-Reply-To: <87sejc775p.fsf@HIDDEN> Organization: LINKOV.NET References: <87h5zsa28z.fsf@HIDDEN> <878ql4tpkl.fsf@HIDDEN> <87sejc775p.fsf@HIDDEN> Date: Wed, 09 Jul 2025 09:32:39 +0300 Message-ID: <87sej5ri0o.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) close 78953 31.0.50 thanks >>> A more realistic configuration with a timer (and a variable pitch face) >>> also shows the problem. A possible solution could be to handle >>> `tab-bar-format-align-right' in `tab-bar-format-list', such that the >>> functions in the `tab-bar-format' list after >>> `tab-bar-format-align-right' are not called twice, such that the >>> computed field width matches the displayed field. Now `tab-bar-format-list' and `tab-bar-format-align-right' are fixed to not call `tab-bar-format-global' twice. > Also another problem I've observed is that `string-pixel-width' is slow, > which is a problem with frequent updates/redisplays, for example when > scrolling a lot with `pixel-scroll-precision-mode'. > > I suggest to update `:align-to' in `tab-bar-format-list' and also cache > the computed width and the formatted tab bar string. Then the cached > string can be compared with `equal-including-properties` and only if the > string changes, the pixel width needs to be recomputed. Now the formatted tab bar string is cached as well.
Received: (at control) by debbugs.gnu.org; 9 Jul 2025 06:34:02 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 09 02:34:02 2025 Received: from localhost ([127.0.0.1]:48054 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1uZONV-00081V-G4 for submit <at> debbugs.gnu.org; Wed, 09 Jul 2025 02:34:02 -0400 Received: from mout-y-111.mailbox.org ([2001:67c:2050:103:465::111]:52270) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1uZONL-0007zE-Mg; Wed, 09 Jul 2025 02:33:53 -0400 Received: from smtp202.mailbox.org (smtp202.mailbox.org [10.196.197.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-y-111.mailbox.org (Postfix) with ESMTPS id 4bcSq80KXVz9y0x; Wed, 9 Jul 2025 08:33:40 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; t=1752042820; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=pJ+hUBNuF5ip6cTf0x3uEdA8eVIHaThvOj4Vu6KFvVI=; b=Wegxyy436cGHzfdIgqsOjTEMrJGgDKX5ME2h7K5eZqxXAMI7aCcQdGvH85pCfUoVxgjayy to7lD3CEm0dkPh8nvbzknKx8btHINYqBgXg1TuGLMrjFOimH0D3lMneXMnQ+4SvOlEfvdD 4apePACfA+4JOygIf+PVepi3P7rwb4bYokUgzHCdfYtd0j+8kfQs8Tc3KPGTbfhUtsS6z5 YtvHzy+JMi8+QJb01x7y/wV/d9GEugjz3B285rjt5NbGlbmNzp2k2NhyN2i0SoD7+X8GjP dkk6M/b0Sw7kCp2K70iLdSBUX+6AgIlx1HjXV6nXGlt2KpfbySTnYzsScbV5JA== From: Juri Linkov <juri@HIDDEN> To: Daniel Mendler <mail@HIDDEN> Subject: Re: bug#78953: 31.0.50; tab-bar-format-align-right alignment breaks if field widths change In-Reply-To: <87sejc775p.fsf@HIDDEN> Organization: LINKOV.NET References: <87h5zsa28z.fsf@HIDDEN> <878ql4tpkl.fsf@HIDDEN> <87sejc775p.fsf@HIDDEN> Date: Wed, 09 Jul 2025 09:32:39 +0300 Message-ID: <87sej5ri0o.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: control Cc: 78953 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) close 78953 31.0.50 thanks >>> A more realistic configuration with a timer (and a variable pitch face) >>> also shows the problem. A possible solution could be to handle >>> `tab-bar-format-align-right' in `tab-bar-format-list', such that the >>> functions in the `tab-bar-format' list after >>> `tab-bar-format-align-right' are not called twice, such that the >>> computed field width matches the displayed field. Now `tab-bar-format-list' and `tab-bar-format-align-right' are fixed to not call `tab-bar-format-global' twice. > Also another problem I've observed is that `string-pixel-width' is slow, > which is a problem with frequent updates/redisplays, for example when > scrolling a lot with `pixel-scroll-precision-mode'. > > I suggest to update `:align-to' in `tab-bar-format-list' and also cache > the computed width and the formatted tab bar string. Then the cached > string can be compared with `equal-including-properties` and only if the > string changes, the pixel width needs to be recomputed. Now the formatted tab bar string is cached as well.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.