GNU bug report logs - #39649
27.0.60; tab-line doesn't scroll

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: JoĆ£o Guerra <joca.bt@HIDDEN>; dated Mon, 17 Feb 2020 18:53:01 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 5 Mar 2020 00:22:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 04 19:22:05 2020
Received: from localhost ([127.0.0.1]:42013 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j9eH7-0005WS-4k
	for submit <at> 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 <juri@HIDDEN>) id 1j9eH5-0005VX-AH
 for 39649 <at> debbugs.gnu.org; Wed, 04 Mar 2020 19:22:03 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: =?iso-8859-1?Q?Jo=E3o?= Guerra <joca.bt@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
 <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
 <871rqhj5x2.fsf@HIDDEN>
 <CAGiBfP1R6Lsee1C0Cn4zcXN9b96yLQ7=9hLhr8qCDnCrGK5y7g@HIDDEN>
 <87lfonzmfr.fsf@HIDDEN>
 <CAGiBfP1abgQfqd7NEfxQmRUWDHn83xNT=bn8HzQVXvB25+-C=w@HIDDEN>
 <87d09xqd17.fsf@HIDDEN>
 <CAGiBfP2d4K=NMp68V0c+ydTPxGFMrngbFfrAtv=3YSM56sheqQ@HIDDEN>
Date: Thu, 05 Mar 2020 01:52:14 +0200
In-Reply-To: <CAGiBfP2d4K=NMp68V0c+ydTPxGFMrngbFfrAtv=3YSM56sheqQ@HIDDEN>
 (=?iso-8859-1?Q?=22Jo=E3o?= Guerra"'s message of "Wed, 4 Mar 2020 18:25:07
 +0100")
Message-ID: <87d09rr841.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 4 Mar 2020 17:25:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 04 12:25:50 2020
Received: from localhost ([127.0.0.1]:41792 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j9XmH-0000sm-RP
	for submit <at> 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 <joca.bt@HIDDEN>) id 1j9XmF-0000sW-RX
 for 39649 <at> 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 <at> 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: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
 <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
 <871rqhj5x2.fsf@HIDDEN>
 <CAGiBfP1R6Lsee1C0Cn4zcXN9b96yLQ7=9hLhr8qCDnCrGK5y7g@HIDDEN>
 <87lfonzmfr.fsf@HIDDEN>
 <CAGiBfP1abgQfqd7NEfxQmRUWDHn83xNT=bn8HzQVXvB25+-C=w@HIDDEN>
 <87d09xqd17.fsf@HIDDEN>
In-Reply-To: <87d09xqd17.fsf@HIDDEN>
From: =?UTF-8?B?Sm/Do28gR3VlcnJh?= <joca.bt@HIDDEN>
Date: Wed, 4 Mar 2020 18:25:07 +0100
Message-ID: <CAGiBfP2d4K=NMp68V0c+ydTPxGFMrngbFfrAtv=3YSM56sheqQ@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
To: Juri Linkov <juri@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000ae1a9a05a00ab56c"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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 <juri@HIDDEN> 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: <f_k7dlan260>
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--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 1 Mar 2020 23:43:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 01 18:43:33 2020
Received: from localhost ([127.0.0.1]:37084 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j8YFA-0003d7-Nf
	for submit <at> 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 <juri@HIDDEN>) id 1j8YF8-0003cq-Hu
 for 39649 <at> debbugs.gnu.org; Sun, 01 Mar 2020 18:43:31 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
 <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
 <871rqhj5x2.fsf@HIDDEN> <87imjshqkz.fsf@HIDDEN>
 <8336avgjn4.fsf@HIDDEN> <87blphrulz.fsf@HIDDEN>
 <83tv38yrzd.fsf@HIDDEN>
Date: Mon, 02 Mar 2020 01:40:52 +0200
In-Reply-To: <83tv38yrzd.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 01 Mar
 2020 18:12:06 +0200")
Message-ID: <87y2sjwsmz.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org, joca.bt@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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'.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 1 Mar 2020 16:12:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 01 11:12:23 2020
Received: from localhost ([127.0.0.1]:36874 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j8RCZ-0006cU-KC
	for submit <at> 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 <eliz@HIDDEN>) id 1j8RCW-0006c9-OY
 for 39649 <at> 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 <eliz@HIDDEN>)
 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 <eliz@HIDDEN>)
 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@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <87blphrulz.fsf@HIDDEN> (message from Juri Linkov on
 Sat, 29 Feb 2020 23:44:56 +0200)
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
 <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
 <871rqhj5x2.fsf@HIDDEN> <87imjshqkz.fsf@HIDDEN>
 <8336avgjn4.fsf@HIDDEN> <87blphrulz.fsf@HIDDEN>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org, joca.bt@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> From: Juri Linkov <juri@HIDDEN>
> Cc: joca.bt@HIDDEN,  39649 <at> 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?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 29 Feb 2020 21:51:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 29 16:51:47 2020
Received: from localhost ([127.0.0.1]:35515 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j8A1T-0000Ik-BP
	for submit <at> 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 <juri@HIDDEN>) id 1j8A1R-0000Ib-Dv
 for 39649 <at> debbugs.gnu.org; Sat, 29 Feb 2020 16:51:46 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: =?iso-8859-1?Q?Jo=E3o?= Guerra <joca.bt@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
 <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
 <871rqhj5x2.fsf@HIDDEN>
 <CAGiBfP1R6Lsee1C0Cn4zcXN9b96yLQ7=9hLhr8qCDnCrGK5y7g@HIDDEN>
 <87lfonzmfr.fsf@HIDDEN>
 <CAGiBfP1abgQfqd7NEfxQmRUWDHn83xNT=bn8HzQVXvB25+-C=w@HIDDEN>
Date: Sat, 29 Feb 2020 23:49:56 +0200
Message-ID: <87d09xqd17.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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).




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 29 Feb 2020 21:51:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 29 16:51:39 2020
Received: from localhost ([127.0.0.1]:35512 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j8A1L-0000II-1C
	for submit <at> 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 <juri@HIDDEN>) id 1j8A1G-0000I0-TR
 for 39649 <at> debbugs.gnu.org; Sat, 29 Feb 2020 16:51:35 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
 <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
 <871rqhj5x2.fsf@HIDDEN> <87imjshqkz.fsf@HIDDEN>
 <8336avgjn4.fsf@HIDDEN>
Date: Sat, 29 Feb 2020 23:44:56 +0200
In-Reply-To: <8336avgjn4.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 28 Feb
 2020 11:12:47 +0200")
Message-ID: <87blphrulz.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org, joca.bt@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 28 Feb 2020 18:31:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 28 13:31:41 2020
Received: from localhost ([127.0.0.1]:33768 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j7kQH-0005Or-1V
	for submit <at> 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 <joca.bt@HIDDEN>) id 1j7kQF-0005OU-8o
 for 39649 <at> 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 <at> 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: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
 <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
 <871rqhj5x2.fsf@HIDDEN>
 <CAGiBfP1R6Lsee1C0Cn4zcXN9b96yLQ7=9hLhr8qCDnCrGK5y7g@HIDDEN>
 <87lfonzmfr.fsf@HIDDEN>
In-Reply-To: <87lfonzmfr.fsf@HIDDEN>
From: =?UTF-8?B?Sm/Do28gR3VlcnJh?= <joca.bt@HIDDEN>
Date: Fri, 28 Feb 2020 19:30:58 +0100
Message-ID: <CAGiBfP1abgQfqd7NEfxQmRUWDHn83xNT=bn8HzQVXvB25+-C=w@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
To: Juri Linkov <juri@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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 <juri@HIDDEN> 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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 28 Feb 2020 13:17:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 28 08:17:15 2020
Received: from localhost ([127.0.0.1]:60770 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j7fVz-0003jK-NH
	for submit <at> 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 <eliz@HIDDEN>) id 1j7fVx-0003j2-KA
 for 39649 <at> 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 <eliz@HIDDEN>)
 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 <eliz@HIDDEN>)
 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@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-reply-to: <87pne2ilur.fsf@HIDDEN> (message from Juri Linkov on
 Tue, 25 Feb 2020 23:20:10 +0200)
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org, joca.bt@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

> From: Juri Linkov <juri@HIDDEN>
> Date: Tue, 25 Feb 2020 23:20:10 +0200
> Cc: 39649 <at> 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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 28 Feb 2020 09:13:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 28 04:13:11 2020
Received: from localhost ([127.0.0.1]:60661 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j7bhn-0000yU-1T
	for submit <at> 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 <eliz@HIDDEN>) id 1j7bhk-0000yC-R4
 for 39649 <at> 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 <eliz@HIDDEN>)
 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 <eliz@HIDDEN>)
 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@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-reply-to: <87imjshqkz.fsf@HIDDEN> (message from Juri Linkov on
 Thu, 27 Feb 2020 01:33:00 +0200)
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
 <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
 <871rqhj5x2.fsf@HIDDEN> <87imjshqkz.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org, joca.bt@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> From: Juri Linkov <juri@HIDDEN>
> Cc: Joćo Guerra <joca.bt@HIDDEN>,
>   39649 <at> 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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 27 Feb 2020 22:39:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 27 17:39:05 2020
Received: from localhost ([127.0.0.1]:60420 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j7Ro8-0005BZ-QN
	for submit <at> 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 <juri@HIDDEN>) id 1j7Ro5-0005B8-L0
 for 39649 <at> debbugs.gnu.org; Thu, 27 Feb 2020 17:39:02 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: =?iso-8859-1?Q?Jo=E3o?= Guerra <joca.bt@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
 <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
 <871rqhj5x2.fsf@HIDDEN>
 <CAGiBfP1R6Lsee1C0Cn4zcXN9b96yLQ7=9hLhr8qCDnCrGK5y7g@HIDDEN>
Date: Fri, 28 Feb 2020 00:37:28 +0200
In-Reply-To: <CAGiBfP1R6Lsee1C0Cn4zcXN9b96yLQ7=9hLhr8qCDnCrGK5y7g@HIDDEN>
 (=?iso-8859-1?Q?=22Jo=E3o?= Guerra"'s message of "Thu, 27 Feb 2020 22:13:21
 +0100")
Message-ID: <87lfonzmfr.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 27 Feb 2020 21:14:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 27 16:14:06 2020
Received: from localhost ([127.0.0.1]:60376 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j7QTt-0000pj-Ty
	for submit <at> 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 <joca.bt@HIDDEN>) id 1j7QTr-0000p1-I8
 for 39649 <at> 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 <at> 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: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
 <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
 <871rqhj5x2.fsf@HIDDEN>
In-Reply-To: <871rqhj5x2.fsf@HIDDEN>
From: =?UTF-8?B?Sm/Do28gR3VlcnJh?= <joca.bt@HIDDEN>
Date: Thu, 27 Feb 2020 22:13:21 +0100
Message-ID: <CAGiBfP1R6Lsee1C0Cn4zcXN9b96yLQ7=9hLhr8qCDnCrGK5y7g@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
To: Juri Linkov <juri@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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 <juri@HIDDEN> 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.
>




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 26 Feb 2020 23:33:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 26 18:33:51 2020
Received: from localhost ([127.0.0.1]:57946 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j76Bb-0004KU-45
	for submit <at> 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 <juri@HIDDEN>) id 1j76BY-0004KJ-QC
 for 39649 <at> debbugs.gnu.org; Wed, 26 Feb 2020 18:33:49 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
 <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
 <871rqhj5x2.fsf@HIDDEN>
Date: Thu, 27 Feb 2020 01:33:00 +0200
In-Reply-To: <871rqhj5x2.fsf@HIDDEN> (Juri Linkov's message of "Thu, 
 27 Feb 2020 01:16:25 +0200")
Message-ID: <87imjshqkz.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org, =?iso-8859-1?Q?Jo=E3o?= Guerra <joca.bt@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 26 Feb 2020 23:19:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 26 18:19:30 2020
Received: from localhost ([127.0.0.1]:57937 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j75xi-0003uU-EB
	for submit <at> 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 <juri@HIDDEN>) id 1j75xf-0003uL-AT
 for 39649 <at> debbugs.gnu.org; Wed, 26 Feb 2020 18:19:28 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: =?iso-8859-1?Q?Jo=E3o?= Guerra <joca.bt@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
 <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
Date: Thu, 27 Feb 2020 01:16:25 +0200
In-Reply-To: <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
 (=?iso-8859-1?Q?=22Jo=E3o?= Guerra"'s message of "Tue, 25 Feb 2020 22:49:02
 +0100")
Message-ID: <871rqhj5x2.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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 <juri@HIDDEN>
;; Keywords: windows tabs
;; Maintainer: emacs-devel@HIDDEN

;; 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 <https://www.gnu.org/licenses/>.

;;; 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

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 25 Feb 2020 21:49:44 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Feb 25 16:49:44 2020
Received: from localhost ([127.0.0.1]:56231 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j6i5H-0007ru-Rb
	for submit <at> 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 <joca.bt@HIDDEN>) id 1j6i5G-0007rg-G0
 for 39649 <at> 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 <at> 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: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 <87pne2ilur.fsf@HIDDEN>
In-Reply-To: <87pne2ilur.fsf@HIDDEN>
From: =?UTF-8?B?Sm/Do28gR3VlcnJh?= <joca.bt@HIDDEN>
Date: Tue, 25 Feb 2020 22:49:02 +0100
Message-ID: <CAGiBfP2SWApt5wueOWDnL+mw40ScAEM4O981qZ04wmy11jVQow@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
To: Juri Linkov <juri@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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 <juri@HIDDEN> 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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 25 Feb 2020 21:33:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Feb 25 16:33:51 2020
Received: from localhost ([127.0.0.1]:56214 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j6hpv-0007MB-Gw
	for submit <at> 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 <juri@HIDDEN>) id 1j6hpt-0007M0-BC
 for 39649 <at> debbugs.gnu.org; Tue, 25 Feb 2020 16:33:50 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: =?iso-8859-1?Q?Jo=E3o?= Guerra <joca.bt@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
 <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
Date: Tue, 25 Feb 2020 23:20:10 +0200
In-Reply-To: <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
 (=?iso-8859-1?Q?=22Jo=E3o?= Guerra"'s message of "Mon, 24 Feb 2020 20:11:26
 +0100")
Message-ID: <87pne2ilur.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 24 Feb 2020 19:12:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 24 14:12:09 2020
Received: from localhost ([127.0.0.1]:54115 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j6J9E-0006xd-T8
	for submit <at> 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 <joca.bt@HIDDEN>) id 1j6J9C-0006x8-La
 for 39649 <at> 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 <at> 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: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 <87h7zg7vjx.fsf@HIDDEN>
In-Reply-To: <87h7zg7vjx.fsf@HIDDEN>
From: =?UTF-8?B?Sm/Do28gR3VlcnJh?= <joca.bt@HIDDEN>
Date: Mon, 24 Feb 2020 20:11:26 +0100
Message-ID: <CAGiBfP1xPOBZx2qcT+cN0ygmqvubUwkSE=UHTwndMzEKec7aOg@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
To: Juri Linkov <juri@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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 <juri@HIDDEN> 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'.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 23 Feb 2020 23:51:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 23 18:51:51 2020
Received: from localhost ([127.0.0.1]:51722 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j612M-00055F-Se
	for submit <at> 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 <juri@HIDDEN>) id 1j612L-000557-6G
 for 39649 <at> debbugs.gnu.org; Sun, 23 Feb 2020 18:51:49 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: =?iso-8859-1?Q?Jo=E3o?= Guerra <joca.bt@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
 <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
Date: Mon, 24 Feb 2020 01:06:42 +0200
In-Reply-To: <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
 (=?iso-8859-1?Q?=22Jo=E3o?= Guerra"'s message of "Sun, 23 Feb 2020 11:35:59
 +0100")
Message-ID: <87h7zg7vjx.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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'.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 23 Feb 2020 10:36:44 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 23 05:36:44 2020
Received: from localhost ([127.0.0.1]:50409 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j5ocu-0000s9-Bi
	for submit <at> 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 <joca.bt@HIDDEN>) id 1j5ocs-0000rp-CZ
 for 39649 <at> 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 <at> 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: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
 <87y2sup4c2.fsf@HIDDEN>
In-Reply-To: <87y2sup4c2.fsf@HIDDEN>
From: =?UTF-8?B?Sm/Do28gR3VlcnJh?= <joca.bt@HIDDEN>
Date: Sun, 23 Feb 2020 11:35:59 +0100
Message-ID: <CAGiBfP0WFPny5UutoKCW-xowR_7kN2jSjBj_OqK+4FAWn+nBKg@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
To: Juri Linkov <juri@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org, Noam Postavsky <npostavs@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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 <juri@HIDDEN> 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:
>




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 23 Feb 2020 00:44:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 22 19:44:30 2020
Received: from localhost ([127.0.0.1]:50252 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j5fNm-00007O-Fj
	for submit <at> 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 <juri@HIDDEN>) id 1j5fNj-00007D-P0
 for 39649 <at> debbugs.gnu.org; Sat, 22 Feb 2020 19:44:29 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: Noam Postavsky <npostavs@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN> <87d0a8bu5c.fsf@HIDDEN>
Date: Sun, 23 Feb 2020 01:52:45 +0200
In-Reply-To: <87d0a8bu5c.fsf@HIDDEN> (Noam Postavsky's message of "Thu, 20
 Feb 2020 20:34:23 -0500")
Message-ID: <87y2sup4c2.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org, =?iso-8859-1?Q?Jo=E3o?= Guerra <joca.bt@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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))))

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 21 Feb 2020 01:34:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 20 20:34:32 2020
Received: from localhost ([127.0.0.1]:46180 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j4xD6-0000qL-9V
	for submit <at> 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 <npostavs@HIDDEN>) id 1j4xD4-0000q7-IF
 for 39649 <at> 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 <at> 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 <npostavs@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 <87r1yoopgp.fsf@HIDDEN>
Date: Thu, 20 Feb 2020 20:34:23 -0500
In-Reply-To: <87r1yoopgp.fsf@HIDDEN> (Juri Linkov's message of "Fri, 
 21 Feb 2020 01:07:10 +0200")
Message-ID: <87d0a8bu5c.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org, =?utf-8?Q?Jo=C3=A3o?= Guerra <joca.bt@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Juri Linkov <juri@HIDDEN> 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




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 21 Feb 2020 00:10:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 20 19:10:22 2020
Received: from localhost ([127.0.0.1]:46113 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j4vte-0005AT-G6
	for submit <at> 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 <juri@HIDDEN>) id 1j4vtb-0005AJ-TR
 for 39649 <at> debbugs.gnu.org; Thu, 20 Feb 2020 19:10:20 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: =?iso-8859-1?Q?Jo=E3o?= Guerra <joca.bt@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
 <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
Date: Fri, 21 Feb 2020 01:07:10 +0200
In-Reply-To: <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
 (=?iso-8859-1?Q?=22Jo=E3o?= Guerra"'s message of "Wed, 19 Feb 2020 21:57:15
 +0100")
Message-ID: <87r1yoopgp.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 19 Feb 2020 20:57:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 19 15:57:59 2020
Received: from localhost ([127.0.0.1]:43438 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j4WPu-0003nX-Rj
	for submit <at> 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 <joca.bt@HIDDEN>) id 1j4WPt-0003nL-V0
 for 39649 <at> 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 <at> 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: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN> <87h7zn4d99.fsf@HIDDEN>
In-Reply-To: <87h7zn4d99.fsf@HIDDEN>
From: =?UTF-8?B?Sm/Do28gR3VlcnJh?= <joca.bt@HIDDEN>
Date: Wed, 19 Feb 2020 21:57:15 +0100
Message-ID: <CAGiBfP10KLMH=qWKarfoQLHxxpo2hNA+GrUxovag8Cg2L9XXqQ@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
To: Juri Linkov <juri@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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 <juri@HIDDEN> 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




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 19 Feb 2020 00:51:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Feb 18 19:51:18 2020
Received: from localhost ([127.0.0.1]:41481 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j4Da9-0001Xo-7a
	for submit <at> 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 <juri@HIDDEN>) id 1j4Da7-0001Xf-EY
 for 39649 <at> debbugs.gnu.org; Tue, 18 Feb 2020 19:51:16 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: =?iso-8859-1?Q?Jo=E3o?= Guerra <joca.bt@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 <87imk3a5sa.fsf@HIDDEN>
Date: Wed, 19 Feb 2020 02:24:18 +0200
In-Reply-To: <87imk3a5sa.fsf@HIDDEN> (Juri Linkov's message of "Wed, 
 19 Feb 2020 00:39:09 +0200")
Message-ID: <87h7zn4d99.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 18 Feb 2020 22:56:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Feb 18 17:56:14 2020
Received: from localhost ([127.0.0.1]:41438 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j4Bmo-0007DS-3R
	for submit <at> 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 <juri@HIDDEN>) id 1j4Bmm-0007DH-Kr
 for 39649 <at> debbugs.gnu.org; Tue, 18 Feb 2020 17:56:13 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: =?iso-8859-1?Q?Jo=E3o?= Guerra <joca.bt@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
 <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
Date: Wed, 19 Feb 2020 00:39:09 +0200
In-Reply-To: <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
 (=?iso-8859-1?Q?=22Jo=E3o?= Guerra"'s message of "Tue, 18 Feb 2020 21:27:22
 +0100")
Message-ID: <87imk3a5sa.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 18 Feb 2020 20:28:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Feb 18 15:28:05 2020
Received: from localhost ([127.0.0.1]:41333 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j49TR-0003Ob-1y
	for submit <at> 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 <joca.bt@HIDDEN>) id 1j49TP-0003O2-5H
 for 39649 <at> 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 <at> 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: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 <87lfp0lsun.fsf@HIDDEN>
In-Reply-To: <87lfp0lsun.fsf@HIDDEN>
From: =?UTF-8?B?Sm/Do28gR3VlcnJh?= <joca.bt@HIDDEN>
Date: Tue, 18 Feb 2020 21:27:22 +0100
Message-ID: <CAGiBfP1FsFd3ppnrWoJH2+3ga4PmR+kZohkV2k6+2a6YmFU8nw@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
To: Juri Linkov <juri@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at 39649 <at> debbugs.gnu.org:


Received: (at 39649) by debbugs.gnu.org; 18 Feb 2020 00:14:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 17 19:14:49 2020
Received: from localhost ([127.0.0.1]:39367 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j3qXI-0000pK-VG
	for submit <at> 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 <juri@HIDDEN>) id 1j3qXG-0000pB-QE
 for 39649 <at> debbugs.gnu.org; Mon, 17 Feb 2020 19:14:48 -0500
X-Sender-Id: dreamhost|x-authsender|jurta@HIDDEN
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@HIDDEN
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@HIDDEN
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@HIDDEN)
 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 <juri@HIDDEN>
To: =?iso-8859-1?Q?Jo=E3o?= Guerra <joca.bt@HIDDEN>
Subject: Re: bug#39649: 27.0.60; tab-line doesn't scroll
Organization: LINKOV.NET
References: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
Date: Tue, 18 Feb 2020 01:03:12 +0200
In-Reply-To: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
 (=?iso-8859-1?Q?=22Jo=E3o?= Guerra"'s message of "Mon, 17 Feb 2020 19:51:58
 +0100")
Message-ID: <87lfp0lsun.fsf@HIDDEN>
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-Debbugs-Envelope-To: 39649
Cc: 39649 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.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))))





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 17 Feb 2020 18:52:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 17 13:52:38 2020
Received: from localhost ([127.0.0.1]:39233 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1j3lVW-0001hz-7W
	for submit <at> 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 <joca.bt@HIDDEN>) id 1j3lVV-0001hs-1R
 for submit <at> 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 <joca.bt@HIDDEN>) id 1j3lVT-0002OP-Mg
 for bug-gnu-emacs@HIDDEN; 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 <joca.bt@HIDDEN>) id 1j3lVS-0005Eh-F2
 for bug-gnu-emacs@HIDDEN; 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 <joca.bt@HIDDEN>) id 1j3lVS-0005Cj-9Q
 for bug-gnu-emacs@HIDDEN; Mon, 17 Feb 2020 13:52:34 -0500
Received: by mail-vs1-xe44.google.com with SMTP id t12so11033381vso.13
 for <bug-gnu-emacs@HIDDEN>; 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?B?Sm/Do28gR3VlcnJh?= <joca.bt@HIDDEN>
Date: Mon, 17 Feb 2020 19:51:58 +0100
Message-ID: <CAGiBfP0sbDyvkAbpeiBcn2pJHiayYhfEK0d8_BODfiaEodFyYQ@HIDDEN>
Subject: 27.0.60; tab-line doesn't scroll
To: bug-gnu-emacs@HIDDEN
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-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.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




Acknowledgement sent to JoĆ£o Guerra <joca.bt@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#39649; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Thu, 5 Mar 2020 00:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.