From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 17 Feb 2020 18:53:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 39649@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.15819655586576 (code B ref -1); Mon, 17 Feb 2020 18:53:01 +0000 Received: (at submit) by debbugs.gnu.org; 17 Feb 2020 18:52:38 +0000 Received: from localhost ([127.0.0.1]:39233 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j3lVW-0001hz-7W for submit@debbugs.gnu.org; Mon, 17 Feb 2020 13:52:38 -0500 Received: from lists.gnu.org ([209.51.188.17]:60969) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j3lVV-0001hs-1R for submit@debbugs.gnu.org; Mon, 17 Feb 2020 13:52:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49760) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j3lVT-0002OP-Mg for bug-gnu-emacs@gnu.org; Mon, 17 Feb 2020 13:52:36 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j3lVS-0005Eh-F2 for bug-gnu-emacs@gnu.org; Mon, 17 Feb 2020 13:52:35 -0500 Received: from mail-vs1-xe44.google.com ([2607:f8b0:4864:20::e44]:46480) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1j3lVS-0005Cj-9Q for bug-gnu-emacs@gnu.org; Mon, 17 Feb 2020 13:52:34 -0500 Received: by mail-vs1-xe44.google.com with SMTP id t12so11033381vso.13 for ; Mon, 17 Feb 2020 10:52:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=9ohc38s24qU6sd67GP0PhwLIwLG3iXVwc3Dl7zMf/gI=; b=am21XUjdZpXEfrwK0XpbyCxvhUHiweOj6vqkld5Wri2AoH8kuJfmzPHM8xvi4iOP+H ygE2ViYhcBrsyDeH5cRi8zpcyHegmDKWHxsCZjtLnBH5V+pbrmVjzLp+izj1vfSd6Sly 33uPAp3I8q8ocfSzNfQQ+kD7mfjbTApF0Id7nuAZi67HB02EJqu4pBG2MNCupX8Tm9+P lhFR+thAe07d5ZwCHuE5/oxfNWvkcyz1k/VWfAyGcPFoyy4oP5NeOtU8EwU6OFcmVIfe WP5TJ8uHrBj7UL5dx2ettwPvznTx3yCZ8PfD+ZRhgTZaXShQgCD6Tv5q0waOxvQzFa8W eXkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=9ohc38s24qU6sd67GP0PhwLIwLG3iXVwc3Dl7zMf/gI=; b=jchpVsWrr2+FJHJUCpgTLPhUs4iyvTPmEWzlfHM6J4o+pzkQDndI0PmW4mhF7Y/lVc r+2keGXvELWb75KK20Oq0y/ZC/I+fxRxqSwqKpdaAalf8RftObnK46SXRyisqU6WkW16 qGbPQVzAm14Mcg7VKhTm77Bgp78l5S1JJGZGtv4u8fAS3txEmvjcbG54tlvpK1msjK6Y xV1/nSk5y9n2mnPiRRrlf58NRLFhIRKzdLxf96E3wFuJxi579WpBmfAL3/GDAsTUa8vp K29nlpLWKaTDjeT/b8jDvEaxOuhD8g2JhATezB6TMrp0C6uG9uu09V0/kXTuheM+/d6k AV/Q== X-Gm-Message-State: APjAAAXSaakW8WYhIJUFoydHu6a54xijAuEWnqCD6FgvJOwp3WxqN9SJ /puvFWXAocMUe9ya5ADdTYVaQciKIOvCWZm2NFb9nioptWY= X-Google-Smtp-Source: APXvYqz2N4iXFKlwdmfyjFcjDFTRjbIlpzgnW2uBUTXFcjiSEjk76gmnonEvOT5xgsT8eAGTIYqc/p5blsqDZ/50iIs= X-Received: by 2002:a67:6601:: with SMTP id a1mr8884348vsc.0.1581965553042; Mon, 17 Feb 2020 10:52:33 -0800 (PST) MIME-Version: 1.0 From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Date: Mon, 17 Feb 2020 19:51:58 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::e44 X-Spam-Score: 2.3 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.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 the administrator of that system for details. Content preview: tab-line doesn't scroll despite tab-line-auto-hscroll being set to t. When having several buffers open and switching to one that is not currently visible in the tab-line the tab-line won't auto-scroll. Video example: https://youtu.be/TDBeox2tQoA Content analysis details: (2.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [209.51.188.17 listed in list.dnswl.org] 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (joca.bt[at]gmail.com) 2.0 SPOOFED_FREEMAIL No description available. 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: -0.7 (/) tab-line doesn't scroll despite tab-line-auto-hscroll being set to t. When having several buffers open and switching to one that is not currently visible in the tab-line the tab-line won't auto-scroll. Video example: https://youtu.be/TDBeox2tQoA In GNU Emacs 27.0.60 (build 1, x86_64-w64-mingw32) of 2019-12-28 built on CIRROCUMULUS Repository revision: 21c3020fcec0a32122d2680a391864a75393031b Repository branch: emacs-27 Windowing system distributor 'Microsoft Corp.', version 10.0.18363 System Description: Microsoft Windows 10 Pro (v10.0.1909.18363.535) Configured using: 'configure --without-dbus --host=x86_64-w64-mingw32 --without-compress-install -C 'CFLAGS=-O2 -static -g3'' Configured features: XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY W32NOTIFY ACL GNUTLS LIBXML2 HARFBUZZ ZLIB TOOLKIT_SCROLL_BARS MODULES THREADS PDUMPER LCMS2 GMP Important settings: value of $LANG: PTG locale-coding-system: cp1252 From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 18 Feb 2020 00:15:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: =?UTF-8?Q?Jo=C3=A3o?= Guerra Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.15819848893186 (code B ref 39649); Tue, 18 Feb 2020 00:15:02 +0000 Received: (at 39649) by debbugs.gnu.org; 18 Feb 2020 00:14:49 +0000 Received: from localhost ([127.0.0.1]:39367 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j3qXI-0000pK-VG for submit@debbugs.gnu.org; Mon, 17 Feb 2020 19:14:49 -0500 Received: from cheetah.birch.relay.mailchannels.net ([23.83.209.34]:15115) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j3qXG-0000pB-QE for 39649@debbugs.gnu.org; Mon, 17 Feb 2020 19:14:48 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 5446622C2C; Tue, 18 Feb 2020 00:14:45 +0000 (UTC) Received: from pdx1-sub0-mail-a38.g.dreamhost.com (100-96-216-4.trex.outbound.svc.cluster.local [100.96.216.4]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id E0A6522BE7; Tue, 18 Feb 2020 00:14:44 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a38.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Tue, 18 Feb 2020 00:14:45 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Spot-Inform: 6a76bf57137bdea0_1581984885129_2508830475 X-MC-Loop-Signature: 1581984885129:4230771263 X-MC-Ingress-Time: 1581984885129 Received: from pdx1-sub0-mail-a38.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a38.g.dreamhost.com (Postfix) with ESMTP id CB22CB2792; Mon, 17 Feb 2020 16:14:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=linkov.net; bh=4TIlYu C/DquRv3KbnpVDKUV6QK8=; b=XjBMwODKRWCnq2cSH+dXzDxTA/zJQt1Pvedc04 gKx5+GPyADkv0oufJcmWj7kPD8EX9FFMPHkEAlq8jFdctdQQ+aLHknej+4rfgeDZ CymL9e6OCdjWHWT9J+gecsxBVUIQ7IPorybCdx286BfGS6+aNBorJ7Xyxt59TabI EmC0Q= Received: from localhost.linkov.net (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a38.g.dreamhost.com (Postfix) with ESMTPSA id 33366B2700; Mon, 17 Feb 2020 16:14:40 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a38 From: Juri Linkov Organization: LINKOV.NET References: Date: Tue, 18 Feb 2020 01:03:12 +0200 In-Reply-To: ("=?UTF-8?Q?Jo=C3=A3o?= Guerra"'s message of "Mon, 17 Feb 2020 19:51:58 +0100") Message-ID: <87lfp0lsun.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: 0 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedrjeejgddulecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecunecujfgurhephffvufhofhffjgfkfgggtgfgsehtkeertddtreejnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecukfhppeeluddruddvledruddtfedrvdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhppdhhvghloheplhhotggrlhhhohhsthdrlhhinhhkohhvrdhnvghtpdhinhgvthepledurdduvdelrddutdefrddvjedprhgvthhurhhnqdhprghthheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqedpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnrhgtphhtthhopehjohgtrgdrsghtsehgmhgrihhlrdgtohhm Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) 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.0 (-) > tab-line doesn't scroll despite tab-line-auto-hscroll being set to t. > > When having several buffers open and switching to one that is not > currently visible in the tab-line the tab-line won't auto-scroll. This is an intentional feature: auto-scroll is disabled after the first time when you scroll the tab-line manually. Otherwise you won't be able to scroll the tab-line with the mouse-wheel or using the arrow buttons when auto-scrolling is still in effect during manual scrolling. You can reset auto-scrolling by evaluating in e.g. =E2=80=98M-:=E2=80=99 (set-window-parameter nil 'tab-line-hscroll nil) But indeed this is not right way to do this - it should automatically reset auto-scrolling at some time afterwards after finishing manually scrolling the tab-line. I was unable to find such a natural event on whi= ch to reset auto-scrolling - there are too many different possible events to choose from. One of the most natural is to reset auto-scrolling after manually selecting a tab. Could you please try this patch to see if it solves your problem: diff --git a/lisp/tab-line.el b/lisp/tab-line.el index 8f1221abe4..86ac234f3d 100644 --- a/lisp/tab-line.el +++ b/lisp/tab-line.el @@ -600,6 +600,7 @@ tab-line-select-tab (let* ((posnp (event-start e)) (tab (get-pos-property 1 'tab (car (posn-string posnp)))) (buffer (if (bufferp tab) tab (cdr (assq 'buffer tab))))) + (set-window-parameter nil 'tab-line-hscroll nil) (if buffer (tab-line-select-tab-buffer buffer (posn-window posnp)) (let ((select (cdr (assq 'select tab)))) From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 18 Feb 2020 20:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158205768513062 (code B ref 39649); Tue, 18 Feb 2020 20:29:02 +0000 Received: (at 39649) by debbugs.gnu.org; 18 Feb 2020 20:28:05 +0000 Received: from localhost ([127.0.0.1]:41333 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j49TR-0003Ob-1y for submit@debbugs.gnu.org; Tue, 18 Feb 2020 15:28:05 -0500 Received: from mail-ua1-f49.google.com ([209.85.222.49]:46142) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j49TP-0003O2-5H for 39649@debbugs.gnu.org; Tue, 18 Feb 2020 15:28:03 -0500 Received: by mail-ua1-f49.google.com with SMTP id l6so7955518uap.13 for <39649@debbugs.gnu.org>; Tue, 18 Feb 2020 12:28:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Fw39XHvgWxqBrlcse0aH6adEOWVIOrconsnSbuBWf+U=; b=tJv2UB7eSxasgDpxMMYRNumz5uVsdKWYhLVMbwp33N9x+7HdqzoGKijHJIFoOiN6Nd Ni6OiD4wCBrDOKjzPF9CHg4TnTmKcGYE1hgSQSXULBBlpweFVeJ3QJaOc32NwmtD58ir AV0LiNEoHk60UwwmRuSSVYsSCCgdNIsaPlA9/RwJM66eO1wgEzbsDiPjwJ/GIH3zXcAe CBk6+fm/+sM04KJx+P5tJhHqbr3mz4B8mS/qfMVtUwjlEXpC/eJQCFn5uc+Nw6GRL7QA lN1k7NHpz1TMXDc1h6gTvIlabW63fPjL4TDSQIypw6Vj98C90YEjyEBgjmVU28uqmDkg B8FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Fw39XHvgWxqBrlcse0aH6adEOWVIOrconsnSbuBWf+U=; b=OmSmLNpMYcTtEHQNfXVEeJK4Yjw1DdadwmHdn3sGRl7W2rBRbdAyqZAddiRLuDwiNb zEiIh6GFQmqXYsGxizl38a7MobhCtcrR3E+Bgoyd7C1tFU0w8PhEbw912ovpJs+3wLZ9 TIsoxHQzQQ1F86Z3JnpTjSzWP4ntYO+YQh+xdzMS/NMDTtyvn6X1SCmLLeDOyy0H6vNL iuKWl9zemoGgCQ2OkA+Btm/IBRHzzvBPNK71HiVknh0mRSy+/KnQrCcn+uxphDU4f1XO 1YinSwMUiWWJzDMXsRtu18h9NPkeWpzVOPCoXp/f+VgdYh5u9y1xHIJq0kk30+ugTgbk 2DIw== X-Gm-Message-State: APjAAAXE0S1sCbXb3F9wKspn7cGkyde2kpi/UXt2+QNR/1kIgZOl97// 6haGb01SdfRTyRmMmGPDuWDOGEvMWL/jCahFmgs= X-Google-Smtp-Source: APXvYqwAz/smF5xzqPVchrqT+sf7BepX9SvNDj9RUbz/i8/f1Jur7Z91l1kEhgk8xMgEgwfpBG1ytWtGeVVqeeMN28I= X-Received: by 2002:ab0:7358:: with SMTP id k24mr11196691uap.87.1582057676318; Tue, 18 Feb 2020 12:27:56 -0800 (PST) MIME-Version: 1.0 References: <87lfp0lsun.fsf@mail.linkov.net> In-Reply-To: <87lfp0lsun.fsf@mail.linkov.net> From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Date: Tue, 18 Feb 2020 21:27:22 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) 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.0 (-) Seems to fix the issue in a specific situation, viz. after I select a tab manually with the mouse. However, when selecting a buffer that is already visible in the tab-line the tab-line still might get scrolled or if I just scroll the tab-line and change to a non-visible buffer the tab-line doesn't get scrolled. I'm a bit interested in knowing the reasoning to not always scroll the tab-line. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 18 Feb 2020 22:57:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: =?UTF-8?Q?Jo=C3=A3o?= Guerra Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158206657427746 (code B ref 39649); Tue, 18 Feb 2020 22:57:03 +0000 Received: (at 39649) by debbugs.gnu.org; 18 Feb 2020 22:56:14 +0000 Received: from localhost ([127.0.0.1]:41438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j4Bmo-0007DS-3R for submit@debbugs.gnu.org; Tue, 18 Feb 2020 17:56:14 -0500 Received: from blue.elm.relay.mailchannels.net ([23.83.212.20]:28276) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j4Bmm-0007DH-Kr for 39649@debbugs.gnu.org; Tue, 18 Feb 2020 17:56:13 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 31238214AB; Tue, 18 Feb 2020 22:56:11 +0000 (UTC) Received: from pdx1-sub0-mail-a86.g.dreamhost.com (100-96-38-98.trex.outbound.svc.cluster.local [100.96.38.98]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id A41DD204EF; Tue, 18 Feb 2020 22:56:10 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a86.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Tue, 18 Feb 2020 22:56:11 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Share-Towering: 54160ebc1cec9b12_1582066570938_1404977987 X-MC-Loop-Signature: 1582066570938:3045496584 X-MC-Ingress-Time: 1582066570937 Received: from pdx1-sub0-mail-a86.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a86.g.dreamhost.com (Postfix) with ESMTP id AB4C67EF60; Tue, 18 Feb 2020 14:56:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=pISxfirkH8O2emE/kwWPuqDxKuE=; b= fBqk322HPv0PzJozv0wlAWdLefVIa1tVY9eqIFh6awnYiE32eX2DU2U22P3dGu5G BaRZ1twwk2jpkEvwRLd4w2hH80gI6YFRaH4lFph7pR7Obg1jvPbieQ3W4nV6Qii7 a75KmsuTW6oJXuZaH8zbpTYb52Jg33Dxsb+4udDS0bc= Received: from localhost.linkov.net (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a86.g.dreamhost.com (Postfix) with ESMTPSA id 3B2B97EF56; Tue, 18 Feb 2020 14:56:06 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a86 From: Juri Linkov Organization: LINKOV.NET References: <87lfp0lsun.fsf@mail.linkov.net> Date: Wed, 19 Feb 2020 00:39:09 +0200 In-Reply-To: ("=?UTF-8?Q?Jo=C3=A3o?= Guerra"'s message of "Tue, 18 Feb 2020 21:27:22 +0100") Message-ID: <87imk3a5sa.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: 0 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedrjeelgddtudcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecunecujfgurhephffvufhofhffjgfkfgggtgesthdtredttdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucfkphepledurdduvdelrddutdefrddvjeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhhouggvpehsmhhtphdphhgvlhhopehlohgtrghlhhhoshhtrdhlihhnkhhovhdrnhgvthdpihhnvghtpeeluddruddvledruddtfedrvdejpdhrvghtuhhrnhdqphgrthhhpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhhrtghpthhtohepjhhotggrrdgsthesghhmrghilhdrtghomh X-Spam-Score: 0.0 (/) 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.0 (-) > Seems to fix the issue in a specific situation, viz. after I select a > tab manually with the mouse. However, when selecting a buffer that is > already visible in the tab-line the tab-line still might get scrolled > or if I just scroll the tab-line and change to a non-visible buffer > the tab-line doesn't get scrolled. I'm a bit interested in knowing the > reasoning to not always scroll the tab-line. While you're manually scrolling the tab-line using the mouse wheel or clicking on arrow buttons, auto-scrolling should be disabled because it should not bring the current tab back into view immediately on every step of manual scrolling. Just imagine that you clicked on the arrow button to scroll, but it has no effect because auto-scrolling immediately moved the tab-line back to its original state. This is why auto-scrolling should be disabled during manual scrolling. Now the question: how to detect the moment when you stop manually scrolling? How would you indicate that manual scrolling is finished, and it's time to enable auto-scrolling to bring the currently selected tab back into view? I have no idea. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 19 Feb 2020 00:52:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: =?UTF-8?Q?Jo=C3=A3o?= Guerra Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.15820734785946 (code B ref 39649); Wed, 19 Feb 2020 00:52:02 +0000 Received: (at 39649) by debbugs.gnu.org; 19 Feb 2020 00:51:18 +0000 Received: from localhost ([127.0.0.1]:41481 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j4Da9-0001Xo-7a for submit@debbugs.gnu.org; Tue, 18 Feb 2020 19:51:18 -0500 Received: from aye.elm.relay.mailchannels.net ([23.83.212.6]:29683) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j4Da7-0001Xf-EY for 39649@debbugs.gnu.org; Tue, 18 Feb 2020 19:51:16 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id E59D2360F99; Wed, 19 Feb 2020 00:51:13 +0000 (UTC) Received: from pdx1-sub0-mail-a86.g.dreamhost.com (100-96-13-15.trex.outbound.svc.cluster.local [100.96.13.15]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id C9E2A360E07; Wed, 19 Feb 2020 00:51:12 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a86.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Wed, 19 Feb 2020 00:51:13 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Skirt-Tasty: 1641f0ac68e2b056_1582073473086_636771610 X-MC-Loop-Signature: 1582073473086:1003631037 X-MC-Ingress-Time: 1582073473086 Received: from pdx1-sub0-mail-a86.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a86.g.dreamhost.com (Postfix) with ESMTP id 36A677F038; Tue, 18 Feb 2020 16:51:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=wlTbTr9XSu2Uqqiw2qlOr0Uueg0=; b= bOt3Z+6+IaZMWqwuH2i4pFSAlmNCrPt882JupIefrAdzzvnI7U17ui1PXrzQqAOA N7ihv/DBPeIXlb38EyR3JNj1CZRLw/5yEZEIfXYB8RzUVeRXULcaaXft+BVCa7zW IQ8gpeN3oM6ZJe73Ph64RQ6yTIqiwj2Kq+AWWL55IOg= Received: from localhost.linkov.net (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a86.g.dreamhost.com (Postfix) with ESMTPSA id 2557A7F015; Tue, 18 Feb 2020 16:51:06 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a86 From: Juri Linkov Organization: LINKOV.NET References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> Date: Wed, 19 Feb 2020 02:24:18 +0200 In-Reply-To: <87imk3a5sa.fsf@mail.linkov.net> (Juri Linkov's message of "Wed, 19 Feb 2020 00:39:09 +0200") Message-ID: <87h7zn4d99.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: 0 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedrjeelgddvhecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecunecujfgurhephffvufhofhffjgfkfgggtgesthdtredttdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucfkphepledurdduvdelrddutdefrddvjeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhhouggvpehsmhhtphdphhgvlhhopehlohgtrghlhhhoshhtrdhlihhnkhhovhdrnhgvthdpihhnvghtpeeluddruddvledruddtfedrvdejpdhrvghtuhhrnhdqphgrthhhpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhhrtghpthhtohepjhhotggrrdgsthesghhmrghilhdrtghomh X-Spam-Score: 0.0 (/) 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.0 (-) >> Seems to fix the issue in a specific situation, viz. after I select a >> tab manually with the mouse. However, when selecting a buffer that is >> already visible in the tab-line the tab-line still might get scrolled >> or if I just scroll the tab-line and change to a non-visible buffer >> the tab-line doesn't get scrolled. I'm a bit interested in knowing the >> reasoning to not always scroll the tab-line. > > While you're manually scrolling the tab-line using the mouse wheel > or clicking on arrow buttons, auto-scrolling should be disabled > because it should not bring the current tab back into view immediately > on every step of manual scrolling. Just imagine that you clicked > on the arrow button to scroll, but it has no effect because auto-scrolling > immediately moved the tab-line back to its original state. > This is why auto-scrolling should be disabled during manual scrolling. > > Now the question: how to detect the moment when you stop manually > scrolling? How would you indicate that manual scrolling is finished, > and it's time to enable auto-scrolling to bring the currently selected tab > back into view? I have no idea. Actually, I have an idea - the right moment is when the current buffer changes on the current tab. This patch is the right way to handle this case: diff --git a/lisp/tab-line.el b/lisp/tab-line.el index 86ac234f3d..ad2b167e33 100644 --- a/lisp/tab-line.el +++ b/lisp/tab-line.el @@ -464,6 +464,13 @@ tab-line-format (window-buffer) (window-parameter nil 'tab-line-hscroll))) (cache (window-parameter nil 'tab-line-cache))) + ;; Enable auto-hscroll again after it was disabled on manual scrolling. + ;; The moment to enable it is when the window-buffer was updated. + (when (and tab-line-auto-hscroll ; if auto-hscroll was enabled + (natnump (nth 2 cache-key)) ; non-negative on manual scroll + cache ; window-buffer was updated + (not (equal (nth 1 (car cache)) (nth 1 cache-key)))) + (set-window-parameter nil 'tab-line-hscroll nil)) (or (and cache (equal (car cache) cache-key) (cdr cache)) (cdr (set-window-parameter nil 'tab-line-cache From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 19 Feb 2020 20:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158214587914607 (code B ref 39649); Wed, 19 Feb 2020 20:58:02 +0000 Received: (at 39649) by debbugs.gnu.org; 19 Feb 2020 20:57:59 +0000 Received: from localhost ([127.0.0.1]:43438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j4WPu-0003nX-Rj for submit@debbugs.gnu.org; Wed, 19 Feb 2020 15:57:59 -0500 Received: from mail-vs1-f65.google.com ([209.85.217.65]:44598) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j4WPt-0003nL-V0 for 39649@debbugs.gnu.org; Wed, 19 Feb 2020 15:57:58 -0500 Received: by mail-vs1-f65.google.com with SMTP id p6so1237115vsj.11 for <39649@debbugs.gnu.org>; Wed, 19 Feb 2020 12:57:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=hVLnUuNwLKEYAddobc0t1BA3coFhKHjJcMwpKFEw2pc=; b=WplstXfIf94SsYTwE/XKv+6dt4Y8gIIIKW5gL2KBVxpgc1pBIY2GO09oZKh3Blrbfc YBshV7Ivv+VCsqBzcTSfqq/dNU2OREtAwVAnwpSzUO9o61Rr2Qv4sS4sV0HCKFTdvEWd wj2h8DUxHsK5lhvbvPyl7rVwAw7B+raHlPOZhH9rwxthEbmamFuJRTOUwF7MkfG5ZOd2 R5r7bFDz0Lcu3QT6cLmC/+JwTh3g9KrZBYEa17SUGXwms62+Fr3bUhNy183DCif/VYLk 1XrNMIAZDLTS06KvZDjM58haNISw9woro3WJzv42iZiJlULXATB1dAC0bCZyfkKYI86Z d6BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hVLnUuNwLKEYAddobc0t1BA3coFhKHjJcMwpKFEw2pc=; b=ZOZj7YuLBG3qV65OmXfoS9avKeWGWGm5yuDYlQ2tYn8tfJ1zCW8vKSnnzZ6ODSMoTI IEXhzzn02qvgOHrl1anczELj169tC3qCopqN/CynFBXL6jt5Vjv/r8mUylevjMQ6cL3y VrSOwwgNM2FhH2ZNvel7H0ULnlRiiIAGTEZ/72Y2lz9p9c6rv/thEeJfuy17Whc0a2iD 4VuauUrVvk4QPyZ6rjD+COvxlnAEcyXxNVC/Lh5KciT3KBDMNu2GFYUKCF/ewYeZ6x4b 5kxcxrvKuYdnTmMI6Q94AF++kZYS1IT+SQKCZjexmXTJPr6BXwaW4lteDqD3GKfFY8gj +VAA== X-Gm-Message-State: APjAAAUPLZH5XlETCn0dftv+Wh+MVAW+Od1nB84EZ+u5P2rHT/nn+GU7 XEw1qknRxBo6YaqU/qyk5LlO4TO1aodnXX63zmnctQDD X-Google-Smtp-Source: APXvYqw3tDM9qlHQg7WT7BpNBZMkVJzqhLf/k0yG+WowF/KXBjdzCkVeWFkFnoMhx9iJdoJpGGEI3okZwfCKX5yfjeA= X-Received: by 2002:a67:6483:: with SMTP id y125mr14785173vsb.212.1582145872247; Wed, 19 Feb 2020 12:57:52 -0800 (PST) MIME-Version: 1.0 References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> In-Reply-To: <87h7zn4d99.fsf@mail.linkov.net> From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Date: Wed, 19 Feb 2020 21:57:15 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) 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.0 (-) This seems better to me. However, scrolling is occurring when not necessary, which looks kinda weird https://youtu.be/_YG0XH8XJpI On Wed, 19 Feb 2020 at 01:51, Juri Linkov wrote: > > >> Seems to fix the issue in a specific situation, viz. after I select a > >> tab manually with the mouse. However, when selecting a buffer that is > >> already visible in the tab-line the tab-line still might get scrolled > >> or if I just scroll the tab-line and change to a non-visible buffer > >> the tab-line doesn't get scrolled. I'm a bit interested in knowing the > >> reasoning to not always scroll the tab-line. > > > > While you're manually scrolling the tab-line using the mouse wheel > > or clicking on arrow buttons, auto-scrolling should be disabled > > because it should not bring the current tab back into view immediately > > on every step of manual scrolling. Just imagine that you clicked > > on the arrow button to scroll, but it has no effect because auto-scrolling > > immediately moved the tab-line back to its original state. > > This is why auto-scrolling should be disabled during manual scrolling. > > > > Now the question: how to detect the moment when you stop manually > > scrolling? How would you indicate that manual scrolling is finished, > > and it's time to enable auto-scrolling to bring the currently selected tab > > back into view? I have no idea. > > Actually, I have an idea - the right moment is when the current buffer > changes on the current tab. This patch is the right way to handle this case: > > diff --git a/lisp/tab-line.el b/lisp/tab-line.el > index 86ac234f3d..ad2b167e33 100644 > --- a/lisp/tab-line.el > +++ b/lisp/tab-line.el > @@ -464,6 +464,13 @@ tab-line-format > (window-buffer) > (window-parameter nil 'tab-line-hscroll))) > (cache (window-parameter nil 'tab-line-cache))) > + ;; Enable auto-hscroll again after it was disabled on manual scrolling. > + ;; The moment to enable it is when the window-buffer was updated. > + (when (and tab-line-auto-hscroll ; if auto-hscroll was enabled > + (natnump (nth 2 cache-key)) ; non-negative on manual scroll > + cache ; window-buffer was updated > + (not (equal (nth 1 (car cache)) (nth 1 cache-key)))) > + (set-window-parameter nil 'tab-line-hscroll nil)) > (or (and cache (equal (car cache) cache-key) (cdr cache)) > (cdr (set-window-parameter > nil 'tab-line-cache From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 21 Feb 2020 00:11:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: =?UTF-8?Q?Jo=C3=A3o?= Guerra Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158224382219873 (code B ref 39649); Fri, 21 Feb 2020 00:11:04 +0000 Received: (at 39649) by debbugs.gnu.org; 21 Feb 2020 00:10:22 +0000 Received: from localhost ([127.0.0.1]:46113 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j4vte-0005AT-G6 for submit@debbugs.gnu.org; Thu, 20 Feb 2020 19:10:22 -0500 Received: from dragonfly.birch.relay.mailchannels.net ([23.83.209.51]:19371) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j4vtb-0005AJ-TR for 39649@debbugs.gnu.org; Thu, 20 Feb 2020 19:10:20 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 79B6592123B; Fri, 21 Feb 2020 00:10:18 +0000 (UTC) Received: from pdx1-sub0-mail-a86.g.dreamhost.com (100-96-1-6.trex.outbound.svc.cluster.local [100.96.1.6]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id A063A921253; Fri, 21 Feb 2020 00:10:16 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a86.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Fri, 21 Feb 2020 00:10:18 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Society-Befitting: 639e968e7dc0a9ca_1582243817078_1761215663 X-MC-Loop-Signature: 1582243817078:699654446 X-MC-Ingress-Time: 1582243817078 Received: from pdx1-sub0-mail-a86.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a86.g.dreamhost.com (Postfix) with ESMTP id ECC787EF6F; Thu, 20 Feb 2020 16:10:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=AvaptQ1TFH80PRN4LEhUAbMKWss=; b= hNVl1cihKgNljnkOgj/Gc8L1pbPNIBdz7R7WsuKHzP4LoOwbDj7nsxMDjAVx6t12 8ehkX8yi9PA/9dbP/O8S6k3eJOlzxUS39K+7Tib139KGarPtUYs2tstV3oa+XB0e hfYxEXvgTm2FnQED/gcv2OmLQct7WRet4rRJZLM5zcg= Received: from localhost.linkov.net (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a86.g.dreamhost.com (Postfix) with ESMTPSA id B77827F000; Thu, 20 Feb 2020 16:10:08 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a86 From: Juri Linkov Organization: LINKOV.NET References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> Date: Fri, 21 Feb 2020 01:07:10 +0200 In-Reply-To: ("=?UTF-8?Q?Jo=C3=A3o?= Guerra"'s message of "Wed, 19 Feb 2020 21:57:15 +0100") Message-ID: <87r1yoopgp.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: 0 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedrkeefgddulecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecunecujfgurhephffvufhofhffjgfkfgggtgesthdtredttdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucffohhmrghinhephihouhhtuhdrsggvnecukfhppeeluddruddvledruddtfedrvdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhppdhhvghloheplhhotggrlhhhohhsthdrlhhinhhkohhvrdhnvghtpdhinhgvthepledurdduvdelrddutdefrddvjedprhgvthhurhhnqdhprghthheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqedpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnrhgtphhtthhopehjohgtrgdrsghtsehgmhgrihhlrdgtohhm X-Spam-Score: 0.0 (/) 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.0 (-) > This seems better to me. However, scrolling is occurring when not > necessary, which looks kinda weird https://youtu.be/_YG0XH8XJpI Thanks for the detailed visual bug reports - it's clear now what should be fixed. The following patch provides almost prefect behavior with only one exception: it fails to switch back from manual scrolling to automatic scrolling when the tab-line is at its beginning, showing the first tab. The problem is that in Emacs there is no such thing as negative zero. I don't understand why Emacs doesn't support signed zero. For example in JavaScript: Math.sign(-0) => -0 Signed zero would help in the auto-hscroll implementation where positive integers encode positions of manual scrolling and negative integers encode positions of automatic scrolling. And switching from manual to automatic just changes the sign. But since positions count from zero, there is no way to distinguish manual scrolling position from automatic scrolling position at the beginning of the tab-line. I have no idea how to overcome this limitation. diff --git a/lisp/tab-line.el b/lisp/tab-line.el index 8f1221abe4..70ca7e2204 100644 --- a/lisp/tab-line.el +++ b/lisp/tab-line.el @@ -464,6 +466,13 @@ tab-line-format (window-buffer) (window-parameter nil 'tab-line-hscroll))) (cache (window-parameter nil 'tab-line-cache))) + ;; Enable auto-hscroll again after it was disabled on manual scrolling. + ;; The moment to enable it is when the window-buffer was updated. + (when (and tab-line-auto-hscroll ; if auto-hscroll was enabled + (natnump (nth 2 cache-key)) ; non-negative on manual scroll + cache ; window-buffer was updated + (not (equal (nth 1 (car cache)) (nth 1 cache-key)))) + (set-window-parameter nil 'tab-line-hscroll (- (nth 2 cache-key)))) (or (and cache (equal (car cache) cache-key) (cdr cache)) (cdr (set-window-parameter nil 'tab-line-cache From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 21 Feb 2020 01:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org, =?UTF-8?Q?Jo=C3=A3o?= Guerra Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.15822488723249 (code B ref 39649); Fri, 21 Feb 2020 01:35:02 +0000 Received: (at 39649) by debbugs.gnu.org; 21 Feb 2020 01:34:32 +0000 Received: from localhost ([127.0.0.1]:46180 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j4xD6-0000qL-9V for submit@debbugs.gnu.org; Thu, 20 Feb 2020 20:34:32 -0500 Received: from mail-qt1-f170.google.com ([209.85.160.170]:43259) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j4xD4-0000q7-IF for 39649@debbugs.gnu.org; Thu, 20 Feb 2020 20:34:31 -0500 Received: by mail-qt1-f170.google.com with SMTP id g21so185598qtq.10 for <39649@debbugs.gnu.org>; Thu, 20 Feb 2020 17:34:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=H6fNJahOzfAb+pY3+/uXJ6Ocm4HeqwuHK3U92zkoDIo=; b=M7QHSJEefCWwhMS/eOPr0fgtTfJMZa96VO0dKWsAA0QLDW9tGHo3Wg1lCQLWrblplz Zvjj8w1RgEM4iy5rNHVHXrJjGqEd8cSu32wQyso0IuL2MueGMS4PFdai8RGRK48tczMu TL9Yyyh6Q9n8VIvO0OCSNJJQQ7o+2ZsWdgT3UODEDOMEAxhBUvWZm1BTPmjwXTkpWs3e bbSOzozCZ3u4S/WkAsgz1tU+Vf/vmdWwAwLFpR5AiFxq9e7ocm0zjWNfd4wlM9Sk9+zI iYMW983sUGNbuKSKKQtG7gIBdhfZfA9J6g7df63/OFoWZ2KMJNyzvddHBagg25DJZTZG 8S3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=H6fNJahOzfAb+pY3+/uXJ6Ocm4HeqwuHK3U92zkoDIo=; b=SoHABRrYRyoqaT+AiWkA2PXIoxYHsuFcR2sKaw2JvLTUEJjizt0vi5xq1l32v4cCt0 mCzzFUy7L1vEi7in29z1C0Nbw1DeuD4gLfx/clnLjPHl/BIYF6guEuVNdk8t0O51J64f EWif7IM2ZTBZ/H4LbY2EjDtWL3vfXqTqJTNGdbm2mncpxaJ/FjIYdLtwzP3Xr/3W8xLN tP++C76fRcocVlwT9eiTHopFCeYXCoX8aQM9KTtrX/SqggMcWw2WLWbZwo/et8TbrAek qa3HOzF6IX3IX3VBVpAXu8iGxstOLzfhrqFV0g54P5ZXpa3gamIbSPRKUnSBhS0ceU8R dxng== X-Gm-Message-State: APjAAAXUmwBpb1DGgCtR0a4aox6d0wryrWGNuNfhX/Eevha8TmNj7jsV Pi6AFloCZobyxiSK2ksz+8mdQbeEmT8= X-Google-Smtp-Source: APXvYqwpY0ZfvOPD1yzx15xy0AQYvSzj9VuizazxT/cqvUUMtf83vIG5iJFnstphjQ5qPzghmW/tzg== X-Received: by 2002:ac8:3aa6:: with SMTP id x35mr13075793qte.38.1582248865073; Thu, 20 Feb 2020 17:34:25 -0800 (PST) Received: from minid (cbl-45-2-119-47.yyz.frontiernetworks.ca. [45.2.119.47]) by smtp.gmail.com with ESMTPSA id x131sm732867qka.1.2020.02.20.17.34.24 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Feb 2020 17:34:24 -0800 (PST) From: Noam Postavsky References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> Date: Thu, 20 Feb 2020 20:34:23 -0500 In-Reply-To: <87r1yoopgp.fsf@mail.linkov.net> (Juri Linkov's message of "Fri, 21 Feb 2020 01:07:10 +0200") Message-ID: <87d0a8bu5c.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) 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.0 (-) Juri Linkov writes: > I don't understand why Emacs doesn't support signed zero. > For example in JavaScript: Math.sign(-0) => -0 It does, for floats (afaik, in JavaScript all numbers are floating point). (copysign 1.0 -0.0) ;=> -1.0 From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 23 Feb 2020 00:45:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Noam Postavsky Cc: 39649@debbugs.gnu.org, =?UTF-8?Q?Jo=C3=A3o?= Guerra Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.1582418670462 (code B ref 39649); Sun, 23 Feb 2020 00:45:03 +0000 Received: (at 39649) by debbugs.gnu.org; 23 Feb 2020 00:44:30 +0000 Received: from localhost ([127.0.0.1]:50252 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j5fNm-00007O-Fj for submit@debbugs.gnu.org; Sat, 22 Feb 2020 19:44:30 -0500 Received: from crocodile.birch.relay.mailchannels.net ([23.83.209.45]:51858) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j5fNj-00007D-P0 for 39649@debbugs.gnu.org; Sat, 22 Feb 2020 19:44:29 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 8849F5A0100; Sun, 23 Feb 2020 00:44:26 +0000 (UTC) Received: from pdx1-sub0-mail-a92.g.dreamhost.com (100-96-219-25.trex.outbound.svc.cluster.local [100.96.219.25]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 1560B5A03DD; Sun, 23 Feb 2020 00:44:26 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a92.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Sun, 23 Feb 2020 00:44:26 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Turn-Shrill: 2f805ac8285b86fd_1582418666321_4132931903 X-MC-Loop-Signature: 1582418666321:3851376145 X-MC-Ingress-Time: 1582418666321 Received: from pdx1-sub0-mail-a92.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a92.g.dreamhost.com (Postfix) with ESMTP id C54AC7F1C5; Sat, 22 Feb 2020 16:44:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=H1JJWUhQkCnYceo23OWMFo+pqQ4=; b= eyaeKYiBf8l54kOJJTPCVHpGYLfHwF2cUHDdL5HJ7xP7ne6j9xwzMLK2En7WgIZs TK/W3pGWOPuW8G9/fHKjf3ALDT/BP88HfMlk16UePkfsjgvULYnHShmtuQJ94hrQ 9u8X6COGCa6IQRY2Oe0lE0FpqJPKVyEC8u0m2eJRUj4= Received: from localhost.linkov.net (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a92.g.dreamhost.com (Postfix) with ESMTPSA id 015ED7F1BF; Sat, 22 Feb 2020 16:44:18 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a92 From: Juri Linkov Organization: LINKOV.NET References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> Date: Sun, 23 Feb 2020 01:52:45 +0200 In-Reply-To: <87d0a8bu5c.fsf@gmail.com> (Noam Postavsky's message of "Thu, 20 Feb 2020 20:34:23 -0500") Message-ID: <87y2sup4c2.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: -100 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedrkeejgddvudcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvffuohhfffgjkfgfgggtsehmtderredtredunecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecukfhppeeluddruddvledruddtfedrvdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhppdhhvghloheplhhotggrlhhhohhsthdrlhhinhhkohhvrdhnvghtpdhinhgvthepledurdduvdelrddutdefrddvjedprhgvthhurhhnqdhprghthheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqedpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnrhgtphhtthhopehnphhoshhtrghvshesghhmrghilhdrtghomh X-Spam-Score: 0.0 (/) 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.0 (-) --=-=-= Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable >> I don't understand why Emacs doesn't support signed zero. >> For example in JavaScript: Math.sign(-0) =3D> -0 > > It does, for floats (afaik, in JavaScript all numbers are floating > point). > > (copysign 1.0 -0.0) ;=3D> -1.0 Then if take into use floats, the distinction could be not between positive/negative floats, but between integers/floats. Jo=E3o, could you please try a new patch: --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=tab-line-auto-hscroll.patch diff --git a/lisp/tab-line.el b/lisp/tab-line.el index 8f1221abe4..754a0a95ab 100644 --- a/lisp/tab-line.el +++ b/lisp/tab-line.el @@ -446,17 +446,19 @@ tab-line-format-template (setq hscroll nil) (set-window-parameter nil 'tab-line-hscroll hscroll)) (list separator - (when (and (integerp hscroll) (not (zerop hscroll))) + (when (and (numberp hscroll) (not (zerop hscroll))) tab-line-left-button) - (when (if (integerp hscroll) - (< (abs hscroll) (1- (length strings))) + (when (if (numberp hscroll) + (< (truncate hscroll) (1- (length strings))) (> (length strings) 1)) tab-line-right-button))) - (if hscroll (nthcdr (abs hscroll) strings) strings) + (if hscroll (nthcdr (truncate hscroll) strings) strings) (when (eq tab-line-tabs-function #'tab-line-tabs-window-buffers) (list (concat separator (when tab-line-new-tab-choice tab-line-new-button))))))) +(defvar tab-line-auto-hscroll) + (defun tab-line-format () "Template for displaying tab line for selected window." (let* ((tabs (funcall tab-line-tabs-function)) @@ -464,6 +466,13 @@ tab-line-format (window-buffer) (window-parameter nil 'tab-line-hscroll))) (cache (window-parameter nil 'tab-line-cache))) + ;; Enable auto-hscroll again after it was disabled on manual scrolling. + ;; The moment to enable it is when the window-buffer was updated. + (when (and tab-line-auto-hscroll ; if auto-hscroll was enabled + (integerp (nth 2 cache-key)) ; integer on manual scroll + cache ; window-buffer was updated + (not (equal (nth 1 (car cache)) (nth 1 cache-key)))) + (set-window-parameter nil 'tab-line-hscroll (float (nth 2 cache-key)))) (or (and cache (equal (car cache) cache-key) (cdr cache)) (cdr (set-window-parameter nil 'tab-line-cache @@ -490,12 +499,12 @@ tab-line-auto-hscroll ;; Continuation means tab-line doesn't fit completely, ;; thus scroll arrows are needed for scrolling. (setq show-arrows (> (vertical-motion 1) 0)) - ;; Try to auto-scroll only when scrolling is needed, + ;; Try to auto-hscroll only when scrolling is needed, ;; but no manual scrolling was performed before. (when (and tab-line-auto-hscroll show-arrows ;; Do nothing when scrolled manually - (not (and (integerp hscroll) (>= hscroll 0)))) + (not (integerp hscroll))) (let ((selected (seq-position strings 'selected (lambda (str prop) (get-pos-property 1 prop str))))) @@ -503,7 +512,7 @@ tab-line-auto-hscroll ((null selected) ;; Do nothing if no tab is selected ) - ((or (not (integerp hscroll)) (< selected (abs hscroll))) + ((or (not (numberp hscroll)) (< selected (truncate hscroll))) ;; Selected is scrolled to the left, or no scrolling yet (erase-buffer) (apply 'insert (reverse (seq-subseq strings 0 (1+ selected)))) @@ -520,14 +529,14 @@ tab-line-auto-hscroll (lambda (str tab) (eq (get-pos-property 1 'tab str) tab)))))) (when new-hscroll - (setq hscroll (- new-hscroll)) + (setq hscroll (float new-hscroll)) (set-window-parameter nil 'tab-line-hscroll hscroll))) (setq hscroll nil) (set-window-parameter nil 'tab-line-hscroll hscroll))) (t ;; Check if the selected tab is already visible (erase-buffer) - (apply 'insert (seq-subseq strings (abs hscroll) (1+ selected))) + (apply 'insert (seq-subseq strings (truncate hscroll) (1+ selected))) (goto-char (point-min)) (add-face-text-property (point-min) (point-max) 'tab-line) (when (> (vertical-motion 1) 0) @@ -547,7 +556,7 @@ tab-line-auto-hscroll (lambda (str tab) (eq (get-pos-property 1 'tab str) tab)))))) (when new-hscroll - (setq hscroll (- new-hscroll)) + (setq hscroll (float new-hscroll)) (set-window-parameter nil 'tab-line-hscroll hscroll))))))))) (list show-arrows hscroll)))) @@ -559,7 +568,7 @@ tab-line-hscroll (funcall tab-line-tabs-function)))) (set-window-parameter window 'tab-line-hscroll - (max 0 (min (+ (if (integerp hscroll) (abs hscroll) 0) (or arg 1)) + (max 0 (min (+ (if (numberp hscroll) (truncate hscroll) 0) (or arg 1)) (1- (length tabs))))) (when window (force-mode-line-update t)))) --=-=-=-- From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 23 Feb 2020 10:37:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org, Noam Postavsky Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.15824542043361 (code B ref 39649); Sun, 23 Feb 2020 10:37:01 +0000 Received: (at 39649) by debbugs.gnu.org; 23 Feb 2020 10:36:44 +0000 Received: from localhost ([127.0.0.1]:50409 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j5ocu-0000s9-Bi for submit@debbugs.gnu.org; Sun, 23 Feb 2020 05:36:44 -0500 Received: from mail-ua1-f49.google.com ([209.85.222.49]:35034) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j5ocs-0000rp-CZ for 39649@debbugs.gnu.org; Sun, 23 Feb 2020 05:36:42 -0500 Received: by mail-ua1-f49.google.com with SMTP id y23so2244227ual.2 for <39649@debbugs.gnu.org>; Sun, 23 Feb 2020 02:36:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=FcORpfc/8V8MQMw5OezwP4eeN0a0ppK/OSn3bZecA7Q=; b=WCq1e/VYte4iya5LsjrEZyfLI6wUEI2x9/OWT9xIXViqRgA5wziXWdVsjvP6U7W+Yj ap9hHk8lpYC4KJi2dku/gHMcHg4O7JvQV0OrFjrooeQwxf7K714dXGWgnzlyTlGzngSZ f2pm8T5gPQ9gZRnRwx0JdZ1Uzve+1XEqfqDBmw5Ryuo7Z7TjNtKfDw7eWmRJbHGBREjI r+JZ79ksr5ig6wm4gmzQnTsQQlDGoAUTwvgmzUi+kXWD0hrua16VWOhISNJ+ViwuXr+A TqBViw6dNkDEmERySGy1e6UNq1Zj4Uced1Wl3RkgQD+mYp9YmKRua1mrvKJmSHHLzxAN dZKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=FcORpfc/8V8MQMw5OezwP4eeN0a0ppK/OSn3bZecA7Q=; b=BJ7JEDAnHpNbuWES4K/GKYzKYqAHKTIwv0p30mJg30yqneF+xyfEZvmzWhG/Mln9T+ Hog/q7qzxCkNKTaQ1KDot7ZLQ+oQc/3rr8LoifuieAX4zM8hrIuS3ML2W/60/U5OZe7U r9lIyNeNGh5+ZKIVi/7uyOQC8JA85ThVYQFJhIXGi0FIee/62LMPIHA9t57NtEU7jDCN h1PMvWGWIBpqK0K3tHVWaB+mRKiDy+O64UdVoqKyXt5dQq9fBBxIxwwATJVuKdQ6We2h +h0YlQ1l69IZgW9Mc2zoWK2zUsG7DfcSfXdmaKE/YgQuK5xzQHL3y40zIBJegqqdICor L8Mw== X-Gm-Message-State: APjAAAX0HvGCDOU+FsyFjngefx1z0pwhgPV7lwIZ88JXClXQbYA2MXfG fSKtNhng76pfZmGOCb8fRXXKh7WumBBcb9IM8xE= X-Google-Smtp-Source: APXvYqzCnYTJYT/g7dJwNpIINDBbOFA8igyRIpmUsULnhoUwkUV6bghqvL/W/5kbvLq1LjTyidRQv7+V0UmxRCWZ9nQ= X-Received: by 2002:ab0:7358:: with SMTP id k24mr22236777uap.87.1582454194400; Sun, 23 Feb 2020 02:36:34 -0800 (PST) MIME-Version: 1.0 References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> In-Reply-To: <87y2sup4c2.fsf@mail.linkov.net> From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Date: Sun, 23 Feb 2020 11:35:59 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) 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.0 (-) Regarding the scrolling this seems more natural to me or at least more similar to most applications and thus to the expectations most people might have regarding scrolling file tabs. I did find a bug, didn't test if it was there before already: https://youtu.be/EAM581LO__8 On Sun, 23 Feb 2020 at 01:44, Juri Linkov wrote: > > >> I don't understand why Emacs doesn't support signed zero. > >> For example in JavaScript: Math.sign(-0) =3D> -0 > > > > It does, for floats (afaik, in JavaScript all numbers are floating > > point). > > > > (copysign 1.0 -0.0) ;=3D> -1.0 > > Then if take into use floats, the distinction could be > not between positive/negative floats, but between integers/floats. > > Jo=C3=A3o, could you please try a new patch: > From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 23 Feb 2020 23:52:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: =?UTF-8?Q?Jo=C3=A3o?= Guerra Cc: 39649@debbugs.gnu.org, Noam Postavsky Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158250191119549 (code B ref 39649); Sun, 23 Feb 2020 23:52:02 +0000 Received: (at 39649) by debbugs.gnu.org; 23 Feb 2020 23:51:51 +0000 Received: from localhost ([127.0.0.1]:51722 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j612M-00055F-Se for submit@debbugs.gnu.org; Sun, 23 Feb 2020 18:51:51 -0500 Received: from fossa.birch.relay.mailchannels.net ([23.83.209.62]:59892) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j612L-000557-6G for 39649@debbugs.gnu.org; Sun, 23 Feb 2020 18:51:49 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 0153320ACE; Sun, 23 Feb 2020 23:51:48 +0000 (UTC) Received: from pdx1-sub0-mail-a7.g.dreamhost.com (100-96-38-98.trex.outbound.svc.cluster.local [100.96.38.98]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 4D22D20F86; Sun, 23 Feb 2020 23:51:47 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a7.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Sun, 23 Feb 2020 23:51:47 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Thread-Troubled: 240cb27900d437f1_1582501907735_4130632971 X-MC-Loop-Signature: 1582501907735:1529482592 X-MC-Ingress-Time: 1582501907735 Received: from pdx1-sub0-mail-a7.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a7.g.dreamhost.com (Postfix) with ESMTP id 12705B1948; Sun, 23 Feb 2020 15:51:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=mT8ojxLmTHVkFOTXRn2NKWXFRT8=; b= ZKSw7NDhRV19d8n1vpT35shyekKoLn81puWr9YssqWlaojGjWlmTdXh803PnFjbX 49EtNDZyC+PFo4hVe3/xcwVgcQkctq45i+o2J7rsZHCz0CfOLCDTSNgFtVEVccAV CEHe+gC0fyCTZ+QRKvqas1RfG2swIA+W9lW35lhiIL0= Received: from localhost.linkov.net (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a7.g.dreamhost.com (Postfix) with ESMTPSA id 19741B1960; Sun, 23 Feb 2020 15:51:39 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a7 From: Juri Linkov Organization: LINKOV.NET References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> Date: Mon, 24 Feb 2020 01:06:42 +0200 In-Reply-To: ("=?UTF-8?Q?Jo=C3=A3o?= Guerra"'s message of "Sun, 23 Feb 2020 11:35:59 +0100") Message-ID: <87h7zg7vjx.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: -100 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedrkeelgdduiecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvffuohhfffgjkfgfgggtsehttdertddtredtnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecuffhomhgrihhnpeihohhuthhurdgsvgenucfkphepledurdduvdelrddutdefrddvjeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhhouggvpehsmhhtphdphhgvlhhopehlohgtrghlhhhoshhtrdhlihhnkhhovhdrnhgvthdpihhnvghtpeeluddruddvledruddtfedrvdejpdhrvghtuhhrnhdqphgrthhhpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhhrtghpthhtohepjhhotggrrdgsthesghhmrghilhdrtghomh X-Spam-Score: 0.0 (/) 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.0 (-) > Regarding the scrolling this seems more natural to me or at least more > similar to most applications and thus to the expectations most people > might have regarding scrolling file tabs. Yes, I agree. > I did find a bug, didn't test if it was there before already: > https://youtu.be/EAM581LO__8 Thanks, I tried to reproduce the bug, but it's not reproducible. Maybe it depends on your customization. I see that you customizied tab-line-tabs-function to "Same mode buffers" (tab-line-tabs-mode-buffers). But what about other tab-line customizations? Please send your tab-line faces customizations. I guess the bug depends on tab-line faces. Or you could try to reproduce the bug with default settings by 'emacs -Q'. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 24 Feb 2020 19:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org, Noam Postavsky Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158257152926765 (code B ref 39649); Mon, 24 Feb 2020 19:13:02 +0000 Received: (at 39649) by debbugs.gnu.org; 24 Feb 2020 19:12:09 +0000 Received: from localhost ([127.0.0.1]:54115 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j6J9E-0006xd-T8 for submit@debbugs.gnu.org; Mon, 24 Feb 2020 14:12:09 -0500 Received: from mail-vs1-f52.google.com ([209.85.217.52]:36520) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j6J9C-0006x8-La for 39649@debbugs.gnu.org; Mon, 24 Feb 2020 14:12:07 -0500 Received: by mail-vs1-f52.google.com with SMTP id a2so6400696vso.3 for <39649@debbugs.gnu.org>; Mon, 24 Feb 2020 11:12:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=WDo/uJrv5y3W4WJ7HYdL4RoBbGHFtuX9+bBvooDwb7U=; b=M00HtLZLRo7EEW80lH7tyQz/OGoFiDaIguisALYPQmJAtjbhhONK4uXD7OYEAnRwiU YuXu/Q5KFGkPqHK62bv/t1UkAZuqHWuXkI350HhmaH7HoZkOGXu5h465hb9zk26/4nGD rU9u9gPFz1zGHDifrqje9vkri2nmUez44gEYZNYtBQz5k68VP75HDV/IHcGxZdBDARK0 lg46VcBVqzppVTVals+Okl76bagt26pDaPGy/3jNY2zXGOFdI7Nl/WbKqKdPOtHSMRdj e4okdsCrU0Qk7yRA8yVHsLm/taQsgGcEwIpfHL3IIoIAXgNj4T5z+lITI4soEJLCyvIS +3Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=WDo/uJrv5y3W4WJ7HYdL4RoBbGHFtuX9+bBvooDwb7U=; b=GXHbqT7upgWwROgJ9/AWLgSdOe4ry7fV3rBIDyzOkel0LqO2DsQslcOtka6/wCmFEy slS97df2WuuZ/ArMIMYv+E994iE0M3F2lszP2PJqNXn9W37tF9nDgCgmxZs90lXyN/9a 8o4GOfrmmI7S/GqXFw1YWGR/2QnZO49eu6C45XrLoFZqaQkw9KPch6vR60dtAhjCLU/Q GRfkmvnP+V8e5TEmVguz6qwVoAHgvKW2fpSP25gLnzh5ShfFVcHL33/SrD3vr47tswHx /TbSTmN98l69ycidFtcyr2a6fzG+OA8wDxbdrwh0FYBEWMTzKzMLLELLQTF3hmtl8bnT swoQ== X-Gm-Message-State: APjAAAWbrKQhDbRcbEhVQkqZIZHpLa75mXcpNGBI7SORVdyabaHOe5aq NOSlSViYc75XAiVGLZ4KRP6G+Oz3KJEcld8k9+s= X-Google-Smtp-Source: APXvYqz69osJ4YON7sBEzee3+WYl3uypKS/HvwzdGjgQKiMVaAsLX5x6Bme9rPnpssneApq8nXc2MFE2TJUUs4j4zUI= X-Received: by 2002:a67:6601:: with SMTP id a1mr27370138vsc.0.1582571521160; Mon, 24 Feb 2020 11:12:01 -0800 (PST) MIME-Version: 1.0 References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> In-Reply-To: <87h7zg7vjx.fsf@mail.linkov.net> From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Date: Mon, 24 Feb 2020 20:11:26 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) 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.0 (-) I have the same issue with `emacs -q` and `(setq tab-line-tabs-function #'tab-line-tabs-mode-buffers)` on GNU Emacs 27.0.60 (build 1, x86_64-w64-mingw32) of 2020-02-10. On Mon, 24 Feb 2020 at 00:51, Juri Linkov wrote: > > > Regarding the scrolling this seems more natural to me or at least more > > similar to most applications and thus to the expectations most people > > might have regarding scrolling file tabs. > > Yes, I agree. > > > I did find a bug, didn't test if it was there before already: > > https://youtu.be/EAM581LO__8 > > Thanks, I tried to reproduce the bug, but it's not reproducible. > Maybe it depends on your customization. > > I see that you customizied tab-line-tabs-function to "Same mode buffers" > (tab-line-tabs-mode-buffers). But what about other tab-line customizations? > Please send your tab-line faces customizations. I guess the bug depends > on tab-line faces. Or you could try to reproduce the bug with default > settings by 'emacs -Q'. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 25 Feb 2020 21:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: =?UTF-8?Q?Jo=C3=A3o?= Guerra Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158266643128287 (code B ref 39649); Tue, 25 Feb 2020 21:34:02 +0000 Received: (at 39649) by debbugs.gnu.org; 25 Feb 2020 21:33:51 +0000 Received: from localhost ([127.0.0.1]:56214 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j6hpv-0007MB-Gw for submit@debbugs.gnu.org; Tue, 25 Feb 2020 16:33:51 -0500 Received: from cheetah.birch.relay.mailchannels.net ([23.83.209.34]:42640) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j6hpt-0007M0-BC for 39649@debbugs.gnu.org; Tue, 25 Feb 2020 16:33:50 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 08F14500613; Tue, 25 Feb 2020 21:33:48 +0000 (UTC) Received: from pdx1-sub0-mail-a82.g.dreamhost.com (100-96-215-18.trex.outbound.svc.cluster.local [100.96.215.18]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 6CA165016C0; Tue, 25 Feb 2020 21:33:47 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a82.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Tue, 25 Feb 2020 21:33:47 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Plucky-Illegal: 6bdeebb97275b693_1582666427672_2371852896 X-MC-Loop-Signature: 1582666427672:396979257 X-MC-Ingress-Time: 1582666427672 Received: from pdx1-sub0-mail-a82.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a82.g.dreamhost.com (Postfix) with ESMTP id D43307F0FA; Tue, 25 Feb 2020 13:33:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=uO0xJyAmIqbE8h5S1J6c/dg3xGw=; b= mC0gF+p/NTiiwZfjDc9vyDftdSN/a5uKJKRhgr+UBekcSTDadhIMQ9/N7HcKhuZs TzNuDQOAZrjB8IiachKcN2MhZzWEPOO0tsmS7318cIGgVrnf33h7WKIxfkM7O86M mDJN/YdJqR3/wacZm83W/fJDp7ZqVtEwqUJChvIbNXw= Received: from localhost.linkov.net (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a82.g.dreamhost.com (Postfix) with ESMTPSA id 9B7657F042; Tue, 25 Feb 2020 13:33:38 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a82 From: Juri Linkov Organization: LINKOV.NET References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> Date: Tue, 25 Feb 2020 23:20:10 +0200 In-Reply-To: ("=?UTF-8?Q?Jo=C3=A3o?= Guerra"'s message of "Mon, 24 Feb 2020 20:11:26 +0100") Message-ID: <87pne2ilur.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: 0 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedrledvgddugeelucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuggftfghnshhusghstghrihgsvgdpffftgfetoffjqffuvfenuceurghilhhouhhtmecufedttdenucenucfjughrpefhvffuohhfffgjkfgfgggtsehttdertddtredtnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecukfhppeeluddruddvledruddtfedrvdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhppdhhvghloheplhhotggrlhhhohhsthdrlhhinhhkohhvrdhnvghtpdhinhgvthepledurdduvdelrddutdefrddvjedprhgvthhurhhnqdhprghthheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqedpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnrhgtphhtthhopehjohgtrgdrsghtsehgmhgrihhlrdgtohhm X-Spam-Score: 0.0 (/) 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.0 (-) Please help to understand how to reproduce this bug: > I have the same issue with `emacs -q` Have you tried `emacs -Q`? I don't know if there is any difference between `emacs -Q` and `emacs -q` on Windows. But `emacs -q` loads all resources so maybe it loads additional face definitions for tab-line. I see that left/right arrows in your bug report are XPM images. But I don't understand how this is possible because (info "(efaq-w32) Image support") says that Emacs has no built-in support for XPM on Windows. Please try to reproduce the same bug without XPM images by evaluating these lines: (setq tab-line-left-button " <") (setq tab-line-right-button "> ") Also it's possible that maybe the widths of these buttons affect the calculations somehow. Please also try to remove these arrow buttons temporarily with: (setq tab-line-left-button nil) (setq tab-line-right-button nil) Do you see the same bug? > on GNU Emacs 27.0.60 (build 1, x86_64-w64-mingw32) of 2020-02-10. The compilation date is 2020-02-10. Did you apply the patch that I sent? I could commit the patch, then you could update your repository if you want. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 25 Feb 2020 21:50:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158266738430254 (code B ref 39649); Tue, 25 Feb 2020 21:50:02 +0000 Received: (at 39649) by debbugs.gnu.org; 25 Feb 2020 21:49:44 +0000 Received: from localhost ([127.0.0.1]:56231 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j6i5H-0007ru-Rb for submit@debbugs.gnu.org; Tue, 25 Feb 2020 16:49:44 -0500 Received: from mail-ua1-f54.google.com ([209.85.222.54]:35683) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j6i5G-0007rg-G0 for 39649@debbugs.gnu.org; Tue, 25 Feb 2020 16:49:43 -0500 Received: by mail-ua1-f54.google.com with SMTP id y23so231117ual.2 for <39649@debbugs.gnu.org>; Tue, 25 Feb 2020 13:49:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=EzR+zFTcb8QQNH8LmdcJp5euEWHeb3sgvMOul5/cRys=; b=QSPryA4alVQdRmTj2LDJh80L3eMJ5PzityB4X8pJVHvxXVXdM/OVyL0Yx6RbyWTCPk 9cJCp/1xlpYjPuvibq/Yqb265AouphW7aVQA5GmniCv+Yw9/U5qKAgvzJcVPeIkeXcMj 53KtywXdVlNlCb39WISypJGJuUB60nIurKHmximglk48l94xmJ2SzAcqFqa/xMW2kTiK veW9pM8eI7v63QDYhXWQoh+C8O7pSO5+JdVEJEBwoJrry+GlmT2lGFUs86ntRokhxach 7PSDSg/FAzaI+wShr0+m+2kigLoz0Wl21yivYkzHootndy0dwh0ZoMQVm5Mgu+TpN9Jt 7Upw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=EzR+zFTcb8QQNH8LmdcJp5euEWHeb3sgvMOul5/cRys=; b=aJzWkVO5jt7+ahykIoTzJ/57Fx7gqixh3jje/JL/v3JX5YEqQFvaEXq1rLqrYSXjdp MMyCljK1NRHvZVlYdzLbLpwAOYtOgTJjJQGe5LL4JbSOsjQdezq6tViHDSe+1BDp8JHU tbB8hHt7jPZQhAkXKB8Zyjved50Gga7Enq13X6Yrtj40HAb0WfZQM+0wi50bM1biT7gE kaOIKcrr3OS0eSQW+Bx/oqb/g7gAMin/gzxdcZLc4iXKb5Jll/NmfQ9SsD9n8e02/Z3G I+8+rOIw0wIMpIYX4KxKOPdcx6fjZVVb2SVNOnUeg8M+zjgDlFkwsjdOWQGVFquCDIGx s9NA== X-Gm-Message-State: APjAAAWr0XDaWm648/3orAsEiGDFzhEPUMdkYOQKzvQ7+qkUGRYrliS/ pwPUXeAcpqShUba26nZwUAXmmewfXEGehTH2yraVaNK8 X-Google-Smtp-Source: APXvYqxlE8QVCq3g7KJnB+Nyn43Tp0GC66V/p+nfMp7IVIgopma4nuTsJ04Qg0BHHYfoUfFnGH2Nv+XXQK6oJHEVujY= X-Received: by 2002:ab0:7196:: with SMTP id l22mr1113813uao.99.1582667376879; Tue, 25 Feb 2020 13:49:36 -0800 (PST) MIME-Version: 1.0 References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> In-Reply-To: <87pne2ilur.fsf@mail.linkov.net> From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Date: Tue, 25 Feb 2020 22:49:02 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) 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.0 (-) It does have your patch, but just the latest one in this thread. Video demonstration: https://youtu.be/xq_JMBO4SyI. I'm using Emacs from https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-27/. It does have XPM support. Issue still happens when I do (setq tab-line-left-button nil) (setq tab-line-right-button nil) On Tue, 25 Feb 2020 at 22:33, Juri Linkov wrote: > > Please help to understand how to reproduce this bug: > > > I have the same issue with `emacs -q` > > Have you tried `emacs -Q`? > I don't know if there is any difference between > `emacs -Q` and `emacs -q` on Windows. But `emacs -q` > loads all resources so maybe it loads additional > face definitions for tab-line. > > I see that left/right arrows in your bug report are XPM images. > But I don't understand how this is possible because > (info "(efaq-w32) Image support") says that Emacs has > no built-in support for XPM on Windows. > > Please try to reproduce the same bug without XPM images > by evaluating these lines: > > (setq tab-line-left-button " <") > (setq tab-line-right-button "> ") > > Also it's possible that maybe the widths of these buttons > affect the calculations somehow. > > Please also try to remove these arrow buttons temporarily with: > > (setq tab-line-left-button nil) > (setq tab-line-right-button nil) > > Do you see the same bug? > > > on GNU Emacs 27.0.60 (build 1, x86_64-w64-mingw32) of 2020-02-10. > > The compilation date is 2020-02-10. > Did you apply the patch that I sent? > I could commit the patch, then you could > update your repository if you want. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 26 Feb 2020 23:20:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: =?UTF-8?Q?Jo=C3=A3o?= Guerra Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158275917015039 (code B ref 39649); Wed, 26 Feb 2020 23:20:01 +0000 Received: (at 39649) by debbugs.gnu.org; 26 Feb 2020 23:19:30 +0000 Received: from localhost ([127.0.0.1]:57937 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j75xi-0003uU-EB for submit@debbugs.gnu.org; Wed, 26 Feb 2020 18:19:30 -0500 Received: from beige.elm.relay.mailchannels.net ([23.83.212.16]:49954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j75xf-0003uL-AT for 39649@debbugs.gnu.org; Wed, 26 Feb 2020 18:19:28 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id C5EF65A077D; Wed, 26 Feb 2020 23:19:25 +0000 (UTC) Received: from pdx1-sub0-mail-a11.g.dreamhost.com (100-96-206-239.trex.outbound.svc.cluster.local [100.96.206.239]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 37DE15A0E6F; Wed, 26 Feb 2020 23:19:25 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a11.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Wed, 26 Feb 2020 23:19:25 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Well-Made-Company: 17fa6b9d1f2cbb69_1582759165658_407075086 X-MC-Loop-Signature: 1582759165658:2020402184 X-MC-Ingress-Time: 1582759165658 Received: from pdx1-sub0-mail-a11.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a11.g.dreamhost.com (Postfix) with ESMTP id 7EA46880B9; Wed, 26 Feb 2020 15:19:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=7eskFPFZorhv4uSrg462kJzroW4=; b= Pl3dGXvpcgKlNlqIqiAtQafyjZbaRofw5Ff0Vhu6b5eqNhqhhMo9fLySVTHV5qIg wJ9tTb65knjnGdAZf4nroga0jTE4mODG2SM1ysNC745aEYAmc0TrMxu+zz2QPsGY av8YvLvtszpySkOmvROwhE65s4OKt9TwYqiCNgzeFs4= Received: from mail.jurta.org (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a11.g.dreamhost.com (Postfix) with ESMTPSA id C619087FE9; Wed, 26 Feb 2020 15:19:17 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a11 From: Juri Linkov Organization: LINKOV.NET References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> Date: Thu, 27 Feb 2020 01:16:25 +0200 In-Reply-To: ("=?UTF-8?Q?Jo=C3=A3o?= Guerra"'s message of "Tue, 25 Feb 2020 22:49:02 +0100") Message-ID: <871rqhj5x2.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: 0 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedrleehgddutdcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecunecujfgurhephffvufhofhffjgfkfgggtgesmhdtreertdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucffohhmrghinhephihouhhtuhdrsggvpdhgnhhurdhorhhgnecukfhppeeluddruddvledruddtfedrvdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhppdhhvghlohepmhgrihhlrdhjuhhrthgrrdhorhhgpdhinhgvthepledurdduvdelrddutdefrddvjedprhgvthhurhhnqdhprghthheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqedpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnrhgtphhtthhopehjohgtrgdrsghtsehgmhgrihhlrdgtohhm X-Spam-Score: 0.0 (/) 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.0 (-) --=-=-= Content-Type: text/plain > It does have your patch, but just the latest one in this thread. > Video demonstration: https://youtu.be/xq_JMBO4SyI. > I'm using Emacs from > https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-27/. It does > have XPM support. Thanks for the recipe. I tried everything possible, but still no bug reproduction. Given the above, may I ask you to run some debugging diagnostics: 1. load the attached file, e.g. with M-x load-file 2. M-x global-tab-line-mode 3. perform all steps from your bug report 4. after the last step, when the tab selection fails, execute M-x test1 RET and make a screenshot. The screenshot should look like on the image attached. I suspect that the problem comes from the tab-line fontified differently by core and when fontified manually in the buffer. --=-=-= Content-Type: image/png Content-Disposition: inline; filename=screenshot1.png Content-Transfer-Encoding: base64 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 EEII/an8Hy1HKJRyCnPAAAAAAElFTkSuQmCC --=-=-= Content-Type: application/emacs-lisp Content-Disposition: attachment; filename=tab-line-1.el Content-Transfer-Encoding: quoted-printable ;;; tab-line.el --- window-local tabs with window buffers -*- lexical-bindi= ng: t; -*- ;; Copyright (C) 2019-2020 Free Software Foundation, Inc. ;; Author: Juri Linkov ;; Keywords: windows tabs ;; Maintainer: emacs-devel@gnu.org ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Commentary: ;; To enable this mode, run `M-x global-tab-line-mode'. ;;; Code: (require 'seq) ; tab-line.el is not pre-loaded so it's safe to use it here (defgroup tab-line nil "Window-local tabs." :group 'convenience :version "27.1") (defgroup tab-line-faces nil "Faces used in the tab line." :group 'tab-line :group 'faces :version "27.1") (defface tab-line '((((class color) (min-colors 88)) :inherit variable-pitch :height 0.9 :background "grey85" :foreground "black") (((class mono)) :background "grey") (t :inverse-video t)) "Tab line face." :version "27.1" :group 'tab-line-faces) (defface tab-line-tab '((default :inherit tab-line) (((class color) (min-colors 88)) :box (:line-width 1 :style released-button)) (t :inverse-video nil)) "Tab line face for selected tab." :version "27.1" :group 'tab-line-faces) (defface tab-line-tab-inactive '((default :inherit tab-line-tab) (((class color) (min-colors 88)) :background "grey75") (t :inverse-video t)) "Tab line face for non-selected tab." :version "27.1" :group 'tab-line-faces) (defface tab-line-tab-current '((default :inherit tab-line-tab) (((class color) (min-colors 88)) :background "grey85")) "Tab line face for tab with current buffer in selected window." :version "27.1" :group 'tab-line-faces) (defface tab-line-highlight '((default :inherit tab-line-tab)) "Tab line face for highlighting." :version "27.1" :group 'tab-line-faces) (defface tab-line-close-highlight '((t :foreground "red")) "Tab line face for highlighting of the close button." :version "27.1" :group 'tab-line-faces) (defvar tab-line-tab-map (let ((map (make-sparse-keymap))) (define-key map [tab-line mouse-1] 'tab-line-select-tab) (define-key map [tab-line mouse-2] 'tab-line-close-tab) (define-key map "\C-m" 'tab-line-select-tab) map) "Local keymap for `tab-line-mode' window tabs.") (defvar tab-line-add-map (let ((map (make-sparse-keymap))) (define-key map [tab-line mouse-1] 'tab-line-new-tab) (define-key map [tab-line mouse-2] 'tab-line-new-tab) (define-key map "\C-m" 'tab-line-new-tab) map) "Local keymap to add `tab-line-mode' window tabs.") (defvar tab-line-tab-close-map (let ((map (make-sparse-keymap))) (define-key map [tab-line mouse-1] 'tab-line-close-tab) (define-key map [tab-line mouse-2] 'tab-line-close-tab) map) "Local keymap to close `tab-line-mode' window tabs.") (defvar tab-line-left-map (let ((map (make-sparse-keymap))) (define-key map [tab-line mouse-1] 'tab-line-hscroll-left) (define-key map [tab-line mouse-2] 'tab-line-hscroll-left) (define-key map "\C-m" 'tab-line-new-tab) map) "Local keymap to scroll `tab-line-mode' window tabs to the left.") (defvar tab-line-right-map (let ((map (make-sparse-keymap))) (define-key map [tab-line mouse-1] 'tab-line-hscroll-right) (define-key map [tab-line mouse-2] 'tab-line-hscroll-right) (define-key map "\C-m" 'tab-line-new-tab) map) "Local keymap to scroll `tab-line-mode' window tabs to the right.") (defcustom tab-line-new-tab-choice t "Defines what to show in a new tab. If t, display a selection menu with all available buffers. If the value is a function, call it with no arguments. If nil, don't show the new tab button." :type '(choice (const :tag "Buffer menu" t) (function :tag "Function") (const :tag "No button" nil)) :group 'tab-line :version "27.1") (defvar tab-line-new-button (propertize " + " 'display `(image :type xpm :file "tabs/new.xpm" :margin (2 . 0) :ascent center) 'keymap tab-line-add-map 'mouse-face 'tab-line-highlight 'help-echo "Click to add tab") "Button for creating a new tab.") (defcustom tab-line-close-button-show t "Defines where to show the close tab button. If t, show the close tab button on all tabs. If `selected', show it only on the selected tab. If `non-selected', show it only on non-selected tab. If nil, don't show it at all." :type '(choice (const :tag "On all tabs" t) (const :tag "On selected tab" selected) (const :tag "On non-selected tabs" non-selected) (const :tag "None" nil)) :initialize 'custom-initialize-default :set (lambda (sym val) (set-default sym val) (force-mode-line-update)) :group 'tab-line :version "27.1") (defvar tab-line-close-button (propertize " x" 'display `(image :type xpm :file "tabs/close.xpm" :margin (2 . 0) :ascent center) 'keymap tab-line-tab-close-map 'mouse-face 'tab-line-close-highlight 'help-echo "Click to close tab") "Button for closing the clicked tab.") (defvar tab-line-left-button (propertize " <" 'display `(image :type xpm :file "tabs/left-arrow.xpm" :margin (2 . 0) :ascent center) 'keymap tab-line-left-map 'mouse-face 'tab-line-highlight 'help-echo "Click to scroll left") "Button for scrolling horizontally to the left.") (defvar tab-line-right-button (propertize "> " 'display `(image :type xpm :file "tabs/right-arrow.xpm" :margin (2 . 0) :ascent center) 'keymap tab-line-right-map 'mouse-face 'tab-line-highlight 'help-echo "Click to scroll right") "Button for scrolling horizontally to the right.") (defvar tab-line-separator nil) (defcustom tab-line-tab-name-function #'tab-line-tab-name-buffer "Function to get a tab name. Function gets two arguments: tab to get name for and a list of tabs to display. By default, use function `tab-line-tab-name'." :type '(choice (const :tag "Buffer name" tab-line-tab-name-buffer) (const :tag "Truncated buffer name" tab-line-tab-name-truncated-buffer) (function :tag "Function")) :initialize 'custom-initialize-default :set (lambda (sym val) (set-default sym val) (force-mode-line-update)) :group 'tab-line :version "27.1") (defun tab-line-tab-name-buffer (buffer &optional _buffers) "Generate tab name from BUFFER. Reduce tab width proportionally to space taken by other tabs. This function can be overridden by changing the default value of the variable `tab-line-tab-name-function'." (buffer-name buffer)) (defcustom tab-line-tab-name-truncated-max 20 "Maximum length of the tab name from the current buffer. Effective when `tab-line-tab-name-function' is customized to `tab-line-tab-name-truncated-buffer'." :type 'integer :group 'tab-line :version "27.1") (defvar tab-line-tab-name-ellipsis (if (char-displayable-p ?=E2=80=A6) "=E2=80=A6" "...")) (defun tab-line-tab-name-truncated-buffer (buffer &optional _buffers) "Generate tab name from BUFFER. Truncate it to the length specified by `tab-line-tab-name-truncated-max'. Append ellipsis `tab-line-tab-name-ellipsis' in this case." (let ((tab-name (buffer-name buffer))) (if (< (length tab-name) tab-line-tab-name-truncated-max) tab-name (propertize (truncate-string-to-width tab-name tab-line-tab-name-truncated-max nil nil tab-line-tab-name-ellipsis) 'help-echo tab-name)))) (defcustom tab-line-tabs-function #'tab-line-tabs-mode-buffers "Function to get a list of tabs to display in the tab line. This function should return either a list of buffers whose names will be displayed, or just a list of strings to display in the tab line. By default, use function `tab-line-tabs-window-buffers' that returns a list of buffers associated with the selected window. When `tab-line-tabs-mode-buffers', return a list of buffers with the same major mode as the current buffer." :type '(choice (const :tag "Window buffers" tab-line-tabs-window-buffers) (const :tag "Same mode buffers" tab-line-tabs-mode-buffers) (const :tag "Grouped buffers" tab-line-tabs-buffer-groups) (function :tag "Function")) :initialize 'custom-initialize-default :set (lambda (sym val) (set-default sym val) (force-mode-line-update)) :group 'tab-line :version "27.1") (defvar tab-line-tabs-buffer-list-function #'tab-line-tabs-buffer-list "Function to return a global list of buffers. Used only for `tab-line-tabs-mode-buffers' and `tab-line-tabs-buffer-groups= '.") (defun tab-line-tabs-buffer-list () (seq-filter (lambda (b) (and (buffer-live-p b) (/=3D (aref (buffer-name b) 0) ?\s))) (seq-uniq (append (list (current-buffer)) (mapcar #'car (window-prev-buffers)) (buffer-list))))) (defun tab-line-tabs-mode-buffers () "Return a list of buffers with the same major mode with current buffer." (let ((mode major-mode)) (seq-sort-by #'buffer-name #'string< (seq-filter (lambda (b) (with-current-buffer b (derived-mode-p mode))) (funcall tab-line-tabs-buffer-list-function)))= )) (defvar tab-line-tabs-buffer-group-function nil "Function to put a buffer to the group. Takes a buffer as arg and should return a group name as string. When the return value is nil, filter out the buffer.") (defvar tab-line-tabs-buffer-group-sort-function nil "Function to sort buffers in group.") (defvar tab-line-tabs-buffer-groups-sort-function #'string< "Function to sort group names.") (defvar tab-line-tabs-buffer-groups mouse-buffer-menu-mode-groups "How to group various major modes together in the tab line. Each element has the form (REGEXP . GROUPNAME). If the major mode's name string matches REGEXP, use GROUPNAME instead.") (defun tab-line-tabs-buffer-group-name (&optional buffer) (if (functionp tab-line-tabs-buffer-group-function) (funcall tab-line-tabs-buffer-group-function buffer) (let ((mode (if buffer (with-current-buffer buffer (format-mode-line mode-name)) (format-mode-line mode-name)))) (or (cdr (seq-find (lambda (group) (string-match-p (car group) mode)) tab-line-tabs-buffer-groups)) mode)))) (defun tab-line-tabs-buffer-groups () (if (window-parameter nil 'tab-line-groups) (let* ((buffers (funcall tab-line-tabs-buffer-list-function)) (groups (seq-sort tab-line-tabs-buffer-groups-sort-function (delq nil (mapcar #'car (seq-group-by (lambda (buffer) (tab-line-tabs-buffer-gr= oup-name buffer)) buffers))))) (selected-group (window-parameter nil 'tab-line-group)) (tabs (mapcar (lambda (group) `(tab (name . ,group) (selected . ,(equal group selected-group)) (select . ,(lambda () (set-window-parameter nil 'tab-line-= groups nil) (set-window-parameter nil 'tab-line-= group group) (set-window-parameter nil 'tab-line-= hscroll nil))))) groups))) tabs) (let* ((window-parameter (window-parameter nil 'tab-line-group)) (group-name (tab-line-tabs-buffer-group-name (current-buffer))) (group (prog1 (or window-parameter group-name "All") (when (equal window-parameter group-name) (set-window-parameter nil 'tab-line-group nil)))) (group-tab `(tab (name . ,group) (select . ,(lambda () (set-window-parameter nil 'tab-line-gr= oups t) (set-window-parameter nil 'tab-line-gr= oup group) (set-window-parameter nil 'tab-line-hs= croll nil))))) (buffers (seq-filter (lambda (b) (equal (tab-line-tabs-buffer-group-name b) group)) (funcall tab-line-tabs-buffer-list-function))) (sorted-buffers (if (functionp tab-line-tabs-buffer-group-sort-f= unction) (seq-sort tab-line-tabs-buffer-group-sort-fu= nction buffers) buffers)) (tabs (mapcar (lambda (buffer) `(tab (name . ,(funcall tab-line-tab-name-function b= uffer)) (selected . ,(eq buffer (current-buffer))) (buffer . ,buffer) (close . ,(lambda (&optional b) ;; kill-buffer because bury-buffer ;; won't remove the buffer from ta= b-line (kill-buffer (or b buffer)))))) sorted-buffers))) (cons group-tab tabs)))) (defun tab-line-tabs-window-buffers () "Return a list of tabs that should be displayed in the tab line. By default returns a list of window buffers, i.e. buffers previously shown in the same window where the tab line is displayed. This list can be overridden by changing the default value of the variable `tab-line-tabs-function'." (let* ((window (selected-window)) (buffer (window-buffer window)) (next-buffers (seq-remove (lambda (b) (eq b buffer)) (window-next-buffers window))) (next-buffers (seq-filter #'buffer-live-p next-buffers)) (prev-buffers (seq-remove (lambda (b) (eq b buffer)) (mapcar #'car (window-prev-buffers windo= w)))) (prev-buffers (seq-filter #'buffer-live-p prev-buffers)) ;; Remove next-buffers from prev-buffers (prev-buffers (seq-difference prev-buffers next-buffers))) (append (reverse prev-buffers) (list buffer) next-buffers))) (defun tab-line-format-template (tabs) "Template for displaying tab line for selected window." (let* ((selected-buffer (window-buffer)) (separator (or tab-line-separator (if window-system " " "|"))) (hscroll (window-parameter nil 'tab-line-hscroll)) (strings (mapcar (lambda (tab) (let* ((buffer-p (bufferp tab)) (selected-p (if buffer-p (eq tab selected-buffer) (cdr (assq 'selected tab)))) (name (if buffer-p (funcall tab-line-tab-name-function tab tabs) (cdr (assq 'name tab))))) (concat separator (apply 'propertize (concat (propertize name 'keymap tab-line-tab-map) (or (and (or buffer-p (assq 'buffer tab) (as= sq 'close tab)) tab-line-close-button-show (not (eq tab-line-close-button-show (if selected-p 'non-select= ed 'selected))) tab-line-close-button) "")) `( tab ,tab ,@(if selected-p '(selected t)) face ,(if selected-p (if (eq (selected-window) (old-selected-= window)) 'tab-line-tab-current 'tab-line-tab) 'tab-line-tab-inactive) mouse-face tab-line-highlight))))) tabs)) (hscroll-data (tab-line-auto-hscroll strings hscroll))) (setq hscroll (nth 1 hscroll-data)) (append (if (null (nth 0 hscroll-data)) (when hscroll (setq hscroll nil) (set-window-parameter nil 'tab-line-hscroll hscroll)) (list separator (when (and (numberp hscroll) (not (zerop hscroll))) tab-line-left-button) (when (if (numberp hscroll) (< (truncate hscroll) (1- (length strings))) (> (length strings) 1)) tab-line-right-button))) (if hscroll (nthcdr (truncate hscroll) strings) strings) (when (eq tab-line-tabs-function #'tab-line-tabs-window-buffers) (list (concat separator (when tab-line-new-tab-choice tab-line-new-button))))))) (defvar tab-line-auto-hscroll) (defun tab-line-format () "Template for displaying tab line for selected window." (let* ((tabs (funcall tab-line-tabs-function)) (cache-key (list tabs (window-buffer) (window-parameter nil 'tab-line-hscroll))) (cache (window-parameter nil 'tab-line-cache))) ;; Enable auto-hscroll again after it was disabled on manual scrolling. ;; The moment to enable it is when the window-buffer was updated. (when (and tab-line-auto-hscroll ; if auto-hscroll was enabled (integerp (nth 2 cache-key)) ; integer on manual scroll cache ; window-buffer was updated (not (equal (nth 1 (car cache)) (nth 1 cache-key)))) (set-window-parameter nil 'tab-line-hscroll (float (nth 2 cache-key))= )) (or (and cache (equal (car cache) cache-key) (cdr cache)) (cdr (set-window-parameter nil 'tab-line-cache (cons cache-key (tab-line-format-template tabs))))))) (defcustom tab-line-auto-hscroll t "Allow or disallow automatic horizontal scrolling of the tab line. Non-nil means the tab line are automatically scrolled horizontally to make the selected tab visible." :type 'boolean :group 'tab-line :version "27.1") (defvar tab-line-auto-hscroll-buffer (generate-new-buffer " *tab-line-hscro= ll*")) (defun tab-line-auto-hscroll (strings hscroll) (with-current-buffer tab-line-auto-hscroll-buffer (let ((truncate-partial-width-windows nil) (inhibit-modification-hooks t) show-arrows) (setq truncate-lines nil) (erase-buffer) (apply 'insert strings) (goto-char (point-min)) (add-face-text-property (point-min) (point-max) 'tab-line) ;; Continuation means tab-line doesn't fit completely, ;; thus scroll arrows are needed for scrolling. (setq show-arrows (> (vertical-motion 1) 0)) ;; Try to auto-hscroll only when scrolling is needed, ;; but no manual scrolling was performed before. (when (and tab-line-auto-hscroll show-arrows ;; Do nothing when scrolled manually (not (integerp hscroll))) (let ((selected (seq-position strings 'selected (lambda (str prop) (get-pos-property 1 prop str))))) (cond ((null selected) ;; Do nothing if no tab is selected ) ((or (not (numberp hscroll)) (< selected (truncate hscroll))) ;; Selected is scrolled to the left, or no scrolling yet (erase-buffer) (apply 'insert (reverse (seq-subseq strings 0 (1+ selected)))) (goto-char (point-min)) (add-face-text-property (point-min) (point-max) 'tab-line) (if (> (vertical-motion 1) 0) (let* ((point (previous-single-property-change (point) 'tab= )) (tab-prop (when point (or (get-pos-property point 'tab) (and (setq point (previous-single-pr= operty-change point 'tab)) (get-pos-property point 'tab)))= )) (new-hscroll (when tab-prop (seq-position strings tab-prop (lambda (str tab) (eq (get-pos-property= 1 'tab str) tab)))))) (when new-hscroll (setq hscroll (float new-hscroll)) (set-window-parameter nil 'tab-line-hscroll hscroll))) (setq hscroll nil) (set-window-parameter nil 'tab-line-hscroll hscroll))) (t ;; Check if the selected tab is already visible (erase-buffer) (apply 'insert (seq-subseq strings (truncate hscroll) (1+ selec= ted))) (goto-char (point-min)) (add-face-text-property (point-min) (point-max) 'tab-line) (when (> (vertical-motion 1) 0) ;; Not visible already (erase-buffer) (apply 'insert (reverse (seq-subseq strings 0 (1+ selected)))) (goto-char (point-min)) (add-face-text-property (point-min) (point-max) 'tab-line) (when (> (vertical-motion 1) 0) (let* ((point (previous-single-property-change (point) 'tab= )) (tab-prop (when point (or (get-pos-property point 'tab) (and (setq point (previous-single-pr= operty-change point 'tab)) (get-pos-property point 'tab)))= )) (new-hscroll (when tab-prop (seq-position strings tab-prop (lambda (str tab) (eq (get-pos-property= 1 'tab str) tab)))))) (when new-hscroll (setq hscroll (float new-hscroll)) (set-window-parameter nil 'tab-line-hscroll hscroll))))= ))))) (list show-arrows hscroll)))) (defun test1 () (interactive) (with-selected-window (split-window-below -10) (switch-to-buffer "*Messages*") (tab-line-mode 0)) (message "tab-line-hscroll: %S" (window-parameter nil 'tab-line-hscroll)) (message "tab-line-cache: %S" (cdr (car (window-parameter nil 'tab-line-c= ache)))) (tab-line-format-template (funcall tab-line-tabs-function)) (select-window (split-window-below -5)) (switch-to-buffer tab-line-auto-hscroll-buffer)) (defun tab-line-hscroll (&optional arg window) (let* ((hscroll (window-parameter window 'tab-line-hscroll)) (tabs (if window (with-selected-window window (funcall tab-line-tabs-func= tion)) (funcall tab-line-tabs-function)))) (set-window-parameter window 'tab-line-hscroll (max 0 (min (+ (if (numberp hscroll) (truncate hscroll) 0) (or arg 1)) (1- (length tabs))))) (when window (force-mode-line-update t)))) (defun tab-line-hscroll-right (&optional arg mouse-event) (interactive (list current-prefix-arg last-nonmenu-event)) (let ((window (and (listp mouse-event) (posn-window (event-start mouse-ev= ent))))) (tab-line-hscroll arg window) (force-mode-line-update window))) (defun tab-line-hscroll-left (&optional arg mouse-event) (interactive (list current-prefix-arg last-nonmenu-event)) (let ((window (and (listp mouse-event) (posn-window (event-start mouse-ev= ent))))) (tab-line-hscroll (- (or arg 1)) window) (force-mode-line-update window))) (defun tab-line-new-tab (&optional mouse-event) "Add a new tab to the tab line. Usually is invoked by clicking on the plus-shaped button. But any switching to other buffer also adds a new tab corresponding to the switched buffer." (interactive (list last-nonmenu-event)) (if (functionp tab-line-new-tab-choice) (funcall tab-line-new-tab-choice) (let ((tab-line-tabs-buffer-groups mouse-buffer-menu-mode-groups)) (if (and (listp mouse-event) window-system) ; (display-popup-menus-p) (mouse-buffer-menu mouse-event) ; like (buffer-menu-open) ;; tty menu doesn't support mouse clicks, so use tmm (tmm-prompt (mouse-buffer-menu-keymap)))))) (defun tab-line-select-tab (&optional e) "Switch to the selected tab. This command maintains the original order of prev/next buffers. So for example, switching to a previous tab is equivalent to using the `previous-buffer' command." (interactive "e") (let* ((posnp (event-start e)) (tab (get-pos-property 1 'tab (car (posn-string posnp)))) (buffer (if (bufferp tab) tab (cdr (assq 'buffer tab))))) (if buffer (tab-line-select-tab-buffer buffer (posn-window posnp)) (let ((select (cdr (assq 'select tab)))) (when (functionp select) (with-selected-window (posn-window posnp) (funcall select) (force-mode-line-update))))))) (defun tab-line-select-tab-buffer (buffer &optional window) (let* ((window-buffer (window-buffer window)) (next-buffers (seq-remove (lambda (b) (eq b window-buffer)) (window-next-buffers window))) (prev-buffers (seq-remove (lambda (b) (eq b window-buffer)) (mapcar #'car (window-prev-buffers windo= w)))) ;; Remove next-buffers from prev-buffers (prev-buffers (seq-difference prev-buffers next-buffers))) (cond ((and (eq tab-line-tabs-function #'tab-line-tabs-window-buffers) (memq buffer next-buffers)) (dotimes (_ (1+ (seq-position next-buffers buffer))) (switch-to-next-buffer window))) ((and (eq tab-line-tabs-function #'tab-line-tabs-window-buffers) (memq buffer prev-buffers)) (dotimes (_ (1+ (seq-position prev-buffers buffer))) (switch-to-prev-buffer window))) (t (with-selected-window window (switch-to-buffer buffer)))))) (defun tab-line-switch-to-prev-tab (&optional mouse-event) "Switch to the previous tab. Its effect is the same as using the `previous-buffer' command (\\[previous-buffer])." (interactive (list last-nonmenu-event)) (let ((window (and (listp mouse-event) (posn-window (event-start mouse-ev= ent))))) (if (eq tab-line-tabs-function #'tab-line-tabs-window-buffers) (switch-to-prev-buffer window) (with-selected-window (or window (selected-window)) (let* ((tabs (funcall tab-line-tabs-function)) (tab (nth (1- (seq-position tabs (current-buffer) (lambda (tab buffer) (if (bufferp tab) (eq buffer tab) (eq buffer (cdr (assq 'buffer tab))))))) tabs)) (buffer (if (bufferp tab) tab (cdr (assq 'buffer tab))))) (when (bufferp buffer) (switch-to-buffer buffer))))))) (defun tab-line-switch-to-next-tab (&optional mouse-event) "Switch to the next tab. Its effect is the same as using the `next-buffer' command (\\[next-buffer])." (interactive (list last-nonmenu-event)) (let ((window (and (listp mouse-event) (posn-window (event-start mouse-ev= ent))))) (if (eq tab-line-tabs-function #'tab-line-tabs-window-buffers) (switch-to-next-buffer window) (with-selected-window (or window (selected-window)) (let* ((tabs (funcall tab-line-tabs-function)) (tab (nth (1+ (seq-position tabs (current-buffer) (lambda (tab buffer) (if (bufferp tab) (eq buffer tab) (eq buffer (cdr (assq 'buffer tab))))))) tabs)) (buffer (if (bufferp tab) tab (cdr (assq 'buffer tab))))) (when (bufferp buffer) (switch-to-buffer buffer))))))) (defcustom tab-line-close-tab-function 'bury-buffer "Defines what to do on closing the tab. If `bury-buffer', put the tab's buffer at the end of the list of all buffers that effectively hides the buffer's tab from the tab line. If `kill-buffer', kills the tab's buffer. When a function, it is called with the tab as its argument. This option is useful when `tab-line-tabs-function' has the value `tab-line-tabs-window-buffers'." :type '(choice (const :tag "Bury buffer" bury-buffer) (const :tag "Kill buffer" kill-buffer) (function :tag "Function")) :group 'tab-line :version "27.1") (defun tab-line-close-tab (&optional mouse-event) "Close the selected tab. Usually is invoked by clicking on the close button on the right side of the tab. This command buries the buffer, so it goes out of sight from the tab line." (interactive (list last-nonmenu-event)) (let* ((posnp (and (listp mouse-event) (event-start mouse-event))) (window (and posnp (posn-window posnp))) (tab (get-pos-property 1 'tab (car (posn-string posnp)))) (buffer (if (bufferp tab) tab (cdr (assq 'buffer tab)))) (close-function (unless (bufferp tab) (cdr (assq 'close tab))))) (with-selected-window (or window (selected-window)) (cond ((functionp close-function) (funcall close-function)) ((eq tab-line-close-tab-function 'kill-buffer) (kill-buffer buffer)) ((eq tab-line-close-tab-function 'bury-buffer) (if (eq buffer (current-buffer)) (bury-buffer) (set-window-prev-buffers nil (assq-delete-all buffer (window-prev= -buffers))) (set-window-next-buffers nil (delq buffer (window-next-buffers)))= )) ((functionp tab-line-close-tab-function) (funcall tab-line-close-tab-function tab))) (force-mode-line-update)))) ;;;###autoload (define-minor-mode tab-line-mode "Toggle display of window tab line in the buffer." :lighter nil (setq tab-line-format (when tab-line-mode '(:eval (tab-line-format))))) (defcustom tab-line-exclude-modes '(completion-list-mode) "List of major modes in which the tab line is not enabled." :type '(repeat symbol) :group 'tab-line :version "27.1") ;;;###autoload (defvar tab-line-exclude nil) ;;;###autoload (make-variable-buffer-local 'tab-line-exclude) (defun tab-line-mode--turn-on () "Turn on `tab-line-mode'." (unless (or (minibufferp) (string-match-p "\\` " (buffer-name)) (memq major-mode tab-line-exclude-modes) (get major-mode 'tab-line-exclude) (buffer-local-value 'tab-line-exclude (current-buffer))) (tab-line-mode 1))) ;;;###autoload (define-globalized-minor-mode global-tab-line-mode tab-line-mode tab-line-mode--turn-on :group 'tab-line :version "27.1") (global-set-key [tab-line mouse-4] 'tab-line-hscroll-left) (global-set-key [tab-line mouse-5] 'tab-line-hscroll-right) (global-set-key [tab-line wheel-up] 'tab-line-hscroll-left) (global-set-key [tab-line wheel-down] 'tab-line-hscroll-right) (global-set-key [tab-line S-mouse-4] 'tab-line-switch-to-prev-tab) (global-set-key [tab-line S-mouse-5] 'tab-line-switch-to-next-tab) (global-set-key [tab-line S-wheel-up] 'tab-line-switch-to-prev-tab) (global-set-key [tab-line S-wheel-down] 'tab-line-switch-to-next-tab) (provide 'tab-line) ;;; tab-line.el ends here --=-=-=-- From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 26 Feb 2020 23:34:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 39649@debbugs.gnu.org, =?UTF-8?Q?Jo=C3=A3o?= Guerra Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158276003116651 (code B ref 39649); Wed, 26 Feb 2020 23:34:02 +0000 Received: (at 39649) by debbugs.gnu.org; 26 Feb 2020 23:33:51 +0000 Received: from localhost ([127.0.0.1]:57946 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j76Bb-0004KU-45 for submit@debbugs.gnu.org; Wed, 26 Feb 2020 18:33:51 -0500 Received: from bongo.elm.relay.mailchannels.net ([23.83.212.21]:49050) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j76BY-0004KJ-QC for 39649@debbugs.gnu.org; Wed, 26 Feb 2020 18:33:49 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 9E1D340087E; Wed, 26 Feb 2020 23:33:47 +0000 (UTC) Received: from pdx1-sub0-mail-a11.g.dreamhost.com (100-96-0-15.trex.outbound.svc.cluster.local [100.96.0.15]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 817A74008B0; Wed, 26 Feb 2020 23:33:46 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a11.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Wed, 26 Feb 2020 23:33:46 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Grain-Average: 667c414000faa866_1582760026767_12295250 X-MC-Loop-Signature: 1582760026766:1025279425 X-MC-Ingress-Time: 1582760026766 Received: from pdx1-sub0-mail-a11.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a11.g.dreamhost.com (Postfix) with ESMTP id 9E1A588400; Wed, 26 Feb 2020 15:33:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=dqTHWkCgOld1fQ1qlhz8WkBVZ8w=; b= CzpYZGBQstLPp4SoHhRfN84q+ZT0ee3+8gjOcuVIJftgKArgt9d8oOynDHwbiTGd Za3+vrzm/4Oh86U52ZbQNcBdaXpqw32KIdoXOyVAAcyZsWq1KQeSu6mUdcPYTxY3 fLgI8W0lajpWx+fYgQxQxQrcMWfrzTjVR/zgL9hCcz0= Received: from mail.jurta.org (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a11.g.dreamhost.com (Postfix) with ESMTPSA id AEFBD8852D; Wed, 26 Feb 2020 15:33:42 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a11 From: Juri Linkov Organization: LINKOV.NET References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> Date: Thu, 27 Feb 2020 01:33:00 +0200 In-Reply-To: <871rqhj5x2.fsf@mail.linkov.net> (Juri Linkov's message of "Thu, 27 Feb 2020 01:16:25 +0200") Message-ID: <87imjshqkz.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: -100 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedrleehgddufecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvffuohhfffgjkfgfgggtsehttdertddtredtnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecukfhppeeluddruddvledruddtfedrvdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhppdhhvghlohepmhgrihhlrdhjuhhrthgrrdhorhhgpdhinhgvthepledurdduvdelrddutdefrddvjedprhgvthhurhhnqdhprghthheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqedpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnrhgtphhtthhopegvlhhiiiesghhnuhdrohhrgh X-Spam-Score: 0.0 (/) 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.0 (-) > I suspect that the problem comes from the tab-line fontified differently > by core and when fontified manually in the buffer. Eli, could you explain why there no wrapper around the C function display_mode_element exposed to Lisp. The closest function is format-mode-line but still its formatting is different from what display_mode_element really displays in the tab-line. Steps to reproduce the problem: 1. emacs -Q 2. M-x global-tab-line-mode 3. C-x b test1 4. M-: (insert (format-mode-line (tab-line-format))) 5. Note how the tab uses the face tab-line-tab with released-button box style, but the tab-line doesn't use the face tab-line 6. C-x b test2 7. M-: (insert (format-mode-line (tab-line-format) 'tab-line)) 8. Note how the the tab-line now uses the face tab-line, but this face overrides the faces of individual tabs that should have the face tab-line-tab with released-button box style. I can't find a function that would insert to the current buffer a string formatted exactly as the tab-line displayed above the window. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 27 Feb 2020 21:15:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.15828380463212 (code B ref 39649); Thu, 27 Feb 2020 21:15:01 +0000 Received: (at 39649) by debbugs.gnu.org; 27 Feb 2020 21:14:06 +0000 Received: from localhost ([127.0.0.1]:60376 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7QTt-0000pj-Ty for submit@debbugs.gnu.org; Thu, 27 Feb 2020 16:14:06 -0500 Received: from mail-ua1-f65.google.com ([209.85.222.65]:37593) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7QTr-0000p1-I8 for 39649@debbugs.gnu.org; Thu, 27 Feb 2020 16:14:04 -0500 Received: by mail-ua1-f65.google.com with SMTP id h32so201755uah.4 for <39649@debbugs.gnu.org>; Thu, 27 Feb 2020 13:14:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=S1BefyVMtcMVmcW9lXfZOqwWvjVdXx2tPXls9z6n9Vk=; b=oo/g1QjoR1aWYwAee1ad3aj9uYikmTsl4S+PpXrd7MmvZa+iyJbb3XOAXzdtj8OI9/ jqOCQoDqTxflWav9gT0z9aaYjABhrk6EXMBukF1bdDHVcKrVDfRvNe1oc9QgPLQZDyg+ ewrsy1DcO1M8Z91tN2gFklneTJqEtLJ9qeQyg1x61SqSNWU3vKv5rj8SrlTfEAQXC8cL GioDhJkQWq3ChspmzVXA12wnlZjxlhSxKmgulEy9pI6cxhncEtWAH8VbRtXLDrYqvBXX AGI8bSArqpHtUHTWZSdWyhtHCuUvZXAbRuy6jXw5kLqFeBt6friPfFpj9raPoIkqwZ0T aK3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=S1BefyVMtcMVmcW9lXfZOqwWvjVdXx2tPXls9z6n9Vk=; b=OhCiceO7rWd1++yEQDF0EI7HrSz8i7LIB9seBFHGQS5FlfrG002zJ2r0ptS9+0pHGz 1EoZ7T6VRxoAUcUMdnkJ4pXMhSyzVO/N9FYQEQy07BD/Gi9tF4Y9C5ApY2Mx0/BqF4CQ 1Uudpy6HaUS4jfgNCbZJYnQECYlXC0qroIPRJ1kqcTCWgfXqDBmZgv4BgxIVnbL7Z3CQ qQRtt+0RrBbd0iTU1Ou6kfcEl7PRYH1zgsYT1xNuTYM8/rUm+zgH0esjihibEPc10pj7 6BHMX/umd/kwVuhD6+urv2KuVuG4Une0pZpJ6McVKoB9JBW8g0aV8KsQd/c+9vRArDOt hYUQ== X-Gm-Message-State: ANhLgQ2GJyGFxaCAD6RwaIIlAOuLP9ZRasFxTgHc3/w4UPdXsLoW/f3c lmCZqMqaakyiox1W/oCgN8Adt4c70rGsB1yRMpaNxBhJ X-Google-Smtp-Source: ADFU+vso+8HFLKL12gn+Lu1VCNMF1dBGMT11WzGAkit7zNYDqvX3ryFXr+XiqmItwKraKw6kefTFx0D/MeMvUi9gSGE= X-Received: by 2002:ab0:7196:: with SMTP id l22mr362345uao.99.1582838037527; Thu, 27 Feb 2020 13:13:57 -0800 (PST) MIME-Version: 1.0 References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> In-Reply-To: <871rqhj5x2.fsf@mail.linkov.net> From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Date: Thu, 27 Feb 2020 22:13:21 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) 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.0 (-) 1. emacs -Q 2. M-x load-file tab-line-1.el 3. M-x global-tab-line-mode 4. M-: (setq tab-line-tabs-function #'tab-line-tabs-mode-buffers) 5. https://youtu.be/fQlrP0dlBbw On Thu, 27 Feb 2020 at 00:19, Juri Linkov wrote: > > > It does have your patch, but just the latest one in this thread. > > Video demonstration: https://youtu.be/xq_JMBO4SyI. > > I'm using Emacs from > > https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-27/. It does > > have XPM support. > > Thanks for the recipe. I tried everything possible, but still > no bug reproduction. > > Given the above, may I ask you to run some debugging diagnostics: > > 1. load the attached file, e.g. with M-x load-file > 2. M-x global-tab-line-mode > 3. perform all steps from your bug report > 4. after the last step, when the tab selection fails, execute > > M-x test1 RET > > and make a screenshot. The screenshot should look like on the image attached. > > I suspect that the problem comes from the tab-line fontified differently > by core and when fontified manually in the buffer. > From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 27 Feb 2020 22:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: =?UTF-8?Q?Jo=C3=A3o?= Guerra Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158284314519941 (code B ref 39649); Thu, 27 Feb 2020 22:40:01 +0000 Received: (at 39649) by debbugs.gnu.org; 27 Feb 2020 22:39:05 +0000 Received: from localhost ([127.0.0.1]:60420 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7Ro8-0005BZ-QN for submit@debbugs.gnu.org; Thu, 27 Feb 2020 17:39:04 -0500 Received: from aye.elm.relay.mailchannels.net ([23.83.212.6]:20571) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7Ro5-0005B8-L0 for 39649@debbugs.gnu.org; Thu, 27 Feb 2020 17:39:02 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 2AE4D5A0D1D; Thu, 27 Feb 2020 22:39:00 +0000 (UTC) Received: from pdx1-sub0-mail-a8.g.dreamhost.com (100-96-217-41.trex.outbound.svc.cluster.local [100.96.217.41]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 657735A0203; Thu, 27 Feb 2020 22:38:59 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a8.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Thu, 27 Feb 2020 22:38:59 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Print-Invention: 5e2e500b1b765528_1582843139832_1526066041 X-MC-Loop-Signature: 1582843139832:3629355950 X-MC-Ingress-Time: 1582843139831 Received: from pdx1-sub0-mail-a8.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a8.g.dreamhost.com (Postfix) with ESMTP id 154FA7F787; Thu, 27 Feb 2020 14:38:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=uyWf53eEsuOt+vEybh2IkJK2bb8=; b= L7hG2wU1WwoQrIH8EA4lWmkAJjKzZ3FbDn8R6mI0L06/yxywooYoq2sQ/A4iWRBe wwUgwmRjIgfE/+2B1f93Q52XVfcSOA3r5LQjg59sBQLctXUfP5M5j0tUA0hTLLfw MbNjWizP3Eigkvw0wGg1EhkNvZhUfL9vl08UzIKuW+M= Received: from mail.jurta.org (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a8.g.dreamhost.com (Postfix) with ESMTPSA id 76F967F77E; Thu, 27 Feb 2020 14:38:51 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a8 From: Juri Linkov Organization: LINKOV.NET References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> Date: Fri, 28 Feb 2020 00:37:28 +0200 In-Reply-To: ("=?UTF-8?Q?Jo=C3=A3o?= Guerra"'s message of "Thu, 27 Feb 2020 22:13:21 +0100") Message-ID: <87lfonzmfr.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: 0 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedrleeigdduieduucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuggftfghnshhusghstghrihgsvgdpffftgfetoffjqffuvfenuceurghilhhouhhtmecufedttdenucenucfjughrpefhvffuohhfffgjkfgfgggtsehttdertddtredtnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecuffhomhgrihhnpeihohhuthhurdgsvgenucfkphepledurdduvdelrddutdefrddvjeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhhouggvpehsmhhtphdphhgvlhhopehmrghilhdrjhhurhhtrgdrohhrghdpihhnvghtpeeluddruddvledruddtfedrvdejpdhrvghtuhhrnhdqphgrthhhpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhhrtghpthhtohepjhhotggrrdgsthesghhmrghilhdrtghomh X-Spam-Score: 0.0 (/) 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.0 (-) > 1. emacs -Q > 2. M-x load-file tab-line-1.el > 3. M-x global-tab-line-mode > 4. M-: (setq tab-line-tabs-function #'tab-line-tabs-mode-buffers) > 5. https://youtu.be/fQlrP0dlBbw Thanks, now it's clear where the problem is: the buffer *Messages* shows that old code is loaded, i.e. first you load the new file tab-line-1.el (the first line in the buffer *Messages*), but later its functions are overridden by old file (the third line in the buffer *Messages*). Only the new command 'test1' remains loaded, all other functions are overridden from old file tab-line.el. I believe this could be solved by changing the loading order: 1. emacs -Q 2. M-x global-tab-line-mode - this will load old file tab-line.el 3. M-x load-file tab-line-1.el - old functions will be overridden by new file tab-line-1.el Please try this. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 28 Feb 2020 09:14:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org, joca.bt@gmail.com Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.15828811913754 (code B ref 39649); Fri, 28 Feb 2020 09:14:02 +0000 Received: (at 39649) by debbugs.gnu.org; 28 Feb 2020 09:13:11 +0000 Received: from localhost ([127.0.0.1]:60661 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7bhn-0000yU-1T for submit@debbugs.gnu.org; Fri, 28 Feb 2020 04:13:11 -0500 Received: from eggs.gnu.org ([209.51.188.92]:33841) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7bhk-0000yC-R4 for 39649@debbugs.gnu.org; Fri, 28 Feb 2020 04:13:09 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51718) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1j7bhf-0005US-8v; Fri, 28 Feb 2020 04:13:03 -0500 Received: from [176.228.60.248] (port=2140 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1j7bhe-0002tN-06; Fri, 28 Feb 2020 04:13:02 -0500 Date: Fri, 28 Feb 2020 11:12:47 +0200 Message-Id: <8336avgjn4.fsf@gnu.org> From: Eli Zaretskii In-reply-to: <87imjshqkz.fsf@mail.linkov.net> (message from Juri Linkov on Thu, 27 Feb 2020 01:33:00 +0200) References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> <87imjshqkz.fsf@mail.linkov.net> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -0.7 (/) 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.7 (-) > From: Juri Linkov > Cc: João Guerra , > 39649@debbugs.gnu.org > Date: Thu, 27 Feb 2020 01:33:00 +0200 > > > I suspect that the problem comes from the tab-line fontified differently > > by core and when fontified manually in the buffer. > > Eli, could you explain why there no wrapper around the C function > display_mode_element exposed to Lisp. Why would we need that? The related display code is in C, so we never needed to expose this to Lisp. I also don't understand the relation between this question and the recipes you show. > The closest function is format-mode-line but still its formatting is > different from what display_mode_element really displays in the > tab-line. Why is that a problem? format-mode-line was not intended to be used in display context. > 1. emacs -Q > 2. M-x global-tab-line-mode > > 3. C-x b test1 > 4. M-: (insert (format-mode-line (tab-line-format))) > 5. Note how the tab uses the face tab-line-tab > with released-button box style, but the tab-line > doesn't use the face tab-line I don't see tab-line-tab face, I see either tab-line-tab-inactive or tab-line-tab-current. And the button style and its mouse-sensitive behavior follows what I see on the real tab-line. But maybe I don't understand what you allude to here. What is the "tab" in this context, and what is "tab-line"? You have one inserted into buffer text and one displayed on header-line-like tab-line -- which one do you allude to here? And why do you think what is displayed is some kind of problem? > 6. C-x b test2 > 7. M-: (insert (format-mode-line (tab-line-format) 'tab-line)) > 8. Note how the the tab-line now uses the face tab-line, > but this face overrides the faces of individual tabs that > should have the face tab-line-tab with released-button box style. And here I don't understand what you mean by "overrides". > I can't find a function that would insert to the current buffer > a string formatted exactly as the tab-line displayed > above the window. Why is that needed? P.S. I did all the testing in Emacs 27.0.90, the latest emacs-27 branch. Thanks. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 28 Feb 2020 13:18:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org, joca.bt@gmail.com Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158289583614348 (code B ref 39649); Fri, 28 Feb 2020 13:18:02 +0000 Received: (at 39649) by debbugs.gnu.org; 28 Feb 2020 13:17:16 +0000 Received: from localhost ([127.0.0.1]:60770 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7fVz-0003jK-NH for submit@debbugs.gnu.org; Fri, 28 Feb 2020 08:17:15 -0500 Received: from eggs.gnu.org ([209.51.188.92]:38439) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7fVx-0003j2-KA for 39649@debbugs.gnu.org; Fri, 28 Feb 2020 08:17:14 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:38431) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1j7fVs-00032l-BY; Fri, 28 Feb 2020 08:17:08 -0500 Received: from [176.228.60.248] (port=1071 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1j7fVq-0007Mf-Ty; Fri, 28 Feb 2020 08:17:07 -0500 Date: Fri, 28 Feb 2020 15:16:52 +0200 Message-Id: <83tv3ag8cb.fsf@gnu.org> From: Eli Zaretskii In-reply-to: <87pne2ilur.fsf@mail.linkov.net> (message from Juri Linkov on Tue, 25 Feb 2020 23:20:10 +0200) References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: 0.5 (/) 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: -0.5 (/) > From: Juri Linkov > Date: Tue, 25 Feb 2020 23:20:10 +0200 > Cc: 39649@debbugs.gnu.org > > I see that left/right arrows in your bug report are XPM images. > But I don't understand how this is possible because > (info "(efaq-w32) Image support") says that Emacs has > no built-in support for XPM on Windows. That's not what the w32 FAQ says. It says this: Emacs has built in support for XBM and PBM/PGM/PPM images. This is sufficient to see the monochrome splash screen and tool-bar icons. Since v22.2, the official precompiled binaries for Windows have bundled libXpm, which is required to display the color versions of those images. IOW, XPM support is not built-in, but MS-Windows binaries of all Emacs versions since v22.2 are distributed with the libXpm library, which allows the w32 build to display XPM images. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 28 Feb 2020 18:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158291470120765 (code B ref 39649); Fri, 28 Feb 2020 18:32:02 +0000 Received: (at 39649) by debbugs.gnu.org; 28 Feb 2020 18:31:41 +0000 Received: from localhost ([127.0.0.1]:33768 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7kQH-0005Or-1V for submit@debbugs.gnu.org; Fri, 28 Feb 2020 13:31:41 -0500 Received: from mail-vs1-f49.google.com ([209.85.217.49]:36746) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j7kQF-0005OU-8o for 39649@debbugs.gnu.org; Fri, 28 Feb 2020 13:31:39 -0500 Received: by mail-vs1-f49.google.com with SMTP id a2so2576625vso.3 for <39649@debbugs.gnu.org>; Fri, 28 Feb 2020 10:31:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=/L3y6+aDYw98/Y7w70dA3Qgwikk1laVvSUziUlskHAY=; b=QUCamA8lwLzqscmVjmlZ7TqmuMMNKCRbMNg8+FcXP3EPi0L7eu9kNGJPlyAhrnN7qU vCc7YfV61k2Ne84IlogzisfiSg2KFG2sUxisCFgBiX6qn8L4TlNGb+MvoeAYA28jYRbF aag+Rqwih0hNCFRyjNrJ2thpF0Rs9ZtadpjebMY7cxGzffiI6YTFNWuydZT7YTWM9Jhz GPQi6sz6xXFn02aDs3Bk1sxaMvq04WQeIcUyUZ0sKFm9bkJQnE3pEi1LOyyzVT9nSKH/ xQIYWBawWkqKCdMBhlFRI0aJFtHHdrDRMSQT7anrNmBUmMUeXZCyQmBd9S/HqQoalhvN 2Yww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=/L3y6+aDYw98/Y7w70dA3Qgwikk1laVvSUziUlskHAY=; b=W4/obF6INtvVs0l9ImvaA2eMNBxbAtKyZFDVf5sp7aFNc970OlULer9EtyUZjJnSwN wOYuBYbEY5FabAVH2wsJujLbZnKLiltoik0VQ2JcAfIL4ybOlrtMjk13+o48jXNI7LPR 3mvjxh3NQdeg/k8eowD0wUJKbbfkubs95Do02TsrdDWxNikLovyjsFkb44RJOLH5vr/s dFQI44Xi5xuh/kkjHeNVEIjUfocqtI5mEjSOMHpzPIvcuFBI83E3ijd4KFP7eYNi1IB4 xUSIOh+M4phajb9CeGnxxX7RMztVjnwjh1dXkZSN+cg+v3wsa3Xy5k5xT9Cqcnuz64HL wXxg== X-Gm-Message-State: ANhLgQ26JYGoUSx5n5SFy1XkXVvZVcF5yIgzHUaZayC07wNMk4vTIu5c r8Q9bAkHq5IU4eVTni+OTw+grOzKQiQTtQ0XvYg= X-Google-Smtp-Source: ADFU+vuvRX7jSjSIfs5+CvKYEhNlXz2kGnJINmaPW5NBqLcgU5pWahIWIU8FWkzRyVpuYgbEfzmNZp6+DyKOw99o3KQ= X-Received: by 2002:a67:c58c:: with SMTP id h12mr2919625vsk.0.1582914693666; Fri, 28 Feb 2020 10:31:33 -0800 (PST) MIME-Version: 1.0 References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> <87lfonzmfr.fsf@mail.linkov.net> In-Reply-To: <87lfonzmfr.fsf@mail.linkov.net> From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Date: Fri, 28 Feb 2020 19:30:58 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) 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.0 (-) Issue no longer exists when I load your file in the end (ie. after enabling the mode and customizing tab-line-tabs-function). On Thu, 27 Feb 2020 at 23:39, Juri Linkov wrote: > > > 1. emacs -Q > > 2. M-x load-file tab-line-1.el > > 3. M-x global-tab-line-mode > > 4. M-: (setq tab-line-tabs-function #'tab-line-tabs-mode-buffers) > > 5. https://youtu.be/fQlrP0dlBbw > > Thanks, now it's clear where the problem is: > the buffer *Messages* shows that old code is loaded, > i.e. first you load the new file tab-line-1.el > (the first line in the buffer *Messages*), > but later its functions are overridden by old file > (the third line in the buffer *Messages*). > Only the new command 'test1' remains loaded, > all other functions are overridden from old file > tab-line.el. > > I believe this could be solved by changing the loading order: > > 1. emacs -Q > 2. M-x global-tab-line-mode > - this will load old file tab-line.el > 3. M-x load-file tab-line-1.el > - old functions will be overridden by new file tab-line-1.el > > Please try this. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 29 Feb 2020 21:52:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 39649@debbugs.gnu.org, joca.bt@gmail.com Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.15830130991138 (code B ref 39649); Sat, 29 Feb 2020 21:52:03 +0000 Received: (at 39649) by debbugs.gnu.org; 29 Feb 2020 21:51:39 +0000 Received: from localhost ([127.0.0.1]:35512 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j8A1L-0000II-1C for submit@debbugs.gnu.org; Sat, 29 Feb 2020 16:51:39 -0500 Received: from fossa.birch.relay.mailchannels.net ([23.83.209.62]:37372) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j8A1G-0000I0-TR for 39649@debbugs.gnu.org; Sat, 29 Feb 2020 16:51:35 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id C9FD4340BC3; Sat, 29 Feb 2020 21:51:33 +0000 (UTC) Received: from pdx1-sub0-mail-a73.g.dreamhost.com (100-96-0-15.trex.outbound.svc.cluster.local [100.96.0.15]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 647B3340B3D; Sat, 29 Feb 2020 21:51:33 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a73.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Sat, 29 Feb 2020 21:51:33 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Cooing-Ski: 585243f037d248d5_1583013093645_380200335 X-MC-Loop-Signature: 1583013093645:2693743162 X-MC-Ingress-Time: 1583013093644 Received: from pdx1-sub0-mail-a73.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a73.g.dreamhost.com (Postfix) with ESMTP id 03E737F539; Sat, 29 Feb 2020 13:51:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=linkov.net; bh=fXdJul JtvcsUzqgykNm9wBPlz0w=; b=R+jWL0XTNCCrU8hR3/coJQ+yZOjHEpdLLtFMVS CB1l+zIo5NS+QKKBsTiuymRA69hnugXlH7sxoFbCP2kCPoKBDN30iG+lntY9hx/x prkaqCUFw56kMxtTUfymMiwVgK9qqelcWM3zKvPola1Zs1E700P4o/x+rYQ0YO7V 3DhOw= Received: from mail.jurta.org (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a73.g.dreamhost.com (Postfix) with ESMTPSA id 010D27F52A; Sat, 29 Feb 2020 13:51:30 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a73 From: Juri Linkov Organization: LINKOV.NET References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> <87imjshqkz.fsf@mail.linkov.net> <8336avgjn4.fsf@gnu.org> Date: Sat, 29 Feb 2020 23:44:56 +0200 In-Reply-To: <8336avgjn4.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 28 Feb 2020 11:12:47 +0200") Message-ID: <87blphrulz.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: -100 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedruddttddgudehjecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhvffuohhfffgjkfgfgggtgfesthekredttderudenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucfkphepledurdduvdelrddutdefrddvjeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhhouggvpehsmhhtphdphhgvlhhopehmrghilhdrjhhurhhtrgdrohhrghdpihhnvghtpeeluddruddvledruddtfedrvdejpdhrvghtuhhrnhdqphgrthhhpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhhrtghpthhtohepvghlihiisehgnhhurdhorhhg Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) 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.0 (-) > Why would we need that? The related display code is in C, so we never > needed to expose this to Lisp. format-mode-line already exposes it, but fails to properly handle its arg FACE. > I also don't understand the relation between this question and the > recipes you show. format-mode-line can be used to get the same formatted string as is displayed on the tab-line. >> The closest function is format-mode-line but still its formatting is >> different from what display_mode_element really displays in the >> tab-line. > > Why is that a problem? format-mode-line was not intended to be used > in display context. format-mode-line does the right thing for this task, but its handling of the arg FACE is broken. >> 1. emacs -Q >> 2. M-x global-tab-line-mode >> >> 3. C-x b test1 >> 4. M-: (insert (format-mode-line (tab-line-format))) >> 5. Note how the tab uses the face tab-line-tab >> with released-button box style, but the tab-line >> doesn't use the face tab-line > > I don't see tab-line-tab face, I see either tab-line-tab-inactive or > tab-line-tab-current. And the button style and its mouse-sensitive > behavior follows what I see on the real tab-line. This is correct, I meant tab-line-tab-inactive and tab-line-tab-current that inherit from tab-line-tab. > But maybe I don't understand what you allude to here. What is the > "tab" in this context, and what is "tab-line"? You have one inserted > into buffer text and one displayed on header-line-like tab-line -- > which one do you allude to here? And why do you think what is > displayed is some kind of problem? "tab-line" visually should have an appearance defined by the face "tab-li= ne", i.e. grey background that can be seen at whitespace between tabs, like in the case below. There is no problem here. The real problem is b= elow. >> 6. C-x b test2 >> 7. M-: (insert (format-mode-line (tab-line-format) 'tab-line)) >> 8. Note how the the tab-line now uses the face tab-line, >> but this face overrides the faces of individual tabs that >> should have the face tab-line-tab with released-button box style. > > And here I don't understand what you mean by "overrides". Do you see the same button styles with the faces tab-line-tab-inactive an= d tab-line-tab-current as in the case above like they are on the real tab-l= ine? These faces are lost when the arg FACE is specified. >> I can't find a function that would insert to the current buffer >> a string formatted exactly as the tab-line displayed >> above the window. > > Why is that needed? Actually, no other function needed. format-mode-line does it job, but doesn't handle its arg FACE correctly. No wonder that handling of its arg FACE is not yet implemented. I grepped the Emacs source code, and none of format-mode-line function calls uses the arg FACE. Jo=E3o said that everything already works, so this is not a problem for the Emacs 27 release. But in master format-mode-line could be fixed to implement better merging of its arg FACE with faces already existing on strings given in its arg FORMAT. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll In-Reply-To: Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 29 Feb 2020 21:52:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: =?UTF-8?Q?Jo=C3=A3o?= Guerra Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.15830131071166 (code B ref 39649); Sat, 29 Feb 2020 21:52:03 +0000 Received: (at 39649) by debbugs.gnu.org; 29 Feb 2020 21:51:47 +0000 Received: from localhost ([127.0.0.1]:35515 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j8A1T-0000Ik-BP for submit@debbugs.gnu.org; Sat, 29 Feb 2020 16:51:47 -0500 Received: from butterfly.birch.relay.mailchannels.net ([23.83.209.27]:50089) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j8A1R-0000Ib-Dv for 39649@debbugs.gnu.org; Sat, 29 Feb 2020 16:51:46 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 47EF5540865; Sat, 29 Feb 2020 21:51:44 +0000 (UTC) Received: from pdx1-sub0-mail-a73.g.dreamhost.com (100-96-1-27.trex.outbound.svc.cluster.local [100.96.1.27]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id D2B36540316; Sat, 29 Feb 2020 21:51:43 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a73.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Sat, 29 Feb 2020 21:51:44 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Relation-Spot: 58b4778942b6738f_1583013104078_2350742851 X-MC-Loop-Signature: 1583013104078:4197437906 X-MC-Ingress-Time: 1583013104077 Received: from pdx1-sub0-mail-a73.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a73.g.dreamhost.com (Postfix) with ESMTP id DBB6C7F524; Sat, 29 Feb 2020 13:51:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:message-id:mime-version:content-type; s=linkov.net; bh=/whU8HUBHqgBgOWeBYC7Uoj2fOg=; b=pmJN553YLLj2qR Zi5yj194hOxI8ZmfoWLJWUrYA7IcCUb2yFVuVMelU/3aVtE4cr5Fu7iOh+UKJQp5 ZbDmzhAovXcn/5GCIjoJd1Z/iP0gulMYI128aYvWeMR6a2oyBFG0yYB7zC/XS3yw jfXwD/xS11xOZbI8PoYIZyOFfJqe8= Received: from mail.jurta.org (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a73.g.dreamhost.com (Postfix) with ESMTPSA id 5726E7F52A; Sat, 29 Feb 2020 13:51:37 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a73 From: Juri Linkov Organization: LINKOV.NET References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> <87lfonzmfr.fsf@mail.linkov.net> Date: Sat, 29 Feb 2020 23:49:56 +0200 Message-ID: <87d09xqd17.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: 0 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedruddttddgudehjecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecunecujfgurhephffvufhofhffkfgfgggtsehttdertddtredtnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecukfhppeeluddruddvledruddtfedrvdejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhppdhhvghlohepmhgrihhlrdhjuhhrthgrrdhorhhgpdhinhgvthepledurdduvdelrddutdefrddvjedprhgvthhurhhnqdhprghthheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqedpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnrhgtphhtthhopehjohgtrgdrsghtsehgmhgrihhlrdgtohhm X-Spam-Score: 0.0 (/) 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.0 (-) > Issue no longer exists when I load your file in the end (ie. after > enabling the mode and customizing tab-line-tabs-function). Thanks for checking, fix pushed. If you want, could you try it again after the next Windows pretest will be released (maybe after a few weeks, this is not strictly necessary, but could confirm that there are really no more problems). From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 01 Mar 2020 16:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org, joca.bt@gmail.com Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158307914325454 (code B ref 39649); Sun, 01 Mar 2020 16:13:01 +0000 Received: (at 39649) by debbugs.gnu.org; 1 Mar 2020 16:12:23 +0000 Received: from localhost ([127.0.0.1]:36874 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j8RCZ-0006cU-KC for submit@debbugs.gnu.org; Sun, 01 Mar 2020 11:12:23 -0500 Received: from eggs.gnu.org ([209.51.188.92]:35565) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j8RCW-0006c9-OY for 39649@debbugs.gnu.org; Sun, 01 Mar 2020 11:12:21 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:49729) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1j8RCR-0005o5-8E; Sun, 01 Mar 2020 11:12:15 -0500 Received: from [176.228.60.248] (port=1767 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1j8RCQ-00027H-2S; Sun, 01 Mar 2020 11:12:14 -0500 Date: Sun, 01 Mar 2020 18:12:06 +0200 Message-Id: <83tv38yrzd.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: <87blphrulz.fsf@mail.linkov.net> (message from Juri Linkov on Sat, 29 Feb 2020 23:44:56 +0200) References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> <87imjshqkz.fsf@mail.linkov.net> <8336avgjn4.fsf@gnu.org> <87blphrulz.fsf@mail.linkov.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Spam-Score: -0.7 (/) 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.7 (-) > From: Juri Linkov > Cc: joca.bt@gmail.com, 39649@debbugs.gnu.org > Date: Sat, 29 Feb 2020 23:44:56 +0200 > > > Why would we need that? The related display code is in C, so we never > > needed to expose this to Lisp. > > format-mode-line already exposes it, but fails to properly > handle its arg FACE. So you are saying that we already have the API exposed to Lisp, but it (format-mode-line) doesn't work well? > >> 6. C-x b test2 > >> 7. M-: (insert (format-mode-line (tab-line-format) 'tab-line)) > >> 8. Note how the the tab-line now uses the face tab-line, > >> but this face overrides the faces of individual tabs that > >> should have the face tab-line-tab with released-button box style. > > > > And here I don't understand what you mean by "overrides". > > Do you see the same button styles with the faces tab-line-tab-inactive and > tab-line-tab-current as in the case above like they are on the real tab-line? > These faces are lost when the arg FACE is specified. I don't think this is a bug, the code behaves as intended. It's just that its intent might be not what you expect, and the available documentation doesn't help to expect what the code does. The doc string says, inter alia: Optional second arg FACE specifies the face property to put on all characters for which no face is specified. But what it really means is that text produced by the various %-constructs will have FACE if the %-constructs don't provide a face. In your case, you supply the function with a fixed string, so specifying FACE overrides the faces you have there, see store_mode_line_string (which is called in this case with PROPS set to nil). At this point let me turn the table and ask why did you need to pass FACE to format-mode-line in your case? What did you want to achieve? From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 01 Mar 2020 23:44:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 39649@debbugs.gnu.org, joca.bt@gmail.com Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158310621313962 (code B ref 39649); Sun, 01 Mar 2020 23:44:01 +0000 Received: (at 39649) by debbugs.gnu.org; 1 Mar 2020 23:43:33 +0000 Received: from localhost ([127.0.0.1]:37084 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j8YFA-0003d7-Nf for submit@debbugs.gnu.org; Sun, 01 Mar 2020 18:43:32 -0500 Received: from caracal.birch.relay.mailchannels.net ([23.83.209.30]:28303) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j8YF8-0003cq-Hu for 39649@debbugs.gnu.org; Sun, 01 Mar 2020 18:43:31 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 6CCB5501B60; Sun, 1 Mar 2020 23:43:29 +0000 (UTC) Received: from pdx1-sub0-mail-a50.g.dreamhost.com (100-96-217-40.trex.outbound.svc.cluster.local [100.96.217.40]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id CEF40501B3D; Sun, 1 Mar 2020 23:43:28 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a50.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Sun, 01 Mar 2020 23:43:29 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Broad-Towering: 77a3620322e52f9b_1583106209090_3616350471 X-MC-Loop-Signature: 1583106209090:3097550926 X-MC-Ingress-Time: 1583106209090 Received: from pdx1-sub0-mail-a50.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a50.g.dreamhost.com (Postfix) with ESMTP id 323C4B1AA2; Sun, 1 Mar 2020 15:43:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=7JQP8uVHiss2vQGYM8tlw0hd88s=; b= sqBYpbKdWeXrwZuWBYPVZJLenDcVXjAbCrFWLbBBf/hbZzdB+AJDZ4gToYzmGMty IjAWcyycYBRwC41B2QfUBU9vARmwuw1HY9Q3cohVd5JO/+ELflF+V5Qw3irpcyWn EaBvjwUSisH6/dpYmd1TMpGlkvM2o/B/A8aUZJD3SQY= Received: from mail.jurta.org (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a50.g.dreamhost.com (Postfix) with ESMTPSA id 69EBBB1A97; Sun, 1 Mar 2020 15:43:24 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a50 From: Juri Linkov Organization: LINKOV.NET References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> <87imjshqkz.fsf@mail.linkov.net> <8336avgjn4.fsf@gnu.org> <87blphrulz.fsf@mail.linkov.net> <83tv38yrzd.fsf@gnu.org> Date: Mon, 02 Mar 2020 01:40:52 +0200 In-Reply-To: <83tv38yrzd.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 01 Mar 2020 18:12:06 +0200") Message-ID: <87y2sjwsmz.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: -100 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedruddtfedgudefucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuggftfghnshhusghstghrihgsvgdpffftgfetoffjqffuvfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufhofhffjgfkfgggtgesthdtredttdertdenucfhrhhomheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqeenucfkphepledurdduvdelrddutdefrddvjeenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhhouggvpehsmhhtphdphhgvlhhopehmrghilhdrjhhurhhtrgdrohhrghdpihhnvghtpeeluddruddvledruddtfedrvdejpdhrvghtuhhrnhdqphgrthhhpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqpdhmrghilhhfrhhomhepjhhurhhisehlihhnkhhovhdrnhgvthdpnhhrtghpthhtohepvghlihiisehgnhhurdhorhhg X-Spam-Score: 0.0 (/) 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.0 (-) >> format-mode-line already exposes it, but fails to properly >> handle its arg FACE. > > So you are saying that we already have the API exposed to Lisp, but it > (format-mode-line) doesn't work well? Exactly. >> Do you see the same button styles with the faces tab-line-tab-inactive and >> tab-line-tab-current as in the case above like they are on the real tab-line? >> These faces are lost when the arg FACE is specified. > > I don't think this is a bug, the code behaves as intended. It's just > that its intent might be not what you expect, and the available > documentation doesn't help to expect what the code does. > > The doc string says, inter alia: > > Optional second arg FACE specifies the face property to put on all > characters for which no face is specified. It says "no face is specified", but actually the face is specified on all characters of tabs, and the implementation doesn't follow the documentation, e.g.: (tab-line-format) => (#(" tab1 x" 1 5 (face tab-line-tab-current))) ==================== The face 'tab-line-tab-current' is on all characters, yet (format-mode-line (tab-line-format) 'tab-line) overwrites the face 'tab-line-tab-current' with the face 'tab-line': (format-mode-line (tab-line-format) 'tab-line) => #(" tab1 x" 1 5 (face tab-line)) ======== > But what it really means is that text produced by the various > %-constructs will have FACE if the %-constructs don't provide a face. > In your case, you supply the function with a fixed string, so > specifying FACE overrides the faces you have there, see > store_mode_line_string (which is called in this case with PROPS set to > nil). Trying to find the minimal test case, it seems working correctly by merging faces, so there is no bug in the simplest case: (format-mode-line (propertize "tab1" 'face 'tab-line-tab-current)) => #("tab1" 0 4 (face tab-line-tab-current)) (format-mode-line (propertize "tab1" 'face 'tab-line-tab-current) 'tab-line) => #("tab1" 0 4 (face (tab-line-tab-current tab-line))) In the above case tab-line-tab-current and tab-line are merged. But the bug creeps in only when there is space between tabs: (format-mode-line (concat " " (propertize "tab1" 'face 'tab-line-tab-current) " x")) #(" tab1 x" 1 5 (face tab-line-tab-current)) (format-mode-line (concat " " (propertize "tab1" 'face 'tab-line-tab-current) " x") 'tab-line) #(" tab1 x" 0 1 (face tab-line) 1 5 (face tab-line) 5 7 (face tab-line)) Here the face 'tab-line' overwrites the face 'tab-line-tab-current'. > At this point let me turn the table and ask why did you need to pass > FACE to format-mode-line in your case? What did you want to achieve? With the arg FACE it should have the same look as on the real tab-line where tabs are placed on the line that already has the face 'tab-line'. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 04 Mar 2020 17:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.15833427503400 (code B ref 39649); Wed, 04 Mar 2020 17:26:01 +0000 Received: (at 39649) by debbugs.gnu.org; 4 Mar 2020 17:25:50 +0000 Received: from localhost ([127.0.0.1]:41792 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j9XmH-0000sm-RP for submit@debbugs.gnu.org; Wed, 04 Mar 2020 12:25:50 -0500 Received: from mail-vs1-f51.google.com ([209.85.217.51]:33501) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j9XmF-0000sW-RX for 39649@debbugs.gnu.org; Wed, 04 Mar 2020 12:25:48 -0500 Received: by mail-vs1-f51.google.com with SMTP id n27so1696115vsa.0 for <39649@debbugs.gnu.org>; Wed, 04 Mar 2020 09:25:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=t75H3D5p7vC22yOgpyO4JRyFrGrGxVLxqDRi6+A4rls=; b=p1SzELoffA3SSj4SXkWn2A7+ZlZQdyYGxtKUKqv3a2GLM2dTIlm+swT3F1PO47V5bZ 4f8T+PTnUB538c0UH3lYdaUktB44/BXUdKA5Ip9Mx5j6EFyhHT64fA4RNvOu7TwwkwTD ez2yL4PuNE+Y5JOW2U9riQQYk9Ij+aOdDXwLePJT/Uw5aok9+ON2jvvH8zwJ+BQg4/jC 6TucG5EHK3G+GwXbRt/vN8CpMkYDyGnHJS3rUHDqqKXZEskxCPyQUeqlGcw5mbDM383Q rgDcpL3OCYRV4qLJEUKdymVtN9jiIgANenouiN6isxqyrGvAwob9LQJS6to3veDlYaoU gVug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=t75H3D5p7vC22yOgpyO4JRyFrGrGxVLxqDRi6+A4rls=; b=eGgZ1bcDk81X852r+xf6YajDUp/hzVpbEuZ1SAkgpw/VJHknPgzBa+2d1bALm1jaVg Q9Q/glSw6uCSbmtu+8suXUpzJsW37W0iTNyFEEFBCdvCm9KVoYG8W+o/mXae9rboM2I4 +czRES2MzNHDKJvmm52bhbGPxJb/Ams9UBTX4LA4Rg1sMMVKDL3J+S/QpUb7Ft2JyqVt 7+5PfB0wAN7f/5Whp5cDgmq509Ed4FlyA0lbCY0PR9Mg7dVcvpPI3ouUMXpS7cWqzJ6f AnhEmGJ79t/imwrjQWfQOxjW3cn0+1a3vGArqMG3pNSE+H24oEa/RcrzggG9fU9EkC3F 0HyQ== X-Gm-Message-State: ANhLgQ1uD3/DmDPXFFlr7iCjlms2yArrCtaUWiGn8UvgT9/YFrAqfo2A 4qEXbAgvNr/77SETKVf79bTYUYIa6EF9/yyEGImQ+w== X-Google-Smtp-Source: ADFU+vt4CdVCDk2V1/5i0RKQ3PmINSAiMVd1CFFRFZa0zP1KwPOAzd+hj1NMuMvnWgwlj2RQ16xJfSZkpbI8op128U4= X-Received: by 2002:a67:c58c:: with SMTP id h12mr2439788vsk.0.1583342741711; Wed, 04 Mar 2020 09:25:41 -0800 (PST) MIME-Version: 1.0 References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> <87lfonzmfr.fsf@mail.linkov.net> <87d09xqd17.fsf@mail.linkov.net> In-Reply-To: <87d09xqd17.fsf@mail.linkov.net> From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Date: Wed, 4 Mar 2020 18:25:07 +0100 Message-ID: Content-Type: multipart/mixed; boundary="000000000000ae1a9a05a00ab56c" X-Spam-Score: 0.0 (/) 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.0 (-) --000000000000ae1a9a05a00ab56c Content-Type: text/plain; charset="UTF-8" I came across something that feels a bit odd in tab-line, maybe you can explain it. I've been playing around with tab-line-format and noticed that what gets displayed in the tab-line actually differs based on whether you are using the `tab-line' face or not. See the attached picture. Both Emacs were launched with -Q. Although the face definition is the same in both situations the result is different. Specially the rendered size of the characters. On Sat, 29 Feb 2020 at 22:51, Juri Linkov wrote: > > > Issue no longer exists when I load your file in the end (ie. after > > enabling the mode and customizing tab-line-tabs-function). > > Thanks for checking, fix pushed. > > If you want, could you try it again after the next Windows pretest will be released > (maybe after a few weeks, this is not strictly necessary, but could confirm > that there are really no more problems). --000000000000ae1a9a05a00ab56c Content-Type: image/png; name="tab-line.png" Content-Disposition: attachment; filename="tab-line.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k7dlan260 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 +94bD375U/HjfWve/jM/+xPaY8Esn1VxrfNhGa71WFbvwVp0sPS2adOmCy+80F7mbyps3Lix/PfG G2+0f68fuaZw0UUXWfXSSy8dGDsWmOrs6z7Fl77TFDOxa7Qs23mltvHBBx8c+CS02FGbN29+ZLyH H374zjvvnG7wij1vluoeeeAKe9x285p/+2/+t+9+97svvPCCJacvfOELn/rUp97xjne85qf+53NW v8WqOx68YvXbfm6Kpzop1ZU/4y0z/JEHACyGgd264pd6G7kuJ0sO5Loedo3kun7kOgCYe9N068pf 69/73t+W/5rbbrv1q1/9qpWeeeaZdevWpf6W/7t/9+8+9/wTT3zmtvLxyU/fao87t17ykz/5T7TH glk+s6D24e3XDHwb9s1vfdMyTHU333zzJZdcYgHO3FAol+0F25btX1suI50t256W9uzfgZljiixV sa/4C8/fP6tX9ylmYtdoOWPt2rVaj1x22WULSXUW3T48yXSDV+x5q96DPe61/9qu3b7QxgLlFVdc YbHprLPO+jf/5t9YafNN59g+q//0Z6Z4qoc/qzZ4+ZNemfmPPABgMUzXrSPX5WfJgVzXw66RXNdv +LNqg5c/6RVyHQAcEdK6ddUvd/Pd736n/Pc73/kbyxiHDx+2Hb71rW898cQT119//fDf8j/+j//R 1RvWW6p77GM37dh142Mfv3nn45t2ffID9njdG3/1f/p//UPttzBlqrMwV76/2vOwMGePX//3vzh1 quu89gW+7FluuPvuuzdt2nT55Zfba/MQtqeluosvvnhg5pg61dmlvfDl7d/83Gm2UFFtKlOnuquu uqp1seV2C8QDn4QWO8pSnT2NZVa+9tprLcNZ2LJlW7B/bXlWqW7XQ9c88sAV56x+y7/75X/xcz/z //vJn/jx+FG9B/vYh68+40/ypbrF+JEHACyS1G4duW6Izmtf4KueJQdyXQ+7RnJdP3IdAMy9od26 1i93+7X+N3/zcvnv37z8bXt5s908DdHrx37sf/rM5x7+8MPXbrn3ktvvvnjLPZdufeDyBx665sHt G05/71v+91/46R/4gR/QcE06fpjOVPfO01e++a1vKh+2XOa5hac605peOWGj9XSWGyzV3XTTTamp 7qKLLhqYOaZLdXZRLxzcapGuenz2nv9y58X/diEXO12q27Zt26233rp+/XptKlx22WX278033zxd 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 hmuvvfbKK6+0xBa79NJLL7vsMq0ULHxcccUVN91007nnnjswWywkS9nVWZIrr7G41mPuPeOHn7r5 p75Z/M//l/sMt5CZGLve++67zxKtLQy89nHscP8e7LZt22y7zdCe9jJk21Ndve9avRNrBp7dniL/ Huwv/+LP2c/dW9/61t///d+3hbe//e3Fe7F637V6J9YMfIanS3UXXXThz/7sP3/f+0699tr1t956 vT0Z5W1Kd9x+26d2PxGnuuE/8gCARbJ43TpynafaVCwhkOsGsusl13nkOgCYe0O7dWWYC49vfqP8 UybVo4h0B7/8pQMHnnvmuWef3v/sF599Zu91V60f+CvedvvsF3b86I/+6Isvfu1jT3zQQlv5765P 2kL4d+fjmz76iQ/Yw8Lcjl03bX/0hgcf2rD1gStuv+uiq69773/6rV/5kR95lcYar0p19u/Eh0W6 hbwHa1dUaq2acssULB/ceeed1113nYUVY3HN/t1YsAVLe7alYls2bdpk/958881r164dmC0WmKXi CyyXd1/0I0uV6t75znda5DrrrLMGXvs4drilOnsmM/x9k1s2rr3x2rOuu+I95eN//ef/c5HZJhv4 DKemOvuRP3To608/vfecc84+7rhfLv+X/n/pl37pz962qgx2G2+47pl9e6f4kQcALJLh3Tpy3XB2 RaXWqim3TMESArluILtecp1HrgOAuTe0W2e/38sAVz6+/rWvfPUrz5f/2uP5g/u/dHD/gef2PbNv z76nn3r6i1+47sqEVLf13ptPPvlPv/GN5x756I0P79wYHo9tfOjR6+3fj+y4btvD19qy/Xvftqvu +/DVW+659Pa7L/7A5nU33LzmtDPf+t/9dwl/jXhIqrNIZ4/y75tMkersckpaL2hTQZsSWT644447 LNVde+219q9lNXP++edbdrnkkksuvvjiiy666MKCbTzvvPPOOeec66+//tbif0hrYLZYYJYy8dXZ 8udv+mc77zxpikueYiZ2jUNo78HskIcffrh457XBttsMq79vYsvlQvk2rKXAcuPAM9pTNO492Orv m9hyuWDKt2Evu+wyW7aFgc9waqqzH3n7Sd//7L6Pf2zXnXfcfsP111191RXXXH3Vhg1Xl6nOfPCW m7+49/OpP/IAgEUyvFtHrhvILqek9YI2FbQpkSUEcl0Pu8YhtPdgdgi5jlwHAEeKod26IsB9yR5f +fLzX/nywfJN1/LfLz//3MEDz1ike/aZveXvd/tFn5TqbvrAZV/84mfuffBKe9x93+WW28roZo/b tlxUPj50+/mbPvT+m245d8P1Z1254cwrrj5jzXmn/OYJv/yDP/h3NFCvzlT35re+qXq88/SVZZ6z h+W56VKdXUtJ65Fx2weyfHDnnXdapDPvf//7b7jhhvvvv//BBx9Uyvjwh221/CPEGzduvOCCCyze WeCzIGjxbmC2WHiqi9nFfuaO/3DDBa+f4qqnS3Xlv6VqY8mXBrL97WnXUxyx7TbDiQaezp4iS3W3 bTo3fg/27/z3/xf7uRti4DOcmurKH/kvPX9gz1Of/+jOHVu3brnt1g/dftvmLXfefvKfrbJ9ymB3 9VWX73nqs0k/8gCARTK8W0euG8KupaT1yLjtA5UBg1w3TnmN9m+p2ljypYFsf3IduQ4AjhRDu3WW 3r70/HPlo3zH9fmDz5b/WqR7bv/TZaSzX+57n/rsU5//9IbLzxv4K952u2bD+c9/ac/mOy74wOZ1 lttu/MC5N9y8xh7X3Xj2hhveV8a4y68+/eLL3n3Bxe84d93b15x3sj1W/dnv/tCrfkijTGKpzuKa T3XlgpWqhSrVWc6b7o6JxVDGC3thNmvXrr3vvvu2bdt20UUXnVe49957Lc/dfvvtmzdvtmx37rnn Wuniiy+2je973/sGZovhr/pD2Jf1uY+fOt3LfOpM7AKra4yXTbwaLw9XHuXZDC032/NsbLnzT5zY bhqllz1L/j3Yf/A//l/t524J/75J9SN/4Lln9u75/Gc+/eSTT3x89xOP737y8V0f3fHmN/9RmerM Jz+x63OfeXL4jzwAYJEM79aR65aWJQRy3TghZo0Jb/FqvDxceZRnMyTXlch1ALBMDOrWfec73zl4 4Fn75X7guX0Hn3umjHG2XP67/9kv2iO8+7r381/c8zmLdF/43KeuuSwh1R14/qmHHrntosveue7C U9euO2XN+08++9w/s8d7z/nTs85ZdcZZf3zamW9512l/dOo7V77tlN9bdbI9fvekt77pl3/lX/7Q q35Qo0zSmeosvcWrZaRb5qnu2muvtVT3wAMPPPTQQ5YnylR311133XHHHZbqLE9Y4LPXeytZqrPt S5Lq7Gu66643n/fuX5/uZX6KVKelQrzaU1oIG8dmONHA09mzZKnuAxvPueGa91bvwS7t3zdp/ciX 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 cteL2y//Xqtbt//kFxXJLO+d/PLhOJWFz82pVD22P6jipOp3tx/3YnTe7x5WofK93fWpbYeX7oi6 fn2z6lNHoOjxjv2qvvLKwYe2r3rdHdr+uu2bH2rMqujWHd71jnqHXclJaUy3bnw2s5Pa9lVX24LO u+od+w+qWNq//nXlseHw9VcfblaHsG+M/uzU/3LmqvWLbyQxnO3YcpKFpWM3bKq/PKU9a8L28Gjn nCpf6Vhb3rIzPrxomR3YOKb6yis7V28oR7bHSat3Hoir5eDHrl2z45UDO2ycYp96AuNnFZWix5Yh KTB+HsPTF9qiI2UY2Lt15YoVo40rVq7b2vgijY63Y/duXVfuF32lejPSxJFXbg27VDs066Vx3br6 uGLovR27dNB07Uzrxp2354rqUqT1PRkNHOZlT8AocZVXUpW7LxfAUUQxy7GSIlqX3/u939PSGKnd Ou6YWEy8u9uiFNL/Hce9GAvDu7vLwdTfk8vwmxnAAIpZjpUU0KaS1q0rXmRbvzJDijtu1O3aFxpk dxxX57pQPbnuox1+8OU7jnup3TyZ8rN134tbbPtPPnztyd/VSvDd7eHN4OrU39t/+YvVOINm1aMv fT0bt7rC+6Nx3CoaZ3dUzbLQ2kt+a7M/fXVXw4RfV53X9rn2hHfUl2+HrK+7iod32c5R/3GY0Mno eTHt+s6pjasu8AVrbLdODmzc0PGuZAg5G04ateFsn9ceu+VAUQmsamPG1RN3VtUw4Oo99WpoybV7 ajtXrw3jry6POrTpxPb0umdlpk5fxdcmTjD2dEeRZm/c6ur8OtrGFWZleUzxVWkGoo5NQe/IYd2G HTWtir6dH6Rz5LAxanYVbcSeb74mnbdq8BU9xWHnDYqCltvC0CvqpmSYl62P1sI3edWkC2vdJwBw tFDMcqykiOb83ojWu6R164b8Mkru1h1xd0wsHrp1beWLcF+26/+e7K7a1uXW4KBbNyv2LTMg4xXf AsspVk39PbkMv5kBDKCY5VhJAW0qad268r9GG78Lv7f9x1p9ru/tPq66Z+J72497qWoDyYMvtVPf THLdvpfjj871Zsths+oxPH219gzdumYjzHaIGmdDTNmtO+F1u+s24rO7V1Wrz25f5Saw6x0zDngd 3zmRcdVFfsEa261rNPiaDbVQjRtwcfXQmhOjvl5px5bWKUK3rrMZNzL7bl14HqOk01xr63rO7evT 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 CgCAt+svf/l/77GTUTrUKP0AAAAASUVORK5CYII= --000000000000ae1a9a05a00ab56c-- From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 05 Mar 2020 00:23:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: =?UTF-8?Q?Jo=C3=A3o?= Guerra Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158336772521239 (code B ref 39649); Thu, 05 Mar 2020 00:23:02 +0000 Received: (at 39649) by debbugs.gnu.org; 5 Mar 2020 00:22:05 +0000 Received: from localhost ([127.0.0.1]:42013 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j9eH7-0005WS-4k for submit@debbugs.gnu.org; Wed, 04 Mar 2020 19:22:05 -0500 Received: from chocolate.birch.relay.mailchannels.net ([23.83.209.35]:24487) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j9eH5-0005VX-AH for 39649@debbugs.gnu.org; Wed, 04 Mar 2020 19:22:03 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 6573434092A; Thu, 5 Mar 2020 00:22:02 +0000 (UTC) Received: from pdx1-sub0-mail-a3.g.dreamhost.com (100-96-42-19.trex.outbound.svc.cluster.local [100.96.42.19]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id F3D6C340B73; Thu, 5 Mar 2020 00:22:01 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a3.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Thu, 05 Mar 2020 00:22:02 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Minister-Shelf: 252ae54549cf0787_1583367722221_917824014 X-MC-Loop-Signature: 1583367722221:666499716 X-MC-Ingress-Time: 1583367722221 Received: from pdx1-sub0-mail-a3.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a3.g.dreamhost.com (Postfix) with ESMTP id 295F17F78E; Wed, 4 Mar 2020 16:21:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=mG112mTh45O50cfhEnmzc11Zitc=; b= YuQqK51yIlmbZkbIuez4Q3YTNColy1rUqswjUCiJNeHdrFYwTj2XxE/04D0F/C8f 2j6Zn0xjKiFn0DyQBs2oljA5Rswg+LnUVe44mM7K50jr0Fap+wb48ZzoHEQDSmxc FLiFlaUFZ1yU3GFxZpuunNVC3sdrU5ymnYBRFAZk9PM= Received: from mail.jurta.org (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a3.g.dreamhost.com (Postfix) with ESMTPSA id 978FF7F795; Wed, 4 Mar 2020 16:21:56 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a3 From: Juri Linkov Organization: LINKOV.NET References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> <87lfonzmfr.fsf@mail.linkov.net> <87d09xqd17.fsf@mail.linkov.net> Date: Thu, 05 Mar 2020 01:52:14 +0200 In-Reply-To: ("=?UTF-8?Q?Jo=C3=A3o?= Guerra"'s message of "Wed, 4 Mar 2020 18:25:07 +0100") Message-ID: <87d09rr841.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: 0 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedruddtledgvddtucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuggftfghnshhusghstghrihgsvgdpffftgfetoffjqffuvfenuceurghilhhouhhtmecufedttdenucenucfjughrpefhvffuohhfffgjkfgfgggtsehttdertddtredtnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecukfhppeeluddruddvledruddtfedrvdejnecuvehluhhsthgvrhfuihiivgepfeenucfrrghrrghmpehmohguvgepshhmthhppdhhvghlohepmhgrihhlrdhjuhhrthgrrdhorhhgpdhinhgvthepledurdduvdelrddutdefrddvjedprhgvthhurhhnqdhprghthheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqedpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnrhgtphhtthhopehjohgtrgdrsghtsehgmhgrihhlrdgtohhm X-Spam-Score: 0.0 (/) 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.0 (-) > I came across something that feels a bit odd in tab-line, maybe you > can explain it. > > I've been playing around with tab-line-format and noticed that what > gets displayed in the tab-line actually differs based on whether you > are using the `tab-line' face or not. > > See the attached picture. Both Emacs were launched with -Q. Although > the face definition is the same in both situations the result is > different. Specially the rendered size of the characters. This is how mode-line/header-line/tab-line work - they always use hard-coded faces with names 'mode-line', 'header-line', 'tab-line', so you can override face definitions only by customizing these faces. From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 05 Mar 2020 08:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.15833954966133 (code B ref 39649); Thu, 05 Mar 2020 08:05:02 +0000 Received: (at 39649) by debbugs.gnu.org; 5 Mar 2020 08:04:56 +0000 Received: from localhost ([127.0.0.1]:42130 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j9lV2-0001ar-6B for submit@debbugs.gnu.org; Thu, 05 Mar 2020 03:04:56 -0500 Received: from mail-ua1-f45.google.com ([209.85.222.45]:42893) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1j9lV0-0001ae-MR for 39649@debbugs.gnu.org; Thu, 05 Mar 2020 03:04:55 -0500 Received: by mail-ua1-f45.google.com with SMTP id p2so1739296uao.9 for <39649@debbugs.gnu.org>; Thu, 05 Mar 2020 00:04:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=U440IvV5YRABSMfDg1lTX7e30y8uWPlXuyvgtzp/Wuo=; b=IJV5bh5Lsp5U6gHwcg6iqpb5F+uyKiQQV+2Lc80DmgTibA8rFmCZWss2Juyc0NwplT wNuhe7S2G4N59NDeuuXlmnmxv6Uo0FV+Oiznr4r7u2+UADxUCQUj7mYovzIRJiNz4U1H S6bIInedyDwNG6yoNM2HuHH5wpRhVdvbP8hOW2uU9Vj3jxbwC5JtmDcFxQ8J0LSF9j0H oXbA+8oYV63leMk1F23F7sgXrLGE1DYG66On4AVwNm/JRi3kHouo0MUcf3CnDSuwW88C 9VkAYbzBTumG1/tBrN1xMQxOtiXIKsWg81WMbLnEWXG03ddbAzh3Sb+ahIZt2cu2/mFL MSjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=U440IvV5YRABSMfDg1lTX7e30y8uWPlXuyvgtzp/Wuo=; b=mS8a4pmJzpFUKvT1ZarKdGr+O6489eVQJlewRn/j3LsL3LrM4D7gGk41yb9N+9vDJl U1833WPwcrUHMasnFZWJq5jWzeyUjIVSgEg/joyhrk3jvpvPaemrJFR7sEWb2gpaDYza e63dZYlVKKOkJ7zHgjvcRMhfC/pITdqX2W/tss77JwcpWXY8svKRdorAyLsVacXGSTp0 etQkANI0CUl9MjZnooucbCEC/+weaEcw9hegQItiUJAF3h+ddxaJeQr8s1jmqgNwYkcU s6izs7oVqCLFh97HddHG/4lo+EngFabCIGPEnQRXurD5NndKxjWUSgXjBGI7GJX35Udl uC4g== X-Gm-Message-State: ANhLgQ1nFvzG8/QI+JfoSg1xZyEJbWlfpyZ3/l5wDBO+3kiK5VCsiRsy CaGYMoMi63aNVkRFIwJroreD3Jx9RJKvt61QmKPZtw== X-Google-Smtp-Source: ADFU+vsomBIbN+0f2BUXC96G1Q5OozNjSe8vJ93/V7ytFU/p0ceWAVHnRKItf1oj3StHjQKvYm4DT1kPLQwUF8d8c3Q= X-Received: by 2002:ab0:2a82:: with SMTP id h2mr1761084uar.99.1583395489114; Thu, 05 Mar 2020 00:04:49 -0800 (PST) MIME-Version: 1.0 References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> <87lfonzmfr.fsf@mail.linkov.net> <87d09xqd17.fsf@mail.linkov.net> <87d09rr841.fsf@mail.linkov.net> In-Reply-To: <87d09rr841.fsf@mail.linkov.net> From: =?UTF-8?Q?Jo=C3=A3o?= Guerra Date: Thu, 5 Mar 2020 09:04:37 +0100 Message-ID: Content-Type: multipart/alternative; boundary="000000000000aaecca05a016fdfd" X-Spam-Score: -1.5 (-) 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: -2.5 (--) --000000000000aaecca05a016fdfd Content-Type: text/plain; charset="UTF-8" Ok, but how does that impact the characters sizes being different? On Thu, 5 Mar 2020, 01:22 Juri Linkov, wrote: > > I came across something that feels a bit odd in tab-line, maybe you > > can explain it. > > > > I've been playing around with tab-line-format and noticed that what > > gets displayed in the tab-line actually differs based on whether you > > are using the `tab-line' face or not. > > > > See the attached picture. Both Emacs were launched with -Q. Although > > the face definition is the same in both situations the result is > > different. Specially the rendered size of the characters. > > This is how mode-line/header-line/tab-line work - they always use > hard-coded faces with names 'mode-line', 'header-line', 'tab-line', > so you can override face definitions only by customizing these faces. > --000000000000aaecca05a016fdfd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Ok, but how does that impact the characters sizes be= ing different?

On Thu, 5 Mar 2020, 01:22 Juri Linkov, <juri@linkov.net>= wrote:
> I came across somethin= g that feels a bit odd in tab-line, maybe you
> can explain it.
>
> I've been playing around with tab-line-format and noticed that wha= t
> gets displayed in the tab-line actually differs based on whether you > are using the `tab-line' face or not.
>
> See the attached picture. Both Emacs were launched with -Q. Although > the face definition is the same in both situations the result is
> different. Specially the rendered size of the characters.

This is how mode-line/header-line/tab-line work - they always use
hard-coded faces with names 'mode-line', 'header-line', = 9;tab-line',
so you can override face definitions only by customizing these faces.
--000000000000aaecca05a016fdfd-- From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Juri Linkov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 06 Mar 2020 00:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: =?UTF-8?Q?Jo=C3=A3o?= Guerra Cc: 39649@debbugs.gnu.org Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.158345309426716 (code B ref 39649); Fri, 06 Mar 2020 00:05:02 +0000 Received: (at 39649) by debbugs.gnu.org; 6 Mar 2020 00:04:54 +0000 Received: from localhost ([127.0.0.1]:43880 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jA0U2-0006wq-6F for submit@debbugs.gnu.org; Thu, 05 Mar 2020 19:04:54 -0500 Received: from aye.elm.relay.mailchannels.net ([23.83.212.6]:60786) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jA0U1-0006wi-4E for 39649@debbugs.gnu.org; Thu, 05 Mar 2020 19:04:53 -0500 X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 4B1E7209A8; Fri, 6 Mar 2020 00:04:52 +0000 (UTC) Received: from pdx1-sub0-mail-a97.g.dreamhost.com (100-96-13-25.trex.outbound.svc.cluster.local [100.96.13.25]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id D67E220968; Fri, 6 Mar 2020 00:04:51 +0000 (UTC) X-Sender-Id: dreamhost|x-authsender|jurta@jurta.org Received: from pdx1-sub0-mail-a97.g.dreamhost.com ([TEMPUNAVAIL]. [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.18.5); Fri, 06 Mar 2020 00:04:52 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jurta@jurta.org X-MailChannels-Auth-Id: dreamhost X-Bubble-Thoughtful: 724483b720a15a82_1583453092093_3378726448 X-MC-Loop-Signature: 1583453092093:4158451976 X-MC-Ingress-Time: 1583453092093 Received: from pdx1-sub0-mail-a97.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a97.g.dreamhost.com (Postfix) with ESMTP id 919D67FFE4; Thu, 5 Mar 2020 16:04:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=linkov.net; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=linkov.net; bh=y2CYUBh4QFLYBBh24ZAnwAvxYZA=; b= jFhU7WUE9EtGDxhV8JZr7KpGRGZett6qYZGOprNxVYhp2h0BwH+6mrdirH5G8Edj vd8xuklY+mKFTZCEkut74I69olq7TwE15/QpIvRFtIR3p3SXFQnqFvrXkbkyXRPp KpJ9YoSzOIAoNS4wivA7b8J2GnKoT2uqgpasElRZUhw= Received: from mail.jurta.org (m91-129-103-27.cust.tele2.ee [91.129.103.27]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: jurta@jurta.org) by pdx1-sub0-mail-a97.g.dreamhost.com (Postfix) with ESMTPSA id D664E7FFE6; Thu, 5 Mar 2020 16:04:47 -0800 (PST) X-DH-BACKEND: pdx1-sub0-mail-a97 From: Juri Linkov Organization: LINKOV.NET References: <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> <87lfonzmfr.fsf@mail.linkov.net> <87d09xqd17.fsf@mail.linkov.net> <87d09rr841.fsf@mail.linkov.net> Date: Fri, 06 Mar 2020 01:53:22 +0200 In-Reply-To: ("=?UTF-8?Q?Jo=C3=A3o?= Guerra"'s message of "Thu, 5 Mar 2020 09:04:37 +0100") Message-ID: <87blpawep1.fsf@mail.linkov.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain X-VR-OUT-STATUS: OK X-VR-OUT-SCORE: 0 X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedugedrudduuddgudejucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuggftfghnshhusghstghrihgsvgdpffftgfetoffjqffuvfenuceurghilhhouhhtmecufedttdenucenucfjughrpefhvffuohhfffgjkfgfgggtsehttdertddtredtnecuhfhrohhmpefluhhrihcunfhinhhkohhvuceojhhurhhisehlihhnkhhovhdrnhgvtheqnecukfhppeeluddruddvledruddtfedrvdejnecuvehluhhsthgvrhfuihiivgepvdenucfrrghrrghmpehmohguvgepshhmthhppdhhvghlohepmhgrihhlrdhjuhhrthgrrdhorhhgpdhinhgvthepledurdduvdelrddutdefrddvjedprhgvthhurhhnqdhprghthheplfhurhhiucfnihhnkhhovhcuoehjuhhriheslhhinhhkohhvrdhnvghtqedpmhgrihhlfhhrohhmpehjuhhriheslhhinhhkohhvrdhnvghtpdhnrhgtphhtthhopehjohgtrgdrsghtsehgmhgrihhlrdgtohhm X-Spam-Score: 0.0 (/) 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.0 (-) > Ok, but how does that impact the characters sizes being different? It's hard to see the differences in characters sizes. Do you see the same problem when using colors? For example: (defface tab-line '((t :background "red")) "") (defface my-tab-line '((t :background "blue")) "") (setq tab-line-format (propertize "abcdef" 'face 'tab-line)) (setq tab-line-format (propertize "abcdef" 'face 'my-tab-line)) From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 20 Sep 2020 08:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: Eli Zaretskii , 39649@debbugs.gnu.org, joca.bt@gmail.com Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.16005912274639 (code B ref 39649); Sun, 20 Sep 2020 08:41:01 +0000 Received: (at 39649) by debbugs.gnu.org; 20 Sep 2020 08:40:27 +0000 Received: from localhost ([127.0.0.1]:48650 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJutX-0001Cl-9W for submit@debbugs.gnu.org; Sun, 20 Sep 2020 04:40:27 -0400 Received: from quimby.gnus.org ([95.216.78.240]:57478) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJutV-0001CY-E1 for 39649@debbugs.gnu.org; Sun, 20 Sep 2020 04:40:26 -0400 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=c/N6I9K3B2RlBhyslyBAhdUdMJHg9CcvzLfrsSLdx+0=; b=XABpRt7bzPakppHjlQsk3vYCDD MCrQhoWSHDIfqMtsAm9pGAVAtpdVo7HJ64vRQEVMBiL+mvCMsu2xp0ssQQjxnKD77GyXONElg2tky WKYAttwPpLlt85e2bokWfObhI50mB6L96aJXY5Yl4GevtWyE5KDUDEcjmbMYxllZhcR0=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kJutH-0005AN-62; Sun, 20 Sep 2020 10:40:19 +0200 From: Lars Ingebrigtsen References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> <87imjshqkz.fsf@mail.linkov.net> <8336avgjn4.fsf@gnu.org> <87blphrulz.fsf@mail.linkov.net> <83tv38yrzd.fsf@gnu.org> <87y2sjwsmz.fsf@mail.linkov.net> X-Now-Playing: Andrew Poppy's _On Zang Tuum Tumb (1): The Beating Of Wings_: "The Impossible Net" Date: Sun, 20 Sep 2020 10:40:09 +0200 In-Reply-To: <87y2sjwsmz.fsf@mail.linkov.net> (Juri Linkov's message of "Mon, 02 Mar 2020 01:40:52 +0200") Message-ID: <87k0wou9hy.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.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: Juri Linkov writes: > But the bug creeps in only when there is space between tabs: > > (format-mode-line (concat " " (propertize "tab1" 'face > 'tab-line-tab-current) " x")) > #(" tab1 x" 1 5 (face tab-line-tab-current)) [...] 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: 0.0 (/) 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.0 (-) Juri Linkov writes: > But the bug creeps in only when there is space between tabs: > > (format-mode-line (concat " " (propertize "tab1" 'face > 'tab-line-tab-current) " x")) > #(" tab1 x" 1 5 (face tab-line-tab-current)) > > (format-mode-line (concat " " (propertize "tab1" 'face > 'tab-line-tab-current) " x") 'tab-line) > #(" tab1 x" 0 1 (face tab-line) 1 5 (face tab-line) 5 7 (face tab-line)) > > Here the face 'tab-line' overwrites the face 'tab-line-tab-current'. The mode-line formatting machinery doesn't support having a mixture of text properties over a single string -- for efficiency, it assumes that the same properties are used over the entire string. If you want something else, you unfortunately have to use :propertize or a list of strings. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 20 Sep 2020 08:43:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org, =?UTF-8?Q?Jo=C3=A3o?= Guerra Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.16005913274813 (code B ref 39649); Sun, 20 Sep 2020 08:43:02 +0000 Received: (at 39649) by debbugs.gnu.org; 20 Sep 2020 08:42:07 +0000 Received: from localhost ([127.0.0.1]:48654 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJuv9-0001FZ-Kv for submit@debbugs.gnu.org; Sun, 20 Sep 2020 04:42:07 -0400 Received: from quimby.gnus.org ([95.216.78.240]:57518) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kJuv7-0001F3-OJ for 39649@debbugs.gnu.org; Sun, 20 Sep 2020 04:42:06 -0400 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=PcXgLCwLfDZayY7sulvZ81QsFzugj2GxvQAph4Dtmng=; b=F9QmHd3MyK6hkrdxehMX98AfB1 DemnoxEmN/2t61IQjwz0QNHSRC9XBrc2ur/Ae3ftxYK+wLcPjeZONy4+91xwaj/BrP3Z0XR+XjH1m X+F0rAjbOTMbe+6LqRTK4HiKWkxelgaZkrVrnt8DII/YOL0gbFAM6uWGYbSTfwet3DrQ=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kJuuz-0005BF-5H; Sun, 20 Sep 2020 10:41:59 +0200 From: Lars Ingebrigtsen References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> <87lfonzmfr.fsf@mail.linkov.net> <87d09xqd17.fsf@mail.linkov.net> X-Now-Playing: Andrew Poppy's _On Zang Tuum Tumb (1): The Beating Of Wings_: "The Impossible Net" Date: Sun, 20 Sep 2020 10:41:55 +0200 In-Reply-To: <87d09xqd17.fsf@mail.linkov.net> (Juri Linkov's message of "Sat, 29 Feb 2020 23:49:56 +0200") Message-ID: <87ft7cu9f0.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.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: Juri Linkov writes: >> Issue no longer exists when I load your file in the end (ie. after >> enabling the mode and customizing tab-line-tabs-function). > > Thanks for checking, fix pushed. 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: 0.0 (/) 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.0 (-) Juri Linkov writes: >> Issue no longer exists when I load your file in the end (ie. after >> enabling the mode and customizing tab-line-tabs-function). > > Thanks for checking, fix pushed. This bug report dealt with several somewhat related issues, but skimming it, it seems like the reported bug was fixed. Is there anything more to be done here, or should this bug report be closed? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From unknown Wed Aug 20 04:11:18 2025 X-Loop: help-debbugs@gnu.org Subject: bug#39649: 27.0.60; tab-line doesn't scroll Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 14 Oct 2020 06:18:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39649 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Juri Linkov Cc: 39649@debbugs.gnu.org, =?UTF-8?Q?Jo=C3=A3o?= Guerra Received: via spool by 39649-submit@debbugs.gnu.org id=B39649.16026562351138 (code B ref 39649); Wed, 14 Oct 2020 06:18:02 +0000 Received: (at 39649) by debbugs.gnu.org; 14 Oct 2020 06:17:15 +0000 Received: from localhost ([127.0.0.1]:49874 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kSa67-0000I8-Cc for submit@debbugs.gnu.org; Wed, 14 Oct 2020 02:17:15 -0400 Received: from quimby.gnus.org ([95.216.78.240]:55458) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kSa65-0000Cx-P9 for 39649@debbugs.gnu.org; Wed, 14 Oct 2020 02:17:14 -0400 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=qyAQy8Bw4VmBLOcbzaUPJmGhnLP9bZEMpjzxheP5a3o=; b=aSBmBwZF4ZSR4JT9rvQ/Or1pIi kmIEjaryfILhKlN1HRcRrN+Ma6LxVLJ515zv/tvFB/2YNaGBy4JUmKcn8oPMy+ndTzXxSrf2qfr5o 1n4/Lm1HmqnqxaylhCgLU1W6RoMizQqWrsnnmmRT6LlDtILqGHHB8AJOEHbOkILW94O8=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kSa5r-0007vW-Jf; Wed, 14 Oct 2020 08:17:07 +0200 From: Lars Ingebrigtsen References: <87lfp0lsun.fsf@mail.linkov.net> <87imk3a5sa.fsf@mail.linkov.net> <87h7zn4d99.fsf@mail.linkov.net> <87r1yoopgp.fsf@mail.linkov.net> <87d0a8bu5c.fsf@gmail.com> <87y2sup4c2.fsf@mail.linkov.net> <87h7zg7vjx.fsf@mail.linkov.net> <87pne2ilur.fsf@mail.linkov.net> <871rqhj5x2.fsf@mail.linkov.net> <87lfonzmfr.fsf@mail.linkov.net> <87d09xqd17.fsf@mail.linkov.net> <87ft7cu9f0.fsf@gnus.org> X-Now-Playing: Hulk's _Silver Thread of Ghosts_: "Star Bed" Date: Wed, 14 Oct 2020 08:16:58 +0200 In-Reply-To: <87ft7cu9f0.fsf@gnus.org> (Lars Ingebrigtsen's message of "Sun, 20 Sep 2020 10:41:55 +0200") Message-ID: <874kmx2uxx.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.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: Lars Ingebrigtsen writes: > Juri Linkov writes: > >>> Issue no longer exists when I load your file in the end (ie. after >>> enabling the mode and customizing tab-line-tabs-function). >> >> Thanks for checkin [...] 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: 0.0 (/) 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.0 (-) Lars Ingebrigtsen writes: > Juri Linkov writes: > >>> Issue no longer exists when I load your file in the end (ie. after >>> enabling the mode and customizing tab-line-tabs-function). >> >> Thanks for checking, fix pushed. > > This bug report dealt with several somewhat related issues, but skimming > it, it seems like the reported bug was fixed. Is there anything more to > be done here, or should this bug report be closed? No response in three weeks, so I'm closing this bug report. If there's still any issues to be worked out here, perhaps opening a new bug report would be best. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no From debbugs-submit-bounces@debbugs.gnu.org Wed Oct 14 02:17:21 2020 Received: (at control) by debbugs.gnu.org; 14 Oct 2020 06:17:22 +0000 Received: from localhost ([127.0.0.1]:49877 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kSa6D-0000NS-KE for submit@debbugs.gnu.org; Wed, 14 Oct 2020 02:17:21 -0400 Received: from quimby.gnus.org ([95.216.78.240]:55472) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kSa6B-0000HR-Rr for control@debbugs.gnu.org; Wed, 14 Oct 2020 02:17:20 -0400 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=mi2HwB3L4HSBDGuiyr3ldqHwLqGyVQWgyecVbTjiGNU=; b=C4w62dgsNqPGSc7usd82P290vs A9ssuS5zVZm7I312a7Q/hN09lMuZaPj92QnVnJoDfB5ScuaAtpsZQjPKBkxp4Wsa8Zf4V9pQfyY7N +4T1QGaiCOd1M48f38KFDBh5R42IrbrdwCdBgSAyl0AXbsFxCnGg02m4/5gVK1+VZLtE=; Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kSa63-0007vl-MG for control@debbugs.gnu.org; Wed, 14 Oct 2020 08:17:14 +0200 Date: Wed, 14 Oct 2020 08:17:10 +0200 Message-Id: <87362h2uxl.fsf@gnus.org> To: control@debbugs.gnu.org From: Lars Ingebrigtsen Subject: control message for bug #39649 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 39649 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: 0.0 (/) 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: -1.0 (-) close 39649 quit