From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Calculating screen relative X when horizontal scrolling. Date: Sat, 20 Oct 2018 10:13:26 +0300 Message-ID: <83k1mdum3t.fsf@gnu.org> References: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1540019515 20102 195.159.176.226 (20 Oct 2018 07:11:55 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 20 Oct 2018 07:11:55 +0000 (UTC) Cc: emacs-devel@gnu.org To: Keith David Bershatsky Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Oct 20 09:11:51 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gDlQK-00057T-7L for ged-emacs-devel@m.gmane.org; Sat, 20 Oct 2018 09:11:48 +0200 Original-Received: from localhost ([::1]:53953 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gDlSQ-0001Uf-L3 for ged-emacs-devel@m.gmane.org; Sat, 20 Oct 2018 03:13:58 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40267) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gDlSK-0001UY-Ur for emacs-devel@gnu.org; Sat, 20 Oct 2018 03:13:53 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gDlSF-00038u-U2 for emacs-devel@gnu.org; Sat, 20 Oct 2018 03:13:52 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:35238) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gDlSE-00037Z-OR; Sat, 20 Oct 2018 03:13:47 -0400 Original-Received: from [176.228.60.248] (port=1635 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1gDlSD-0006Cb-O8; Sat, 20 Oct 2018 03:13:46 -0400 In-reply-to: (message from Keith David Bershatsky on Fri, 19 Oct 2018 12:58:56 -0700) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:230517 Archived-At: > Date: Fri, 19 Oct 2018 12:58:56 -0700 > From: Keith David Bershatsky > Cc: emacs-devel@gnu.org > > For reference point of this particular analysis: > > it->lnum_pixel_width == 44 Are your problems limited to the situation where line numbers are displayed? > To help me see what is happening, I put in a few new entries just above 'glyph->charpos = ' in all six (6) locations within xdisp.c and assigned a new "gizmo" (for lack of knowing the proper name) like this 'glyph->x = it->current_x;' with the appropriate corresponding entry for glyph->x in dispextern.h. In the custom dump glyph row (discussed above), I can see that glyph->x for the first 'の' character is actually 143, not 99. Since 143 = 99 + 44, and first_visible_x for scroll-left of 9 is 99 in your case, I think everything is OK. You just need to account for lnum_pixel_width, which is 44 in this case. When you change scroll-left to 10, a wide character such as 'の' will not move off the display if line numbers are displayed, because we don't know how to draw partial characters in that mode. This might be considered a bug in the current display code. But I don't think this should affect your code.