From unknown Wed Jun 18 23:04:59 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#16856 <16856@debbugs.gnu.org> To: bug#16856 <16856@debbugs.gnu.org> Subject: Status: 24.3.50; Cursor leaves garbage in fringe (and a request: width of fringes + scroll bar should be full characters) Reply-To: bug#16856 <16856@debbugs.gnu.org> Date: Thu, 19 Jun 2025 06:04:59 +0000 retitle 16856 24.3.50; Cursor leaves garbage in fringe (and a request: widt= h of fringes + scroll bar should be full characters) reassign 16856 emacs submitter 16856 Anders Lindgren severity 16856 normal tag 16856 unreproducible thanks From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 23 16:40:14 2014 Received: (at submit) by debbugs.gnu.org; 23 Feb 2014 21:40:14 +0000 Received: from localhost ([127.0.0.1]:36991 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHgmT-0001pR-84 for submit@debbugs.gnu.org; Sun, 23 Feb 2014 16:40:13 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55647) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHgmM-0001on-I4 for submit@debbugs.gnu.org; Sun, 23 Feb 2014 16:40:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WHgmF-0000uI-Uw for submit@debbugs.gnu.org; Sun, 23 Feb 2014 16:40:01 -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, HTML_MESSAGE,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:57002) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WHgmF-0000uB-Rl for submit@debbugs.gnu.org; Sun, 23 Feb 2014 16:39:59 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57368) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WHgmE-0004wP-Db for bug-gnu-emacs@gnu.org; Sun, 23 Feb 2014 16:39:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WHgmD-0000tR-4U for bug-gnu-emacs@gnu.org; Sun, 23 Feb 2014 16:39:58 -0500 Received: from mail-we0-x232.google.com ([2a00:1450:400c:c03::232]:43443) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WHgmC-0000tJ-PJ for bug-gnu-emacs@gnu.org; Sun, 23 Feb 2014 16:39:57 -0500 Received: by mail-we0-f178.google.com with SMTP id q59so4105323wes.9 for ; Sun, 23 Feb 2014 13:39:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=BOA0va6KVYWLNKLi5AbWWX5sVcZ2V/80TDJroUjcnWM=; b=TdzbRsd64yaDi4PiX2OC+zduO5XkYaDFS+EXcw1P0oa4yrxB28lqSLrnCtNHZSFwfT EnhBW4X86Ccxz9pCwqpTnDVXw6nYof5n4gjq6FWZKOIigJ7yldR8rpRDcXn767WsAAeG F38BabS7WyYpXwuECiVx7ruS+bzdLCfKbmhkKE41p/TR2xpapi2JezahJUu1bFgyUxWQ G6da4aAKWEG8HrYPEd26w+fneoGTR48noncG+Eb7+zgrfdpVc+nO9lV9pKc+Q/pljN5O xFAyhh8lZUuyHbcv0d/fFN96i7DTGvyzLKAjfiqEXR537NLd4ToS8SU+E6irMcUejrpr JaMQ== MIME-Version: 1.0 X-Received: by 10.180.185.197 with SMTP id fe5mr11444485wic.56.1393191595164; Sun, 23 Feb 2014 13:39:55 -0800 (PST) Received: by 10.217.110.131 with HTTP; Sun, 23 Feb 2014 13:39:55 -0800 (PST) Date: Sun, 23 Feb 2014 22:39:55 +0100 Message-ID: Subject: 24.3.50; Cursor leaves garbage in fringe (and a request: width of fringes + scroll bar should be full characters) From: Anders Lindgren To: bug-gnu-emacs@gnu.org Content-Type: multipart/alternative; boundary=001a11c34e9e22473004f319b2dd X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --001a11c34e9e22473004f319b2dd Content-Type: text/plain; charset=ISO-8859-1 Hi! The cursor leaves garbage in the fringe column. Steps to repeat: Emacs -Q (setq truncate-partial-width-windows nil) C-j C-x 3 C-x 3 C-x o C-u 15 x C-p Here, the cursor have left a one-pixel bar in the fringe area. In other scenarios I have seen the cursor leave two or three pixels wide garbage. (I use six columns and a 6x8 font.) I use OS X 10.9. I have noticed that when splitting two windows horizontally, the width of the fringes + scroll bar between the two windows don't add up to full characters. Instead, they are five characters and one pixel. My theory is that this extra pixel pushes the cursor into the fringe to the right. If possible, I would like to see the pixel width of fringes + scroll bar to be a multiple of the width of the font used in the frame, since it is much more convenient for elisp packages that make layout decisions. (As I mentioned above, now they are 5 characters and one pixel. In 24.3 they were exactly six characters wide.) Sincerely, Anders Lindgren In GNU Emacs 24.3.50.2 (x86_64-apple-darwin13.0.0, NS apple-appkit-1265.00) of 2014-02-16 on macpro.lan Repository revision: 116451 jan.h.d@swipnet.se-20140216095141-cop794qd0bf30tmt Windowing system distributor `Apple', version 10.3.1265 Configured using: `configure --with-ns' Important settings: value of $LC_CTYPE: UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: C-y C-j C-x 3 C-x 3 C-x o C-u 1 5 x C-p C-g C-x 1 x r e p o r t Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Mark set Quit Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util help-fns mail-prsvr mail-utils time-date tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process cocoa ns multi-tty emacs) --001a11c34e9e22473004f319b2dd Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi!

The cursor leaves garbag= e in the fringe column.

Steps to repeat:

= =A0 =A0 Emacs -Q
=A0 =A0=A0(setq = truncate-partial-width-windows nil) C-j
=A0 =A0 C-x 3
=A0 =A0 C-x 3
=A0 =A0 C-x o
=A0 =A0 C-u 15 x
=A0 =A0 C-p

Here, the cursor have left a one-pixel bar in the= fringe area.

In other scenarios I have seen the c= ursor leave two or three pixels wide garbage. (I use six columns and a 6x8 = font.)

I use OS X 10.9.

I have notice= d that when splitting two windows horizontally, the width of the fringes + = scroll bar between the two windows don't add up to full characters. Ins= tead, they are five characters and one pixel. My theory is that this extra = pixel pushes the cursor into the fringe to the right.

If possible, I would like to see the pixel width of fri= nges + scroll bar to be a multiple of the width of the font used in the fra= me, since it is much more convenient for elisp packages that make layout de= cisions. (As I mentioned above, now they are 5 characters and one pixel. In= 24.3 they were exactly six characters wide.)

Sincerely,
=A0 =A0 Anders Lindgren
=
In GNU Emacs 24.3.50.2 (x86_64-apple-darwin13.0.0, NS apple-= appkit-1265.00)
=A0of 2014-02-16 on macpro.lan
Reposito= ry revision: 116451 jan.h.d@swipnet.se-20140216095141-cop794qd0bf30tmt
Windowing system distributor `Apple', version 10.3.1265
= Configured using:
=A0`configure --with-ns'

Important settings:
=A0 value of $LC_CTYPE: UTF-8
=A0 locale-coding-system: utf-8-unix

Major mode: L= isp Interaction

Minor modes in effect:
= =A0 tooltip-mode: t
=A0 electric-indent-mode: t
=A0 mou= se-wheel-mode: t
=A0 tool-bar-mode: t
=A0 menu-bar-mode: t
=A0 file= -name-shadow-mode: t
=A0 global-font-lock-mode: t
=A0 f= ont-lock-mode: t
=A0 blink-cursor-mode: t
=A0 auto-comp= osition-mode: t
=A0 auto-encryption-mode: t
=A0 auto-compression-mode: t
=A0 line-number-mode: t
=A0 transient-mark-mode: t

Recent input:
C-y C-j C-x 3 C-x 3 C-x o C-u 1 5= x C-p <up> <down>=A0
C-g C-x 1 <escape> x r e p o r t <tab> <return>

Recent messages:
For information about GNU E= macs and the GNU system, type C-h C-a.
Mark set
Quit

Load-path shadows:
None found.

=
Features:
(shadow sort gnus-util mail-extr emacsbug me= ssage format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies= mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mail-utils time-date tooltip electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win tool-ba= r dnd
fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-ba= r
mouse jit-lock font-lock syntax facemenu font-core frame cham g= eorgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
=
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abb= rev
minibuffer nadvice loaddefs button faces cus-face macroexp files
=
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-proces= s
cocoa ns multi-tty emacs)

--001a11c34e9e22473004f319b2dd-- From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 23 22:45:02 2014 Received: (at 16856) by debbugs.gnu.org; 24 Feb 2014 03:45:03 +0000 Received: from localhost ([127.0.0.1]:37138 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHmTV-0004jS-93 for submit@debbugs.gnu.org; Sun, 23 Feb 2014 22:45:01 -0500 Received: from mtaout23.012.net.il ([80.179.55.175]:57594) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHmTS-0004j1-4y for 16856@debbugs.gnu.org; Sun, 23 Feb 2014 22:44:59 -0500 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0N1H00M00DR0IO00@a-mtaout23.012.net.il> for 16856@debbugs.gnu.org; Mon, 24 Feb 2014 05:44:51 +0200 (IST) Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0N1H00MLOEEQBK90@a-mtaout23.012.net.il>; Mon, 24 Feb 2014 05:44:51 +0200 (IST) Date: Mon, 24 Feb 2014 05:44:40 +0200 From: Eli Zaretskii Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe (and a request: width of fringes + scroll bar should be full characters) In-reply-to: X-012-Sender: halo1@inter.net.il To: Anders Lindgren Message-id: <83k3cl18ev.fsf@gnu.org> References: X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) > Date: Sun, 23 Feb 2014 22:39:55 +0100 > From: Anders Lindgren > > The cursor leaves garbage in the fringe column. > > Steps to repeat: > > Emacs -Q > (setq truncate-partial-width-windows nil) C-j > C-x 3 > C-x 3 > C-x o > C-u 15 x > C-p > > Here, the cursor have left a one-pixel bar in the fringe area. Not reproducible here (not on OS X). Might be OS X specific. From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 24 02:41:51 2014 Received: (at 16856) by debbugs.gnu.org; 24 Feb 2014 07:41:51 +0000 Received: from localhost ([127.0.0.1]:37278 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHqAg-0004NA-Hf for submit@debbugs.gnu.org; Mon, 24 Feb 2014 02:41:51 -0500 Received: from mout.gmx.net ([212.227.15.19]:53208) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHqA8-0004M7-5S for 16856@debbugs.gnu.org; Mon, 24 Feb 2014 02:41:16 -0500 Received: from [62.47.50.35] ([62.47.50.35]) by mail.gmx.com (mrgmx103) with ESMTPSA (Nemesis) id 0Lh7M3-1X4rhK2gsB-00oUyD for <16856@debbugs.gnu.org>; Mon, 24 Feb 2014 08:41:09 +0100 Message-ID: <530AF78F.9080102@gmx.at> Date: Mon, 24 Feb 2014 08:41:03 +0100 From: martin rudalics MIME-Version: 1.0 To: Anders Lindgren Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe (and a request: width of fringes + scroll bar should be full characters) References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:nYWMQsrG/psS4YyUigAHGvJWhsx2x19g74aGblY9kUTvZ/7sCLU 0JRSDhdy4VZfMA/HZHF48mlAbuRqq5+28spYPWMNMrtjyycTWUODMnJZfdIdv5FQlSwzB9q XguNCve+jVoeRNYoalilO77hTLTJcDlQzjiMmDykWAPqwE/GlErgff3+xEypYELmstmJIw+ p7nO5cTgsw5Vz/sdIuPMg== X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) > If possible, I would like to see the pixel width of fringes + scroll bar to > be a multiple of the width of the font used in the frame, since it is much > more convenient for elisp packages that make layout decisions. (As I > mentioned above, now they are 5 characters and one pixel. In 24.3 they were > exactly six characters wide.) The pixel widths of fringes and scrollbars are customizable on a per frame/window basis so you should be able to set them up on you system as you need. Does that fail? martin From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 24 05:12:40 2014 Received: (at 16856) by debbugs.gnu.org; 24 Feb 2014 10:12:40 +0000 Received: from localhost ([127.0.0.1]:37346 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHsWe-0000KN-7F for submit@debbugs.gnu.org; Mon, 24 Feb 2014 05:12:40 -0500 Received: from mail-wi0-f174.google.com ([209.85.212.174]:55862) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHsWb-0000K8-EZ for 16856@debbugs.gnu.org; Mon, 24 Feb 2014 05:12:38 -0500 Received: by mail-wi0-f174.google.com with SMTP id f8so2837874wiw.7 for <16856@debbugs.gnu.org>; Mon, 24 Feb 2014 02:12:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=5ut4q/ruI0YnkLgZdcM778JXHejR7T1/whYUUGbvDAk=; b=FF9r70jBq2zBahdoJZiykTtyDiYPxLtQRcJsVljrdYJ1Xbj2cFzs3z8zaZ7B5Tz6bi qEo5tFt2msv68Yc8CMRgWbbGrqbAum1ABgu0l9OVivR3a3xUvhFXJUz2yyGhJhbRRWmb ThRjSWDQc2l/ZW6siT2MLFmIJSqbyfHft9wdKbfIUcshHhDJ1SrGezF21YB46cCwJgH3 fsGu4rYdqzV33WINrCk3pb0hv1XDy56z2LprpPIV327ZGxEu/SvtBA3Mimq6pxwvzPCx QBNUPi/K0umhT7cLCXEIbmk6Q7YLvZTNXm/vZ2LDa9AewgCDj48KyJI4hKIPRsa4kTKb 8F4w== MIME-Version: 1.0 X-Received: by 10.180.207.15 with SMTP id ls15mr13460681wic.50.1393236751417; Mon, 24 Feb 2014 02:12:31 -0800 (PST) Received: by 10.217.110.131 with HTTP; Mon, 24 Feb 2014 02:12:31 -0800 (PST) In-Reply-To: <530AF78F.9080102@gmx.at> References: <530AF78F.9080102@gmx.at> Date: Mon, 24 Feb 2014 11:12:31 +0100 Message-ID: Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe (and a request: width of fringes + scroll bar should be full characters) From: Anders Lindgren To: martin rudalics Content-Type: multipart/alternative; boundary=001a11c33b66a80a1b04f3243517 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a11c33b66a80a1b04f3243517 Content-Type: text/plain; charset=ISO-8859-1 On Mon, Feb 24, 2014 at 8:41 AM, martin rudalics wrote: > > If possible, I would like to see the pixel width of fringes + scroll bar > to > > be a multiple of the width of the font used in the frame, since it is > much > > more convenient for elisp packages that make layout decisions. (As I > > mentioned above, now they are 5 characters and one pixel. In 24.3 they > were > > exactly six characters wide.) > > The pixel widths of fringes and scrollbars are customizable on a per > frame/window basis so you should be able to set them up on you system > as you need. Does that fail? Well, it's much more work to handle things on the pixel level than working with characters as the base unit. For example, I'm currently writing a package to set up multiple side-by-size windows. When figuring out a suitable frame width, I used to multiply the number of side-by-side windows with the sum of the column width and the width (in characters) of the fringe and scroll bars, to get the number of characters to set the width to. Now, I would have to work on the pixel level to do this properly -- this is much more error prone and I can't use the code on old Emacs versions. It doesn't help that functions doesn't seem to be designed to work together, for example I would expect: (set-frame-size (selected-frame) (frame-pixel-width) (frame-pixel-height) t)' to be a no-op, but instead the frame increases its size both on the width and on the height. Another argument of not having a "odd" width is that when splitting windows side-by-side, you will end up with an unused gap to the right of almost a full character. Steps to repeat: emacs -Q (setq truncate-partial-width-windows nil) C-j C-x 3 Here, the right window have an unused space between the rightmost character and the fringe, the space is almost a character wide. It's not possible to resize the frame manually to correct this, as the frame can only be resized full characters (as it should be). (When `truncate-partial-width-windows' is t, the gap is used to display a partial character.) To conclude, I would be much happier if the sum of the fringes and the scroll bar would be an even five characters rather than five characters and one pixel, as it is today. The question is if this is due to some display bug (maybe OS X specific) or if this is the way it is supposed to work now? -- Anders --001a11c33b66a80a1b04f3243517 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
On M= on, Feb 24, 2014 at 8:41 AM, martin rudalics <rudalics@gmx.at> wrote:
> If possible, I would like to see the pixel width of f= ringes + scroll bar to
> be a multiple of the width of the font used in the frame, since it is = much
> more convenient for elisp packages that make layout decisions. (As I > mentioned above, now they are 5 characters and one pixel. In 24.3 they= were
> exactly six characters wide.)

The pixel widths of fringes and scrollbars are customizable on a per
frame/window basis so you should be able to set them up on you system
as you need. =A0Does that fail?

Well, it= 9;s much more work to handle things on the pixel level than working with ch= aracters as the base unit.

For example, I'm cu= rrently writing a package to set up multiple side-by-size windows. When fig= uring out a suitable frame width, I used to multiply the number of side-by-= side windows with the sum of the column width and the width (in characters)= of the fringe and scroll bars, to get the number of characters to set the = width to. Now, I would have to work on the pixel level to do this properly = -- this is much more error prone and I can't use the code on old Emacs = versions.

It doesn't help that functions doesn't seem to = be designed to work together, for example I would expect:
=A0 =A0= (set-frame-size (selected-frame) (frame-pixel-width) (frame-pixel-height) = t)'
to be a no-op, but instead the frame increases its size both on the wi= dth and on the height.

Another argument of not having a "odd" width is that when sp= litting windows side-by-side, you will end up with an unused gap to the rig= ht of almost a full character. Steps to repeat:

=A0 =A0 emacs -Q
=A0 =A0=A0(setq truncate-partial-width-wind= ows nil) C-j
=A0 =A0 C-x 3

=A0 =A0 =A0 = =A0 Here, the right window have an unused space between the rightmost chara= cter and the fringe, the space is almost a character wide. It's not pos= sible to resize the frame manually to correct this, as the frame can only b= e resized full characters (as it should be). (When `truncate-partial-width-= windows' is t, the gap is used to display a partial character.)

To conclude, I would be much hap= pier if the sum of the fringes and the scroll bar would be an even five cha= racters rather than five characters and one pixel, as it is today.

The question is if this is due to some= display bug (maybe OS X specific) or if this is the way it is supposed to = work now?

=A0 =A0 -- Anders

--001a11c33b66a80a1b04f3243517-- From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 24 05:54:06 2014 Received: (at 16856) by debbugs.gnu.org; 24 Feb 2014 10:54:06 +0000 Received: from localhost ([127.0.0.1]:37389 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHtAj-0002hR-UL for submit@debbugs.gnu.org; Mon, 24 Feb 2014 05:54:06 -0500 Received: from mout.gmx.net ([212.227.15.15]:56414) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHtAh-0002gu-FX for 16856@debbugs.gnu.org; Mon, 24 Feb 2014 05:54:04 -0500 Received: from [62.47.40.5] ([62.47.40.5]) by mail.gmx.com (mrgmx001) with ESMTPSA (Nemesis) id 0LcBBl-1X0oJF1IYf-00jZL9 for <16856@debbugs.gnu.org>; Mon, 24 Feb 2014 11:53:56 +0100 Message-ID: <530B24BD.7030700@gmx.at> Date: Mon, 24 Feb 2014 11:53:49 +0100 From: martin rudalics MIME-Version: 1.0 To: Anders Lindgren Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe (and a request: width of fringes + scroll bar should be full characters) References: <530AF78F.9080102@gmx.at> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:AEBmFTPos8LtN2Q3Tafo5a6NeoxrTViigk7C+O1DacPWMnfUg4i vOt3xuY0GKTexnjMJIAdQfV7pGTxo2nkd0wRUMnOJLdjb8AWzrgE2qTsWAFdK8t1lFNHB7m wcnuJHWuX5JfQfUnrH68jZ7lBycpOQ7WqHlPJ3NXOIdk2Zcv5qaf1lSvp7wh/J7fZdJoygQ jIrzx3/jhlWPsivHac/FA== X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) >> The pixel widths of fringes and scrollbars are customizable on a per >> frame/window basis so you should be able to set them up on you system >> as you need. Does that fail? > > > Well, it's much more work to handle things on the pixel level than working > with characters as the base unit. > > For example, I'm currently writing a package to set up multiple > side-by-size windows. When figuring out a suitable frame width, I used to > multiply the number of side-by-side windows with the sum of the column > width and the width (in characters) of the fringe and scroll bars, to get > the number of characters to set the width to. Now, I would have to work on > the pixel level to do this properly -- this is much more error prone and I > can't use the code on old Emacs versions. If you do that, you already preclude your code from working correctly on maximized or fullscreen frames. These might have widths that are not an integral multiple of your character widths. And toolkit scrollbars may have a width that is not an integral multiple either - so you would have to adjust the combined size anyway. > It doesn't help that functions doesn't seem to be designed to work > together, for example I would expect: > (set-frame-size (selected-frame) (frame-pixel-width) > (frame-pixel-height) t)' > to be a no-op, but instead the frame increases its size both on the width > and on the height. `set-frame-size' expects as argument the new _text_ width of the frame and adds the width of fringes, a scrollbar and internal borders to that. > Another argument of not having a "odd" width is that when splitting windows > side-by-side, you will end up with an unused gap to the right of almost a > full character. Steps to repeat: > > emacs -Q > (setq truncate-partial-width-windows nil) C-j > C-x 3 > > Here, the right window have an unused space between the rightmost > character and the fringe, the space is almost a character wide. It's not > possible to resize the frame manually to correct this, as the frame can > only be resized full characters (as it should be). (When > `truncate-partial-width-windows' is t, the gap is used to display a partial > character.) > > To conclude, I would be much happier if the sum of the fringes and the > scroll bar would be an even five characters rather than five characters and > one pixel, as it is today. > > The question is if this is due to some display bug (maybe OS X specific) or > if this is the way it is supposed to work now? This used to happen with Emacs 24.3 here and should be gone now. But OS X still has the old extended fringes code in place - maybe that interferes. Could you try to remove it - I can't compile for OS X so I won't do that. If you want to know how, have a look at these changes: 2013-12-02 YAMAMOTO Mitsuharu * xterm.h (struct scroll_bar): Remove member `fringe_extended_p'. * xterm.c (x_draw_fringe_bitmap, x_scroll_run): Remove code for fringe background extension. (x_scroll_bar_create): Remove variables `sb_left' and `sb_width', because they are now always the same as `left' and `width', respectively. Remove code for the case that `width' and `sb_width' are different. 2013-12-21 YAMAMOTO Mitsuharu * w32term.h (struct scroll_bar): Remove member `fringe_extended_p'. * w32term.c (w32_draw_fringe_bitmap, x_scroll_run): Remove code for fringe background extension. (x_scroll_bar_create): Remove variables `sb_left' and `sb_width', because they are now always the same as `left' and `width', respectively. Remove code for the case that `width' and `sb_width' are different. martin From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 24 10:12:50 2014 Received: (at 16856) by debbugs.gnu.org; 24 Feb 2014 15:12:50 +0000 Received: from localhost ([127.0.0.1]:37944 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHxD6-00031M-Gd for submit@debbugs.gnu.org; Mon, 24 Feb 2014 10:12:49 -0500 Received: from mail-wi0-f174.google.com ([209.85.212.174]:38203) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WHxD2-000316-AA for 16856@debbugs.gnu.org; Mon, 24 Feb 2014 10:12:46 -0500 Received: by mail-wi0-f174.google.com with SMTP id f8so3184380wiw.13 for <16856@debbugs.gnu.org>; Mon, 24 Feb 2014 07:12:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=KoxgkAa1D32mEVQDyfPNbie8c76hGJVo+2aBlYrYqbM=; b=DO4DFOp1u7adxnhnjFpW3I3XVB55e5LgtTjMR67EBma1RoM2N+47uE1wtnh4eeLM1J J7mKMbeyqKRYGMWZT8JiDlqpY0YeJlLCAXxaiAcbW1tkxtgqDirU79h5xO/FJe/5xxic 5peNLJRceHLoDfxImUnodQYCP8zZ3JGdymL/BW7xUhTV4os5uStiiV7R0lVL/MFnE+ul 0MParpW2QruHaXj0T/D0Htw47Qyk009XHAcfyS4qCq0LUfS4Al7vSld3AwVCpMJQMZdJ 1GV4PRuFTe3uduTP4Noztcv5yFYRPlx4RBptrqTPQuxixrMOJMdRrUGgeZOmTYPThidJ 7qrw== MIME-Version: 1.0 X-Received: by 10.180.77.129 with SMTP id s1mr14762877wiw.56.1393254758213; Mon, 24 Feb 2014 07:12:38 -0800 (PST) Received: by 10.217.110.131 with HTTP; Mon, 24 Feb 2014 07:12:38 -0800 (PST) In-Reply-To: <530B24BD.7030700@gmx.at> References: <530AF78F.9080102@gmx.at> <530B24BD.7030700@gmx.at> Date: Mon, 24 Feb 2014 16:12:38 +0100 Message-ID: Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe (and a request: width of fringes + scroll bar should be full characters) From: Anders Lindgren To: martin rudalics Content-Type: multipart/alternative; boundary=f46d043c801ef1eed504f3286679 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --f46d043c801ef1eed504f3286679 Content-Type: text/plain; charset=ISO-8859-1 Ok, I think that I understand more of how the new layout works, and that I need to work on the pixel level. Hence, I drop my request to make the width of the fringes + scroll bars a multiple of the frame character width. The problem with the cursor leaving garbage in the right fringe still remains, though. -- Anders On Mon, Feb 24, 2014 at 11:53 AM, martin rudalics wrote: > >> The pixel widths of fringes and scrollbars are customizable on a per > >> frame/window basis so you should be able to set them up on you system > >> as you need. Does that fail? > > > > > > Well, it's much more work to handle things on the pixel level than > working > > with characters as the base unit. > > > > For example, I'm currently writing a package to set up multiple > > side-by-size windows. When figuring out a suitable frame width, I used to > > multiply the number of side-by-side windows with the sum of the column > > width and the width (in characters) of the fringe and scroll bars, to get > > the number of characters to set the width to. Now, I would have to work > on > > the pixel level to do this properly -- this is much more error prone and > I > > can't use the code on old Emacs versions. > > If you do that, you already preclude your code from working correctly on > maximized or fullscreen frames. These might have widths that are not an > integral multiple of your character widths. And toolkit scrollbars may > have a width that is not an integral multiple either - so you would have > to adjust the combined size anyway. > > > > It doesn't help that functions doesn't seem to be designed to work > > together, for example I would expect: > > (set-frame-size (selected-frame) (frame-pixel-width) > > (frame-pixel-height) t)' > > to be a no-op, but instead the frame increases its size both on the width > > and on the height. > > `set-frame-size' expects as argument the new _text_ width of the frame > and adds the width of fringes, a scrollbar and internal borders to that. > > > > Another argument of not having a "odd" width is that when splitting > windows > > side-by-side, you will end up with an unused gap to the right of almost a > > full character. Steps to repeat: > > > > emacs -Q > > (setq truncate-partial-width-windows nil) C-j > > C-x 3 > > > > Here, the right window have an unused space between the rightmost > > character and the fringe, the space is almost a character wide. It's not > > possible to resize the frame manually to correct this, as the frame can > > only be resized full characters (as it should be). (When > > `truncate-partial-width-windows' is t, the gap is used to display a > partial > > character.) > > > > To conclude, I would be much happier if the sum of the fringes and the > > scroll bar would be an even five characters rather than five characters > and > > one pixel, as it is today. > > > > The question is if this is due to some display bug (maybe OS X specific) > or > > if this is the way it is supposed to work now? > > This used to happen with Emacs 24.3 here and should be gone now. But OS > X still has the old extended fringes code in place - maybe that > interferes. Could you try to remove it - I can't compile for OS X so I > won't do that. If you want to know how, have a look at these changes: > > 2013-12-02 YAMAMOTO Mitsuharu > > * xterm.h (struct scroll_bar): Remove member `fringe_extended_p'. > > * xterm.c (x_draw_fringe_bitmap, x_scroll_run): Remove code for > fringe background extension. > (x_scroll_bar_create): Remove variables `sb_left' and `sb_width', > because they are now always the same as `left' and `width', > respectively. Remove code for the case that `width' and > `sb_width' are different. > > 2013-12-21 YAMAMOTO Mitsuharu > > * w32term.h (struct scroll_bar): Remove member `fringe_extended_p'. > > * w32term.c (w32_draw_fringe_bitmap, x_scroll_run): Remove code for > fringe background extension. > (x_scroll_bar_create): Remove variables `sb_left' and `sb_width', > because they are now always the same as `left' and `width', > respectively. Remove code for the case that `width' and > `sb_width' are different. > > martin > --f46d043c801ef1eed504f3286679 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Ok, I think that I understand more of how the new layout w= orks, and that I need to work on the pixel level. Hence, I drop my request = to make the width of the fringes + scroll bars a multiple of the frame char= acter width.

The problem with the cursor leaving garbage in the right fri= nge still remains, though.

=A0 =A0 -- Anders
=


On Mon,= Feb 24, 2014 at 11:53 AM, martin rudalics <rudalics@gmx.at> w= rote:
>> The pixel widths of= fringes and scrollbars are customizable on a per
>> frame/window basis so you should be able to set them up on you sys= tem
>> as you need. =A0Does that fail?
>
>
> Well, it's much more work to handle things on the pixel level than= working
> with characters as the base unit.
>
> For example, I'm currently writing a package to set up multiple > side-by-size windows. When figuring out a suitable frame width, I used= to
> multiply the number of side-by-side windows with the sum of the column=
> width and the width (in characters) of the fringe and scroll bars, to = get
> the number of characters to set the width to. Now, I would have to wor= k on
> the pixel level to do this properly -- this is much more error prone a= nd I
> can't use the code on old Emacs versions.

If you do that, you already preclude your code from working correctly on maximized or fullscreen frames. =A0These might have widths that are not an<= br> integral multiple of your character widths. =A0And toolkit scrollbars may have a width that is not an integral multiple either - so you would have to adjust the combined size anyway.


> It doesn't help that functions doesn't seem to be designed to = work
> together, for example I would expect:
> =A0 =A0 (set-frame-size (selected-frame) (frame-pixel-width)
> (frame-pixel-height) t)'
> to be a no-op, but instead the frame increases its size both on the wi= dth
> and on the height.

`set-frame-size' expects as argument the new _text_ width of the frame<= br> and adds the width of fringes, a scrollbar and internal borders to that.

> Another argument of not having a "odd" width is that when sp= litting windows
> side-by-side, you will end up with an unused gap to the right of almos= t a
> full character. Steps to repeat:
>
> =A0 =A0 emacs -Q
> =A0 =A0 (setq truncate-partial-width-windows nil) C-j
> =A0 =A0 C-x 3
>
> =A0 =A0 =A0 =A0 Here, the right window have an unused space between th= e rightmost
> character and the fringe, the space is almost a character wide. It'= ;s not
> possible to resize the frame manually to correct this, as the frame ca= n
> only be resized full characters (as it should be). (When
> `truncate-partial-width-windows' is t, the gap is used to d= isplay a partial
> character.)
>
> To conclude, I would be much happier if the sum of the fringes and the=
> scroll bar would be an even five characters rather than five character= s and
> one pixel, as it is today.
>
> The question is if this is due to some display bug (maybe OS X specifi= c) or
> if this is the way it is supposed to work now?

This used to happen with Emacs 24.3 here and should be gone now. =A0But OS<= br> X still has the old extended fringes code in place - maybe that
interferes. =A0Could you try to remove it - I can't compile for OS X so= I
won't do that. =A0If you want to know how, have a look at these changes= :

2013-12-02 =A0YAMAMOTO Mitsuharu =A0<mituharu@math.s.chiba-u.ac.jp>= ;

=A0 =A0 =A0 =A0 * xterm.h (struct scroll_bar): Remove member `fringe_extend= ed_p'.

=A0 =A0 =A0 =A0 * xterm.c (x_draw_fringe_bitmap, x_scroll_run): Remove code= for
=A0 =A0 =A0 =A0 fringe background extension.
=A0 =A0 =A0 =A0 (x_scroll_bar_create): Remove variables `sb_left' and `= sb_width',
=A0 =A0 =A0 =A0 because they are now always the same as `left' and `wid= th',
=A0 =A0 =A0 =A0 respectively. =A0Remove code for the case that `width' = and
=A0 =A0 =A0 =A0 `sb_width' are different.

2013-12-21 =A0YAMAMOTO Mitsuharu =A0<mituharu@math.s.chiba-u.ac.jp>= ;

=A0 =A0 =A0 =A0 * w32term.h (struct scroll_bar): Remove member `fringe_exte= nded_p'.

=A0 =A0 =A0 =A0 * w32term.c (w32_draw_fringe_bitmap, x_scroll_run): Remove = code for
=A0 =A0 =A0 =A0 fringe background extension.
=A0 =A0 =A0 =A0 (x_scroll_bar_create): Remove variables `sb_left' and `= sb_width',
=A0 =A0 =A0 =A0 because they are now always the same as `left' and `wid= th',
=A0 =A0 =A0 =A0 respectively. =A0Remove code for the case that `width' = and
=A0 =A0 =A0 =A0 `sb_width' are different.

martin

--f46d043c801ef1eed504f3286679-- From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 26 05:16:16 2014 Received: (at 16856) by debbugs.gnu.org; 26 Feb 2014 10:16:16 +0000 Received: from localhost ([127.0.0.1]:40393 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WIbXE-0007Ci-0m for submit@debbugs.gnu.org; Wed, 26 Feb 2014 05:16:16 -0500 Received: from mout.gmx.net ([212.227.17.21]:59704) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WIbX6-0007CT-Rr for 16856@debbugs.gnu.org; Wed, 26 Feb 2014 05:16:09 -0500 Received: from [62.47.38.172] ([62.47.38.172]) by mail.gmx.com (mrgmx001) with ESMTPSA (Nemesis) id 0Lee2I-1X22xd2P1i-00qPwy for <16856@debbugs.gnu.org>; Wed, 26 Feb 2014 11:16:07 +0100 Message-ID: <530DBEDE.5000903@gmx.at> Date: Wed, 26 Feb 2014 11:15:58 +0100 From: martin rudalics MIME-Version: 1.0 To: Anders Lindgren Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe (and a request: width of fringes + scroll bar should be full characters) References: <530AF78F.9080102@gmx.at> <530B24BD.7030700@gmx.at> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:zucL1UWSdCK7Uw65L5fK5IaPt6a8cpSdwZmy/5y1XLglxIAUcv3 1an1jfZ2VDsBG1qNH5U4rJaGeCxuI8omcsdte7iUNm21uvpzfR2NZgVmxZxPibGq3mAeDtn /ldaCt+r4t196VNk6TAfGW7p4ON9wAbC5bMI2W9vhNpMvgvsg/YjxujClH2bJnH6yZ1JK2m HfPpw8MqtQGgJkWbgIyYA== X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) > The problem with the cursor leaving garbage in the right fringe still > remains, though. So you didn't try to remove the extended fringe code? Is it too difficult? The problem might be located there. martin From debbugs-submit-bounces@debbugs.gnu.org Wed Feb 26 07:51:49 2014 Received: (at 16856) by debbugs.gnu.org; 26 Feb 2014 12:51:50 +0000 Received: from localhost ([127.0.0.1]:40510 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WIdxl-0004Ll-9L for submit@debbugs.gnu.org; Wed, 26 Feb 2014 07:51:49 -0500 Received: from mail-we0-f182.google.com ([74.125.82.182]:34196) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WIdxi-0004Lc-O7 for 16856@debbugs.gnu.org; Wed, 26 Feb 2014 07:51:47 -0500 Received: by mail-we0-f182.google.com with SMTP id u57so1573712wes.41 for <16856@debbugs.gnu.org>; Wed, 26 Feb 2014 04:51:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=IR0MkuZ6XxQKhe9dtPw4vSPS7dXiwKOH8E7DxYhTSZ0=; b=DWCqHvZdNq0V6euwge/GnLtW/tZj2fT+0mqzkhdTeWurqgkl8zX1a+SPApuh5ipOUN BBkLIvPm8/Xxv6YstNmlK5RgBtwuKnWyhh6CJ9VAXwe059qOfa7Um+3PRZFxDaM/Jeam t6XZaozeCmtS47go+ypBnTrFBiygmJ0eACUtnAvqPzHda2Pr04PILLs6+ZfosmD8P5xU cRhYO/0+D2S78GdcjbSJURfFx2JMjDT3oRN1tSihU1DbJspA2zTMDHlODOdkuZue0pyQ 7Uen4UoR49f/KGxWVGPcNDzRsKoDTNgZ4kwQSR5rJ1fejUI6WGqPQ9xqEIjMRV2kB6Jx l1zg== MIME-Version: 1.0 X-Received: by 10.194.110.41 with SMTP id hx9mr2365648wjb.28.1393419105622; Wed, 26 Feb 2014 04:51:45 -0800 (PST) Received: by 10.217.110.131 with HTTP; Wed, 26 Feb 2014 04:51:45 -0800 (PST) In-Reply-To: <530DBEDE.5000903@gmx.at> References: <530AF78F.9080102@gmx.at> <530B24BD.7030700@gmx.at> <530DBEDE.5000903@gmx.at> Date: Wed, 26 Feb 2014 13:51:45 +0100 Message-ID: Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe (and a request: width of fringes + scroll bar should be full characters) From: Anders Lindgren To: martin rudalics Content-Type: multipart/alternative; boundary=089e010d89e0d05f2304f34eaaf2 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --089e010d89e0d05f2304f34eaaf2 Content-Type: text/plain; charset=ISO-8859-1 On Wed, Feb 26, 2014 at 11:15 AM, martin rudalics wrote: > So you didn't try to remove the extended fringe code? Is it too > difficult? The problem might be located there. No, I haven't tried it yet. I don't think it's too difficult, I just haven't found the time to do it yet. / Anders --089e010d89e0d05f2304f34eaaf2 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
On W= ed, Feb 26, 2014 at 11:15 AM, martin rudalics <rudalics@gmx.at> wrote:
So you didn't try to remove the extended fringe code? =A0Is i= t too
difficult? =A0The problem might be located there.

No, I haven't tried it yet. I don't think it's too diffi= cult, I just haven't found the time to do it yet.

/ Anders
--089e010d89e0d05f2304f34eaaf2-- From debbugs-submit-bounces@debbugs.gnu.org Tue May 17 14:30:41 2016 Received: (at 16856) by debbugs.gnu.org; 17 May 2016 18:30:41 +0000 Received: from localhost ([127.0.0.1]:56229 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2jlQ-0001dt-RP for submit@debbugs.gnu.org; Tue, 17 May 2016 14:30:41 -0400 Received: from mail-wm0-f43.google.com ([74.125.82.43]:36954) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2jlO-0001df-QG for 16856@debbugs.gnu.org; Tue, 17 May 2016 14:30:39 -0400 Received: by mail-wm0-f43.google.com with SMTP id a17so45477573wme.0 for <16856@debbugs.gnu.org>; Tue, 17 May 2016 11:30:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=rhIk/ptL90bw9xEJhc40s2mc7J3d05AQiWmMlkDWe6c=; b=S/h4mcEkkH+IlhG0TAhzbEo6Y0J8aqUzoSulZMZXr4rA7p+2EGFitAHf3KCEjpoMnK JH8XEYyN/ZI1xGCwSagjNoz5D4PiBvN29Xe6Y84godzAo7G3fAPlkBUBY+laruA8ofXj n6O6DStcq03QDh9sY6Ne7a3z6Jp0BkdjIX+6J/rjiq9kSleKZ43HtamG2QrXBcs6d4Bq V5u69U+Orls/IZVYDvVesD44yzeBBn1khNqYMSj8+q+uqCq6dUXSyRGezc+saU29dF+r 4+qMm13ljCJFon754JRuAK2kiusL/WQ6E0KlJo5REOmhNQE+UtVU1tyyGl5MThxlX7R7 DFxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=rhIk/ptL90bw9xEJhc40s2mc7J3d05AQiWmMlkDWe6c=; b=J+oxPJv6Ocg5oeGZb+WgnvmzUYb3/KMjq92C6gIORotx2CYky7D0gZ9rw4Nlrj+CsD KHqAEuVaCqzKirovFvYc6LtpTDiONDPx16PyIUzqTyy9ZISZP0agA9zZwS03aWesT6w5 zfJlnoUVaUZPDNMlNs8WPP35mt8XzHNtoxqKKcl3p5D7qErg4mApvfA3MyAYIdR4JSbN a1nS9JHIHG9IrQ175dXup8nLZYsQjLMdDpFSfuyhAgKB2464T+GJ4nHfBvXKO9dGb0HJ 6z5B4Wif1Bo4WokDHWPdv++CQyxPRf5LP4BpZcFFoacaMXmTSSxMs9Pmddiq1Q5EtxGF VRtA== X-Gm-Message-State: AOPr4FVyR2eoqgMTWamMjyapl3SX2+JqyDgQRKmbPC5peSEQ+Mu/gK4Ka+HQSAAHmpxy6Q== X-Received: by 10.194.123.67 with SMTP id ly3mr2912728wjb.135.1463509833205; Tue, 17 May 2016 11:30:33 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-dcd0-ea5c-d060-789e.holly.idiocy.org. [2001:8b0:3f8:8129:dcd0:ea5c:d060:789e]) by smtp.gmail.com with ESMTPSA id n66sm4954824wmn.7.2016.05.17.11.30.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 May 2016 11:30:32 -0700 (PDT) From: Alan Third To: martin rudalics Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe (and a request: width of fringes + scroll bar should be full characters) References: <530AF78F.9080102@gmx.at> <530B24BD.7030700@gmx.at> Date: Tue, 17 May 2016 19:30:31 +0100 In-Reply-To: <530B24BD.7030700@gmx.at> (martin rudalics's message of "Mon, 24 Feb 2014 11:53:49 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.93 (darwin) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org, Anders Lindgren X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) martin rudalics writes: >> Another argument of not having a "odd" width is that when splitting windows >> side-by-side, you will end up with an unused gap to the right of almost a >> full character. Steps to repeat: >> >> emacs -Q >> (setq truncate-partial-width-windows nil) C-j >> C-x 3 >> >> Here, the right window have an unused space between the rightmost >> character and the fringe, the space is almost a character wide. It's not >> possible to resize the frame manually to correct this, as the frame can >> only be resized full characters (as it should be). (When >> `truncate-partial-width-windows' is t, the gap is used to display a partial >> character.) >> >> To conclude, I would be much happier if the sum of the fringes and the >> scroll bar would be an even five characters rather than five characters and >> one pixel, as it is today. >> >> The question is if this is due to some display bug (maybe OS X specific) or >> if this is the way it is supposed to work now? > > This used to happen with Emacs 24.3 here and should be gone now. But OS > X still has the old extended fringes code in place - maybe that > interferes. Could you try to remove it - I can't compile for OS X so I > won't do that. If you want to know how, have a look at these changes: I believe this behaviour is no longer present in Emacs 25. I don't think there's anything else in this bug report that needs addressed, and as such, I'll close it in a couple of weeks if nobody objects. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Tue May 17 14:31:42 2016 Received: (at control) by debbugs.gnu.org; 17 May 2016 18:31:42 +0000 Received: from localhost ([127.0.0.1]:56233 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2jmQ-0001fT-5J for submit@debbugs.gnu.org; Tue, 17 May 2016 14:31:42 -0400 Received: from mail-wm0-f53.google.com ([74.125.82.53]:35797) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2jmO-0001fF-HQ for control@debbugs.gnu.org; Tue, 17 May 2016 14:31:40 -0400 Received: by mail-wm0-f53.google.com with SMTP id r12so1597438wme.0 for ; Tue, 17 May 2016 11:31:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=sender:date:message-id:to:from:subject; bh=Iae6myhf3randU7yLwM/wzK9EyI23VRSXKtAwCKKDHU=; b=TyRESIr6/MU9tLSIq47194dp63wCsDD3JKDbdVsIk5JlaEQ7Lc49+ex4RtRqOLOKx3 vquTG8mSiAQUjQoBJ/GONprJrJi0K/EdRV2hei7Ff3Gju+n0/2MkCtZp/3L9WZfQyYb/ 10DqQpT3/k4c7ieOG5Wyt2q+RC4qQS3/zHflGeOzIVjsgprhIy8oPGlCpFfyuY121Zbt 0LPmQXNZyDZbJ08ReRPdXYrSX6xFixowY4Jt9hrsk23BsYonJ1jiaC73RczroCEbgd2o 6JuLZ46Fw99s6nZuOQ355SE+8M59zJGDT67T6G7YnNl2Unza9e8NQ89ulv7s/v5VB7Zx n9bA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:date:message-id:to:from:subject; bh=Iae6myhf3randU7yLwM/wzK9EyI23VRSXKtAwCKKDHU=; b=hsRSNwpA9eSQmBGPLHwB01m9u+eqyvwWn2HWaVQRo24FMXPI9LENjC2eRq8k8Pm6zV A3KtkwDRqrPTJuE30VsSMeIL3cNqzS8kcA2srPW0jzrCpjctEJtC0TnZXF3M8nV19duh J8fwY2dvOJ9WAKIGfLbmVYknPMp2vvfvA/ZQiVUxBNplEzQWypkes1/Br/xj0P8qP18/ 7dIrOAA0csbBrSncRb68Jk7aNwRWNHU+r1ZRGeeDlyZIQrBrwj/CcPHi9k5MZLOm4+6O g7uUW053FF1nvlAUTyOGx7NGMxc2FaJP3ipp+6HzvuaASfUmfkHgJcgApr1CKjRtmDAU 8SwQ== X-Gm-Message-State: AOPr4FXlDHxUAOXM47XViR8lB/rum2S5z3WXubpLCRjrqaaCQj7xV1FAOjDT0fjjX84sug== X-Received: by 10.194.45.169 with SMTP id o9mr2866136wjm.156.1463509895062; Tue, 17 May 2016 11:31:35 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-dcd0-ea5c-d060-789e.holly.idiocy.org. [2001:8b0:3f8:8129:dcd0:ea5c:d060:789e]) by smtp.gmail.com with ESMTPSA id 131sm4934866wmu.17.2016.05.17.11.31.34 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 May 2016 11:31:34 -0700 (PDT) Date: Tue, 17 May 2016 19:31:34 +0100 Message-Id: To: control@debbugs.gnu.org From: Alan Third Subject: control message for bug #16856 X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) tags 16856 unreproducible From debbugs-submit-bounces@debbugs.gnu.org Tue May 17 15:06:08 2016 Received: (at 16856) by debbugs.gnu.org; 17 May 2016 19:06:08 +0000 Received: from localhost ([127.0.0.1]:56276 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2kJk-00048Q-9d for submit@debbugs.gnu.org; Tue, 17 May 2016 15:06:08 -0400 Received: from mail-vk0-f52.google.com ([209.85.213.52]:33367) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2kJi-00047t-Ks for 16856@debbugs.gnu.org; Tue, 17 May 2016 15:06:07 -0400 Received: by mail-vk0-f52.google.com with SMTP id z184so32639608vkg.0 for <16856@debbugs.gnu.org>; Tue, 17 May 2016 12:06:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=EV9XtFMLbczWCLoJZAyoQ24+mMqLN1eMp44ki0rH0b4=; b=zjT3UoaCVAaW28CS/+7WbY2RQIHqbbsw5HbHn0TEmT+VXhF+OrWVUL3duVGAaC1elC FkpsZakMiAv1hFUCUJXGGf3tC7/2trwabcSpHi4bZSW3G4eJxhEKM3lRoVpBd0BI1x24 wD8WvXMwJWzc7w+bzeX1JqUNLeTSZjQ7lk36V8Uly6O2ff54Aspe8wVpI+RBYoajSsH3 zhPJvJB9RTfJfceqio6f3kdgswuz9XxQS89gfySbLraOYZbd7uydX9AUd8WHft6R4pPj Ei+O0fXNUAFjmPWRDumk630QppisG3oNEo1RehTkrgq9mNDnXRCjVZC+vQvOt8jQD5TS trEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=EV9XtFMLbczWCLoJZAyoQ24+mMqLN1eMp44ki0rH0b4=; b=QUjCJtiGbRMtaIMD1zPMxEqgkV/QhQ64lBuRgXOJhMbm4GtAhuAYEqtVBlGOX+GTvO Sh94lGZ2mWVkEN2dhd4oGOn8f4LU7+GV8ZcKoFJneaMqUhfIbic2ROWOC8lesNlF9jp+ jjkVbTOr4khoyZoQ7ow0+QvSBacbEu98DZkNFtNeT3TWW9doBwpH8eWP8u1M3CS07I2o fVkvbRQZePMnXr2A14dhuyKk2abLbOnm3HkxKcoiGd65F9wb72BFsJMQBVLzQn9Z0JXX c9YjEoDpOvOjTU/JO3yZagEGAdb00GoI7aMIG0B2DISlc+3MDUXSIIM9Y9nm8NFZDcK1 4taw== X-Gm-Message-State: AOPr4FW5H19tGGAbynd6GnvoBRiibKm+2hNxK5qEwHi9IOHTPB/jAC9VJYSmnD21fO7Sbk69H5P6aZPkaG/LsA== MIME-Version: 1.0 X-Received: by 10.31.182.84 with SMTP id g81mr1607176vkf.51.1463511961296; Tue, 17 May 2016 12:06:01 -0700 (PDT) Received: by 10.31.214.131 with HTTP; Tue, 17 May 2016 12:06:01 -0700 (PDT) In-Reply-To: References: <530AF78F.9080102@gmx.at> <530B24BD.7030700@gmx.at> Date: Tue, 17 May 2016 21:06:01 +0200 Message-ID: Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe (and a request: width of fringes + scroll bar should be full characters) From: Anders Lindgren To: Alan Third Content-Type: multipart/alternative; boundary=001a1143800093ea7605330e6e2e X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856 Cc: martin rudalics , 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a1143800093ea7605330e6e2e Content-Type: text/plain; charset=UTF-8 Hi! I can repeat this using a slightly different recipe: emacs -Q (setq truncate-partial-width-windows nil) C-x 3 C-x o C-u 37 x Here, the cursor which is in text area blinks, while the part in the fringe doesn't. Wait until the the cursor stop blinking C-a Now, the right fringe contains half a cursor. -- Anders On Tue, May 17, 2016 at 8:30 PM, Alan Third wrote: > martin rudalics writes: > > >> Another argument of not having a "odd" width is that when splitting > windows > >> side-by-side, you will end up with an unused gap to the right of almost > a > >> full character. Steps to repeat: > >> > >> emacs -Q > >> (setq truncate-partial-width-windows nil) C-j > >> C-x 3 > >> > >> Here, the right window have an unused space between the > rightmost > >> character and the fringe, the space is almost a character wide. It's not > >> possible to resize the frame manually to correct this, as the frame can > >> only be resized full characters (as it should be). (When > >> `truncate-partial-width-windows' is t, the gap is used to display a > partial > >> character.) > >> > >> To conclude, I would be much happier if the sum of the fringes and the > >> scroll bar would be an even five characters rather than five characters > and > >> one pixel, as it is today. > >> > >> The question is if this is due to some display bug (maybe OS X > specific) or > >> if this is the way it is supposed to work now? > > > > This used to happen with Emacs 24.3 here and should be gone now. But OS > > X still has the old extended fringes code in place - maybe that > > interferes. Could you try to remove it - I can't compile for OS X so I > > won't do that. If you want to know how, have a look at these changes: > > I believe this behaviour is no longer present in Emacs 25. > > I don't think there's anything else in this bug report that needs > addressed, and as such, I'll close it in a couple of weeks if nobody > objects. > -- > Alan Third > --001a1143800093ea7605330e6e2e Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi!

I can repeat this using a slightly = different recipe:

=C2=A0 =C2=A0 emacs -Q
=C2=A0 =C2=A0=C2=A0(se= tq truncate-partial-width-windows nil)
=C2=A0 =C2=A0 C-x 3
=C2=A0 =C2=A0 C-x o
=C2=A0 =C2=A0 = C-u 37 x
=C2=A0 =C2=A0 =C2=A0 =C2=A0Here, the cursor which is in text area blinks= , while the part in the fringe doesn't.

=C2=A0 =C2=A0 =C2=A0 =C2=A0Wait until = the the cursor stop blinking
=C2=A0 =C2=A0 C-a
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Now, the rig= ht fringe contains half a cursor.

=C2=A0 =C2=A0 -- Anders


On T= ue, May 17, 2016 at 8:30 PM, Alan Third <alan@idiocy.org> wrot= e:
martin rudalics <<= a href=3D"mailto:rudalics@gmx.at">rudalics@gmx.at> writes:

>> Another argument of not having a "odd" width is that whe= n splitting windows
>> side-by-side, you will end up with an unused gap to the right of a= lmost a
>> full character. Steps to repeat:
>>
>>=C2=A0 =C2=A0 =C2=A0emacs -Q
>>=C2=A0 =C2=A0 =C2=A0(setq truncate-partial-width-windows nil) C-j >>=C2=A0 =C2=A0 =C2=A0C-x 3
>>
>>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Here, the right window have an un= used space between the rightmost
>> character and the fringe, the space is almost a character wide. It= 's not
>> possible to resize the frame manually to correct this, as the fram= e can
>> only be resized full characters (as it should be). (When
>> `truncate-partial-width-windows' is t, the gap is used to disp= lay a partial
>> character.)
>>
>> To conclude, I would be much happier if the sum of the fringes and= the
>> scroll bar would be an even five characters rather than five chara= cters and
>> one pixel, as it is today.
>>
>> The question is if this is due to some display bug (maybe OS X spe= cific) or
>> if this is the way it is supposed to work now?
>
> This used to happen with Emacs 24.3 here and should be gone now.=C2=A0= But OS
> X still has the old extended fringes code in place - maybe that
> interferes.=C2=A0 Could you try to remove it - I can't compile for= OS X so I
> won't do that.=C2=A0 If you want to know how, have a look at these= changes:

I believe this behaviour is no longer present in Emacs 25.

I don't think there's anything else in this bug report that needs addressed, and as such, I'll close it in a couple of weeks if nobody objects.
--
Alan Third

--001a1143800093ea7605330e6e2e-- From debbugs-submit-bounces@debbugs.gnu.org Tue May 17 17:15:08 2016 Received: (at 16856) by debbugs.gnu.org; 17 May 2016 21:15:08 +0000 Received: from localhost ([127.0.0.1]:56321 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2mKa-0000x1-8r for submit@debbugs.gnu.org; Tue, 17 May 2016 17:15:08 -0400 Received: from mail-wm0-f46.google.com ([74.125.82.46]:36214) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b2mKY-0000wE-1A for 16856@debbugs.gnu.org; Tue, 17 May 2016 17:15:06 -0400 Received: by mail-wm0-f46.google.com with SMTP id n129so157244042wmn.1 for <16856@debbugs.gnu.org>; Tue, 17 May 2016 14:15:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=o8kGXdF0PZlz9pZ7t1fc9/uvXpyHVIejMWiupe1rKsM=; b=jrzosZySFb3mN0vCjd+3SUcIpx6CJqQAZT5hYh7CItLk1J/9sq4d4CLnv6mx3D+px3 +qMNoBBdRmjJtVqiu0hmb5AL+pWXAzh6TX/DBvXUQ1j53N7ovxXggQdSo4xLydX5+NRq oPVJWBz54vpF6WD71h3Dlg7AZQ6HVHP/vx+MUBIEObc+EVvf16hW2y8fV6UuEYI22Pny kCgEo+GL7y1AzUteATM1i82/1RNVoYrML5t/9WUlqLnOpuQy6GrEoe5rsfZsSM/84nSR xHo9d+vxsHf3gLGw0NhweiD7zG117lha9byBcy3mfhE+9wyXLp7gclFmp2/D4QHRi4ly zoKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=o8kGXdF0PZlz9pZ7t1fc9/uvXpyHVIejMWiupe1rKsM=; b=WkISBqHT+ukt3g09TIDXU1L9nYliPR8XDbrgD7PIkEda9AHx+vh1IhZNmg2hSRemMo oWwX/K0qQugKiFchUYRDIQUS0SMsUX3Y19hwjatd7jwC/LUoOG4w53U6PTU8cbv0ZKqV ZJSCOV/dqDHQY5Mun8BpWKeAIUA+AgmtY7WkZJh4oZ15fZKDqf51I+L7qMqQDjD1RpHD 1N9dPnEYscOstwK4ow715+NDkP1v7b+WXoon9LqOPcdvZgm4J6JeDzkkbhbvLCIbvBW7 0NwI4V0sDa7T+a09qVKSQuqduMq8/zNmTASUa6SsP64E9OBCU74mpxHqaGI/yNYQZNs8 WIAw== X-Gm-Message-State: AOPr4FVO3bgsk0lpLVBgg6t7FGa6a7Ds5XJbS6Q3C3xLJbq5mJPWveKI+C6NFOsgiLmgJQ== X-Received: by 10.28.102.8 with SMTP id a8mr3701085wmc.54.1463519700501; Tue, 17 May 2016 14:15:00 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-dcd0-ea5c-d060-789e.holly.idiocy.org. [2001:8b0:3f8:8129:dcd0:ea5c:d060:789e]) by smtp.gmail.com with ESMTPSA id j6sm5068108wjb.29.2016.05.17.14.14.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 May 2016 14:14:59 -0700 (PDT) Date: Tue, 17 May 2016 22:14:15 +0100 From: Alan Third To: Anders Lindgren Subject: [PATCH] Prevent cursor from over-drawing the fringe Message-ID: <20160517211415.GA85076@breton.holly.idiocy.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 16856 Cc: martin rudalics , 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) src/nsterm.m (ns_draw_window_cursor): Reduce clip area from ANY_AREA to TEXT_AREA. (bug#16856) --- src/nsterm.m | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/nsterm.m b/src/nsterm.m index 1d48c04..5eb4c8f 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -2873,9 +2873,8 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar cursors. r.size.height = h; r.size.width = w->phys_cursor_width; - /* TODO: only needed in rare cases with last-resort font in HELLO.. - should we do this more efficiently? */ - ns_clip_to_row (w, glyph_row, ANY_AREA, NO); /* do ns_focus(f, &r, 1); if remove */ + /* Prevent the cursor from being drawn outside the text area. */ + ns_clip_to_row (w, glyph_row, TEXT_AREA, NO); /* do ns_focus(f, &r, 1); if remove */ face = FACE_FROM_ID (f, phys_cursor_glyph->face_id); -- I believe this fixes it. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Fri May 20 15:34:01 2016 Received: (at 16856) by debbugs.gnu.org; 20 May 2016 19:34:01 +0000 Received: from localhost ([127.0.0.1]:59345 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b3qBM-0000SQ-MN for submit@debbugs.gnu.org; Fri, 20 May 2016 15:34:00 -0400 Received: from mail-vk0-f68.google.com ([209.85.213.68]:33027) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b3qBL-0000SB-1X for 16856@debbugs.gnu.org; Fri, 20 May 2016 15:33:59 -0400 Received: by mail-vk0-f68.google.com with SMTP id y2so10193524vka.0 for <16856@debbugs.gnu.org>; Fri, 20 May 2016 12:33:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=blyp0rqtVRrTeK4CbTyb5fmjciCRYq2dM1aZNOqQmpk=; b=Reu4I95qtHHYJBwX2gEdEEmPsZ/WJCBnNj9RuHJW9IdrKzK9P4wfWiX+MKGY/qn0hF fbBMFONGs8gUr/uKaVbYxNAJwQBCMBHznGX1ElT54mjUwuyV2eTq4qlvH+lfPZcOQuVt hecLLI/uWMhVn0zcYL0vO4/9IcEwjI/cZQdaCu0bj2a1DkmnBFPCNgYWbBkgUVuUqsg7 8pr9LXDEWZwiZXkrmyftQWc1QcCuTlvEoKePIc7M6Ey8s0bu8uijYUUTESFOOdRkpuxy 5xmFUhQqBSkc02Medqo00bG4CtvBTaTBLiYU6CiUJvWqImMDyt6usjPwPtTF7viwd9rW hEcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=blyp0rqtVRrTeK4CbTyb5fmjciCRYq2dM1aZNOqQmpk=; b=Mr+3/5qMdaJWHdkKH0Trebrf4iXcZYlZrrPLmSK3XHbCEfKDqxg1u56K9+KYsZukTk Fx62N3S0GhI6YrvTuvuc4V3fEvoTYmcqXJl37fCGR1DxDhD+tpOQ2K+hZFYqsCPSuWiG QNmBtM6ZUy5YtRIgXK15YkzZa2P4qb4IoVD1W332Pen5zaGCclM+htqE7vE2wMWz4JWx bNlYuvTTlqB0kH3Z+RmOm0OBaQq7e/3DpPDFacmMMKrQ1f7G8TqObiNYjbJxfzta1Evr x+aRgFZ3cAr25rQuf9RhCM8bURS4OpolAyLym3P3fBZ5lkVsJDmrp/dFs3Ij8fVMJrTr /FMg== X-Gm-Message-State: AOPr4FV9j3rsHtmRCXVwyzoNYSyk41CwkG2uk4V05zD3kXDotQMCRBL0Peam8/EBuK1JrtmzixGy++C3CRDH1A== MIME-Version: 1.0 X-Received: by 10.159.33.132 with SMTP id 4mr2653662uac.43.1463772832219; Fri, 20 May 2016 12:33:52 -0700 (PDT) Received: by 10.31.216.195 with HTTP; Fri, 20 May 2016 12:33:52 -0700 (PDT) In-Reply-To: <20160517211415.GA85076@breton.holly.idiocy.org> References: <20160517211415.GA85076@breton.holly.idiocy.org> Date: Fri, 20 May 2016 21:33:52 +0200 Message-ID: Subject: Re: [PATCH] Prevent cursor from over-drawing the fringe From: Anders Lindgren To: Alan Third Content-Type: multipart/alternative; boundary=001a1135dc96b250c805334b2b86 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856 Cc: martin rudalics , 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a1135dc96b250c805334b2b86 Content-Type: text/plain; charset=UTF-8 Hi! I gave this patch a try. It works well, the ns port now behaves like the win32 and gtk+ parts of Emacs. Do you want me to push it to master? -- Anders Ps. When the text area doesn't partially overlap a column, the cursor can be drawn in the fringe. It's a bit unfortunate that when it do overlap, only the part of the cursor in the text area is drawn. A worst case scenario is that only a single pixel of the cursor is visible. An ideal solution would be to draw the cursor partially in the text area and partially in the fringe, but without leaving garbage behind when moved. However, this is nothing that we can solve here and now as it would require change to all emacs ports and possibly the core system. On Tue, May 17, 2016 at 11:14 PM, Alan Third wrote: > src/nsterm.m (ns_draw_window_cursor): Reduce clip area from ANY_AREA to > TEXT_AREA. (bug#16856) > --- > src/nsterm.m | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/src/nsterm.m b/src/nsterm.m > index 1d48c04..5eb4c8f 100644 > --- a/src/nsterm.m > +++ b/src/nsterm.m > @@ -2873,9 +2873,8 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar > cursors. > r.size.height = h; > r.size.width = w->phys_cursor_width; > > - /* TODO: only needed in rare cases with last-resort font in HELLO.. > - should we do this more efficiently? */ > - ns_clip_to_row (w, glyph_row, ANY_AREA, NO); /* do ns_focus(f, &r, 1); > if remove */ > + /* Prevent the cursor from being drawn outside the text area. */ > + ns_clip_to_row (w, glyph_row, TEXT_AREA, NO); /* do ns_focus(f, &r, 1); > if remove */ > > > face = FACE_FROM_ID (f, phys_cursor_glyph->face_id); > -- > > I believe this fixes it. > > -- > Alan Third > --001a1135dc96b250c805334b2b86 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi!

I gave this patch a try.
=
It works well, the ns port now behaves like the win32 and gt= k+ parts of Emacs.

Do you want me to push it = to master?

=C2=A0 =C2=A0 -- Anders

Ps. When the text area doesn't partially overlap a= column, the cursor can be drawn in the fringe. It's a bit unfortunate = that when it do overlap, only the part of the cursor in the text area is dr= awn. A worst case scenario is that only a single pixel of the cursor is vis= ible. An ideal solution would be to draw the cursor partially in the text a= rea and partially in the fringe, but without leaving garbage behind when mo= ved. However, this is nothing that we can solve here and now as it would re= quire change to all emacs ports and possibly the core system.


On Tue, May 17, 2016 at 11:14 PM, Alan Third <alan@idiocy.org> wrote:
src/nsterm.m (ns_draw_window_cu= rsor): Reduce clip area from ANY_AREA to
TEXT_AREA. (bug#16856)
---
=C2=A0src/nsterm.m | 5 ++---
=C2=A01 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/nsterm.m b/src/nsterm.m
index 1d48c04..5eb4c8f 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -2873,9 +2873,8 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar = cursors.
=C2=A0 =C2=A0r.size.height =3D h;
=C2=A0 =C2=A0r.size.width =3D w->phys_cursor_width;

-=C2=A0 /* TODO: only needed in rare cases with last-resort font in HELLO..=
-=C2=A0 =C2=A0 =C2=A0should we do this more efficiently? */
-=C2=A0 ns_clip_to_row (w, glyph_row, ANY_AREA, NO); /* do ns_focus(f, &= ;r, 1); if remove */
+=C2=A0 /* Prevent the cursor from being drawn outside the text area. */ +=C2=A0 ns_clip_to_row (w, glyph_row, TEXT_AREA, NO); /* do ns_focus(f, &am= p;r, 1); if remove */


=C2=A0 =C2=A0face =3D FACE_FROM_ID (f, phys_cursor_glyph->face_id);
--

I believe this fixes it.

--
Alan Third

--001a1135dc96b250c805334b2b86-- From debbugs-submit-bounces@debbugs.gnu.org Sat May 21 03:35:42 2016 Received: (at 16856) by debbugs.gnu.org; 21 May 2016 07:35:42 +0000 Received: from localhost ([127.0.0.1]:59506 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b41Rm-0000jb-BW for submit@debbugs.gnu.org; Sat, 21 May 2016 03:35:42 -0400 Received: from mail-wm0-f53.google.com ([74.125.82.53]:36654) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b41Rl-0000jP-1X for 16856@debbugs.gnu.org; Sat, 21 May 2016 03:35:41 -0400 Received: by mail-wm0-f53.google.com with SMTP id n129so10951458wmn.1 for <16856@debbugs.gnu.org>; Sat, 21 May 2016 00:35:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=12ups4B6AI0O3lZxDWaXyu6PCtzM0OfdAgQ+o73J3qM=; b=JYxHt3hpvl8dzbzD/OzgQR9FgUvzv8PuNC4Y/pGiALpb/hLrt8wKZ6v7pcUzBhTl/9 WBZtyW06YJNQ5d3VRRoVbNeQcW+cmd1ukoPX0GLFW+67F3oVjzSbS68ENQVOcMijmvro Fof1GxErIBlrSZazU3LDUNCmxs+hKLWnHi7HOJ/5TuLCtOSKYfVE50/kwDrf7qch3BkC td+XVZOg8bQNzu5MDdYVPI4Uh8aSiywAtZzDuibCugXZqIAHxam6MNbIcK3ieOgSBP1W dBNNoS3CHp/fenZUugJUzA2wgxRQzXEi2v+jgoAYgwRRKPt7S6VDOroTfmZG4EICPGlm +EHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=12ups4B6AI0O3lZxDWaXyu6PCtzM0OfdAgQ+o73J3qM=; b=fce2X8isZ+cOXp9bkPP3qjrT5nM/9od4Q7VwsF2ruBlUw6TQCxt0frcUu6fbusekjG 52Tg2kgztD/yBe1GOIEEkTzGiBy0pTmBEEyTkk8bLJlE1fyLK0h87hwmAgZxnFc0gmOb Y3k86efwS4cgpVpD1zxQGQPah+GzlwTXW0jQA64eFg6P+mZuOW60HGG/hHVNPXiHWDi9 DjMSeBKqaRQ4Wym3qcjSl8IXNEEj/TpByL54rhiUPBe+Jy+avljj5M3HiDoMtNgDbGZd YWscXxDcCLvsBtGk+Ei3ef/3vPkj7XpTf6/eDmpjwcjv8sUSCZ1fJSzMzG6EPLbu0/AV OT4A== X-Gm-Message-State: AOPr4FX6hTwyzb+tzIkau5i9/cBps8rsLiiYVt3M4mUjds66Qg0IINd4LGf4f6FApbymww== X-Received: by 10.28.7.197 with SMTP id 188mr7707653wmh.101.1463816135314; Sat, 21 May 2016 00:35:35 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-28ae-bb60-ff32-7c2a.holly.idiocy.org. [2001:8b0:3f8:8129:28ae:bb60:ff32:7c2a]) by smtp.gmail.com with ESMTPSA id c185sm1419880wme.9.2016.05.21.00.35.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 21 May 2016 00:35:34 -0700 (PDT) Date: Sat, 21 May 2016 08:35:36 +0100 From: Alan Third To: Anders Lindgren Subject: Re: [PATCH] Prevent cursor from over-drawing the fringe Message-ID: <20160521073536.GA95517@breton.holly.idiocy.org> References: <20160517211415.GA85076@breton.holly.idiocy.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 16856 Cc: martin rudalics , 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) On Fri, May 20, 2016 at 09:33:52PM +0200, Anders Lindgren wrote: > Hi! > > I gave this patch a try. > > It works well, the ns port now behaves like the win32 and gtk+ parts of > Emacs. > > Do you want me to push it to master? If you could, thanks. > Ps. When the text area doesn't partially overlap a column, the cursor can > be drawn in the fringe. It's a bit unfortunate that when it do overlap, > only the part of the cursor in the text area is drawn. A worst case > scenario is that only a single pixel of the cursor is visible. An ideal > solution would be to draw the cursor partially in the text area and > partially in the fringe, but without leaving garbage behind when moved. > However, this is nothing that we can solve here and now as it would require > change to all emacs ports and possibly the core system. Yeah, I was thinking about this but couldn't really see much of a way around it. I checked the gtk+ and windows ports operated this way just to be sure I wasn't introducing another bug as it does seem wrong. :) -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Sat May 21 15:08:01 2016 Received: (at 16856-done) by debbugs.gnu.org; 21 May 2016 19:08:01 +0000 Received: from localhost ([127.0.0.1]:60167 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b4CFl-0005Cj-2p for submit@debbugs.gnu.org; Sat, 21 May 2016 15:08:01 -0400 Received: from mail-vk0-f68.google.com ([209.85.213.68]:34424) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b4CFj-0005CV-HY for 16856-done@debbugs.gnu.org; Sat, 21 May 2016 15:07:59 -0400 Received: by mail-vk0-f68.google.com with SMTP id v68so21389298vka.1 for <16856-done@debbugs.gnu.org>; Sat, 21 May 2016 12:07:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=rYgBpwHeYloVZHZCR0GZxhWAxU2eN43Cny4dKudYKeg=; b=Cs4XVnHrQUjxzQErQEgBUkY3DUhokk3ZopwZV//69kXMv1QiTT5wg4inSjRmaPHXfP T5u61pOq+M4OtfIdprOHZ+65+O2BXNEA8ZZC9fi90GCjlPjc2kRlQzHBAiEggBAuZFGP V/a5omIMC/yCn0irUy87Ou/ETxD4faLdcEY1r04CTdG7JPtSVeBd0t2urnc2rMVjhfWu Fl12kt+8w3STq8DqcW66VMyUP3JvTrCy+As8ERv1w1bEOE0pZ/n8Gn+JG5NMSeL6lV2e 0zrgoghdqHlTxWGgf0XHWELR1vlDimsf4PuRvHfMlEDD8KC4TjvPjcAKQKYcf7MkyY7/ n4PQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=rYgBpwHeYloVZHZCR0GZxhWAxU2eN43Cny4dKudYKeg=; b=fIg1LNEm9T0GbIeqEMI2i5UFTen66e/tCVeqttXZZEFJWhR8qoZWG+21PC5wlcmouQ yForRbgHCRhoGTm8s5xBMpGphXuFQ/2LMwigs3NDVl8OOdp3mdmN6BbYPnt3X/FpX/PG +ii9YJxmCbgEb/yEQ83ITwP/ZUwv2lMR0GEd7Sn8hDJ77UlBD2CsooWqRZ6GDK1Z/eaS p+oX+uyIxb2jerrCWctuU+PHoe0r7TJjOqucHtkE2E4Ph3NLgv6W88QlAWQ5773bGqqz EXFTTj491ac+uBe0s3BzvefM0fgUs79DLTs97AWZNB/8QZFUE1W9yS12En3eDK6GaZ/3 XsrQ== X-Gm-Message-State: AOPr4FXdnXwcNrjK7y/BSkMtl+63M4pg96M8llFiuR8aqQ3hVnvXb9qwsgYQlzBTlHEEIOikaw5RUP2cXZMmyw== MIME-Version: 1.0 X-Received: by 10.176.66.3 with SMTP id i3mr5296992uai.47.1463857673822; Sat, 21 May 2016 12:07:53 -0700 (PDT) Received: by 10.31.216.195 with HTTP; Sat, 21 May 2016 12:07:53 -0700 (PDT) In-Reply-To: <20160521073536.GA95517@breton.holly.idiocy.org> References: <20160517211415.GA85076@breton.holly.idiocy.org> <20160521073536.GA95517@breton.holly.idiocy.org> Date: Sat, 21 May 2016 21:07:53 +0200 Message-ID: Subject: Re: [PATCH] Prevent cursor from over-drawing the fringe From: Anders Lindgren To: Alan Third Content-Type: multipart/alternative; boundary=94eb2c0b5038a66ae405335eec88 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856-done Cc: martin rudalics , 16856-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --94eb2c0b5038a66ae405335eec88 Content-Type: text/plain; charset=UTF-8 Closed. Fixed by Alan Third, see the following for details: http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=e5015c5d9632a0bf685c093249ae4a7d3e825b13 -- Anders On Sat, May 21, 2016 at 9:35 AM, Alan Third wrote: > On Fri, May 20, 2016 at 09:33:52PM +0200, Anders Lindgren wrote: > > Hi! > > > > I gave this patch a try. > > > > It works well, the ns port now behaves like the win32 and gtk+ parts of > > Emacs. > > > > Do you want me to push it to master? > > If you could, thanks. > > > Ps. When the text area doesn't partially overlap a column, the cursor can > > be drawn in the fringe. It's a bit unfortunate that when it do overlap, > > only the part of the cursor in the text area is drawn. A worst case > > scenario is that only a single pixel of the cursor is visible. An ideal > > solution would be to draw the cursor partially in the text area and > > partially in the fringe, but without leaving garbage behind when moved. > > However, this is nothing that we can solve here and now as it would > require > > change to all emacs ports and possibly the core system. > > Yeah, I was thinking about this but couldn't really see much of a way > around it. I checked the gtk+ and windows ports operated this way just > to be sure I wasn't introducing another bug as it does seem wrong. :) > -- > Alan Third > --94eb2c0b5038a66ae405335eec88 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Closed.

Fixed by Alan Third, see the fo= llowing for details:


=C2=A0 =C2=A0 -= - Anders

On Sat, May 21, 2016 at 9:35 AM, Alan Third <alan@idiocy.org> wrote:
On Fri, May 20= , 2016 at 09:33:52PM +0200, Anders Lindgren wrote:
> Hi!
>
> I gave this patch a try.
>
> It works well, the ns port now behaves like the win32 and gtk+ parts o= f
> Emacs.
>
> Do you want me to push it to master?

If you could, thanks.

> Ps. When the text area doesn't partially overlap a column, the cur= sor can
> be drawn in the fringe. It's a bit unfortunate that when it do ove= rlap,
> only the part of the cursor in the text area is drawn. A worst case > scenario is that only a single pixel of the cursor is visible. An idea= l
> solution would be to draw the cursor partially in the text area and > partially in the fringe, but without leaving garbage behind when moved= .
> However, this is nothing that we can solve here and now as it would re= quire
> change to all emacs ports and possibly the core system.

Yeah, I was thinking about this but couldn't really see much of = a way
around it. I checked the gtk+ and windows ports operated this way just
to be sure I wasn't introducing another bug as it does seem wrong. :) --
Alan Third

--94eb2c0b5038a66ae405335eec88-- From unknown Wed Jun 18 23:04:59 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 19 Jun 2016 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 17 02:36:52 2016 Received: (at control) by debbugs.gnu.org; 17 Jul 2016 06:36:52 +0000 Received: from localhost ([127.0.0.1]:54206 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOfh5-0000Jw-UR for submit@debbugs.gnu.org; Sun, 17 Jul 2016 02:36:52 -0400 Received: from mail-pf0-f179.google.com ([209.85.192.179]:34439) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOfh4-0000Jj-S3 for control@debbugs.gnu.org; Sun, 17 Jul 2016 02:36:51 -0400 Received: by mail-pf0-f179.google.com with SMTP id p64so20072631pfb.1 for ; Sat, 16 Jul 2016 23:36:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:content-transfer-encoding:subject:message-id:date:to :mime-version; bh=61kHYbz/f9Qc10f2PQ55FcDsbq2fMt4mL3YhisoytAw=; b=VfxYTYLsJU6GZCd+zr7bMcqiz31w9JQKj1k7kYymQjI48SG1ceNW0G6Nrw/WGC0byR KgaNgQmWad5qC3mCp8PNrSExRalhlsceqEf4k0DMjfgxenHbFgSR9qlAc6ytVmv4oImH eiScv3wEEM6Au/uqmWtzMrMiG4FbVUeGhygdME/JSe4MvBfcZsLORXp5Rdq9WhqMESDn lK99O0CGi7h2nKRFwD3TVJyNP4cKiWRKTPwayTmn7PsK48JNRgrbNu8RB4JLkX3zMAfx UP31cDBgOT4mUNq94CMSRwvSGUyHIl+TQFEiDMOl6tRtSn/FI6kX4HpztjK3tgG7Pj0H 5X6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:content-transfer-encoding:subject :message-id:date:to:mime-version; bh=61kHYbz/f9Qc10f2PQ55FcDsbq2fMt4mL3YhisoytAw=; b=F4WSlNdS1DOzQnZ8D7+n2hInhlc8+wwFO1rzydxj1JdSJj85U6GoeK13EejYllGZui zbQguuXPFT6Af7OxqPZqh8jwNxScNb3jsmXgX/kvpkVU/exdxEsylTLrhWjWrkfNtu5l Ma7JMtjkKB1pLJj2ufoKZ6BZeJa0cWNN1W4Sa3hT+pO8gIfiEP3ryMR4/+f81GAs1+Mz ME5ZG6eY/6Bpcbjqkr4qbC9rv3kiSfxB0B3Ag6F+KPpSS9XeGXycxv9fv0cOblrg0mtS 2zZ8sKqN+YPVXTctt6Ke5k2Z8jTddyDge6yCdYeAqSSak91aV2WZ4TtUxt3SzLgfssin GTzA== X-Gm-Message-State: ALyK8tLNyA55Cmi8Ow9iqxYAKHWkXS7A0ztwh6ATughW33DjAV9tFKreqZVOue/YATa5Nw== X-Received: by 10.98.130.137 with SMTP id w131mr35714727pfd.5.1468737404907; Sat, 16 Jul 2016 23:36:44 -0700 (PDT) Received: from [172.16.21.150] ([14.39.48.5]) by smtp.gmail.com with ESMTPSA id i137sm3456384pfe.64.2016.07.16.23.36.42 for (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 16 Jul 2016 23:36:43 -0700 (PDT) From: David Reitter Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Subject: Message-Id: <316591B7-7EB7-457A-B3B4-003261F40F9D@gmail.com> Date: Sun, 17 Jul 2016 15:36:40 +0900 To: control@debbugs.gnu.org Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) X-Mailer: Apple Mail (2.3124) X-Spam-Score: 1.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: unarchive 16856 [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (david.reitter[at]gmail.com) -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [209.85.192.179 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.192.179 listed in wl.mailspike.net] 2.0 BLANK_SUBJECT Subject is present but empty 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.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: unarchive 16856 [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.192.179 listed in wl.mailspike.net] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [209.85.192.179 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (david.reitter[at]gmail.com) 0.0 TVD_SPACE_RATIO No description available. 2.0 BLANK_SUBJECT Subject is present but empty 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid unarchive 16856 From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 17 02:57:54 2016 Received: (at 16856) by debbugs.gnu.org; 17 Jul 2016 06:57:54 +0000 Received: from localhost ([127.0.0.1]:54228 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOg1R-0002Of-Q0 for submit@debbugs.gnu.org; Sun, 17 Jul 2016 02:57:54 -0400 Received: from mail-pa0-f66.google.com ([209.85.220.66]:34542) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOg1P-0002OR-EC for 16856@debbugs.gnu.org; Sun, 17 Jul 2016 02:57:52 -0400 Received: by mail-pa0-f66.google.com with SMTP id hh10so8891992pac.1 for <16856@debbugs.gnu.org>; Sat, 16 Jul 2016 23:57:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:subject:message-id:date:to:mime-version; bh=z2Z3RsQn297jQu/CO7s9vTP93QH+o636VWBGLiPwZ3s=; b=ORXNk8YC7jbvFvrbPgZNGWl/MCR5hq+0taosF64CxnDWNVYG0qz6lzOZ8FsnvhLRCs 2ndjQJPFPlBAIERk7bivAsZlRbZfzYiFmCiU2Q3zGNPKjOz2PEHWDDU2S5wpaB8GMYx4 IEaWijR22Uwg8v3OhTLMaqMw8/NE8lEYa0Q/AOyEk2HIpGKNQtoW1FliZwcd3ZDbj2bw 7Jr8nYW+n0bVLDpu9zmWKuBmg+Dd2z+kdE3SN3tV3dK1pxyjcmyhpflM9LLcGyhH+1b8 L/jvO0GqS12pk3HgMGMlI1jC5hQF2lQlCqZWSMVr759EJNLdkY3xaHcZCy+srJmBwVJw Pi5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:subject:message-id:date:to:mime-version; bh=z2Z3RsQn297jQu/CO7s9vTP93QH+o636VWBGLiPwZ3s=; b=EysIc+xKFCnjaNrECzn9aKY1rNAOqYeFWOL2z+UnuibsQ3C26GNW/xjaVX8ccJsi9Y /aiiqi75TcI3Z4mzsRK3iJhZP5LOCd19JzOOwE0KXRDzin4xKoVzhmhN/GiPCtOdvKcz F7QxTOSuw+aXoBXy1Ow3AYRqe1i58SUc1xaXTxyO9DGHwcoDKuAElFc5TNFgxfjcnjcQ pIWIvFw3VMFemDs/yJhJauF0VinQc84gWFNgsh+69UFGFvBKQj+NKa7nLGh3Rc0GzcQ5 CO8xHc1YatRbI1SnMxZiUV7EIS1BK7IvWnFlV5V/GzdgxR/1EdhyvRGssRzcSXN0G3Tm DqOQ== X-Gm-Message-State: ALyK8tIevWG88l7DCEWdVP76TlQJe9Qppb0VpcdgBlagyLsSf1ENvSo7gF8wFmvZYpUKJQ== X-Received: by 10.66.136.8 with SMTP id pw8mr34201385pab.110.1468738665384; Sat, 16 Jul 2016 23:57:45 -0700 (PDT) Received: from [172.30.1.18] ([59.5.40.209]) by smtp.gmail.com with ESMTPSA id p67sm1327444pfg.22.2016.07.16.23.57.42 for <16856@debbugs.gnu.org> (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 16 Jul 2016 23:57:44 -0700 (PDT) From: David Reitter Content-Type: multipart/alternative; boundary="Apple-Mail=_30894975-2BD3-47C3-85F8-DEA6E7E5E52A" Subject: bug#16856: 24.3.50; Cursor leaves garbage in fringe Message-Id: <4F549330-E8CE-41A1-8911-3CD55B837CD5@gmail.com> Date: Sun, 17 Jul 2016 15:57:39 +0900 To: 16856@debbugs.gnu.org Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) X-Mailer: Apple Mail (2.3124) X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 16856 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.7 (/) --Apple-Mail=_30894975-2BD3-47C3-85F8-DEA6E7E5E52A Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 I don=E2=80=99t think that bea0f95 (May 21, nsterm.m) fully fixed this = problem. I=E2=80=99ve had several =E2=80=9Cappearances=E2=80=9D of the = ominous garbage in the right fringe yesterday. This was after applying your patch (and removing my workaround). The workaround is shown below, but at the time it only worked with = cursor-type (bar . 2), not (bar . 3). I haven=E2=80=99t checked with = your change. diff --git a/src/xdisp.c b/src/xdisp.c index b43ce61..389fea7 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -2018,6 +2018,13 @@ get_glyph_string_clip_rects (struct glyph_string = *s, NativeRectangle *rects, int /* This is a text line that may be partially visible. */ r.x =3D window_box_left (s->w, s->area); r.width =3D window_box_width (s->w, s->area); + + /* Aquamacs workaround - Because the cursor is drawn without = limiting focus to the + window box, but it is removed by writing glyph and nothing into = the right margin, + while focus is applied to the window box, parts of the cursor = may remain visible. + This is a stop-gap measure that fails if the cursor is (bar . = 3) or wider. */ + r.width +=3D 1; + r.height =3D s->row->visible_height; } --Apple-Mail=_30894975-2BD3-47C3-85F8-DEA6E7E5E52A Content-Type: multipart/related; type="text/html"; boundary="Apple-Mail=_225590C5-E79D-44DD-9EFE-ABDC123AAB47" --Apple-Mail=_225590C5-E79D-44DD-9EFE-ABDC123AAB47 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 I = don=E2=80=99t think that bea0f95 (May 21, nsterm.m) fully fixed = this problem.  I=E2=80=99ve had several =E2=80=9Cappearances=E2=80=9D= of the ominous garbage in the right fringe yesterday.

This was after applying your patch (and = removing my workaround).

The workaround is shown below, but at the time it only worked = with cursor-type (bar . 2), not (bar . 3).  I haven=E2=80=99t = checked with your change.







diff --git a/src/xdisp.c b/src/xdisp.c
index = b43ce61..389fea7 100644
--- a/src/xdisp.c
+++ = b/src/xdisp.c
@@ -2018,6 +2018,13 @@ = get_glyph_string_clip_rects (struct glyph_string *s, NativeRectangle = *rects, int
       /* This is a text = line that may be partially visible.  */
    =    r.x =3D window_box_left (s->w, s->area);
       r.width =3D window_box_width = (s->w, s->area);
+
+     =  /* Aquamacs workaround - Because the cursor is drawn without = limiting focus to the
+        window = box, but it is removed by writing glyph and nothing into the right = margin,
+        while focus is = applied to the window box, parts of the cursor may remain visible.
+        This is a stop-gap measure that = fails if the cursor is (bar . 3) or wider. */
+   =    r.width +=3D 1;
+
    =    r.height =3D s->row->visible_height;
     }

= --Apple-Mail=_225590C5-E79D-44DD-9EFE-ABDC123AAB47 Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="Screen Shot 2016-07-16 at 6.35.30 PM.png" Content-Type: image/png; x-unix-mode=0644; name="Screen Shot 2016-07-16 at 6.35.30 PM.png" Content-Id: <83D49DC1-7E8F-4199-8C5A-6BEE540B609D@.> iVBORw0KGgoAAAANSUhEUgAABs4AAACgCAYAAACsVJmtAAAMGmlDQ1BJQ0MgUHJvZmlsZQAASImV VwdUU0kXnldSCAktEAEpoTdBepXeBQHpYCMkAUIJIRBU7MqigmsXC4qKroAouBZAFhURO4uAvW5Q UVHWxYINlX+SALruX85/z5k337tz753v3jfzzgwAivYsgSATVQIgi58njAz0YcYnJDJJYkAE6oAK nIEdi50r8I6ICAVQRvu/y7sbAJH0Vy0lsf45/l9FmcPNZQOARECczMllZ0F8FABcky0Q5gFA6IR6 g9l5Agl+C7GqEBIEgEiW4FQZ1pLgZBm2ltpER/pC7AcAmcpiCVMBUJDEZ+azU2EcBQHE1nwOjw/x Log92GksDsRiiCdkZWVDrEiF2DT5uzipf4uZPBaTxUodw7JcpEL24+UKMllz/89y/G/JyhSNzqEP GzVNGBQpyRnWrSojO0SCIXekmZ8cFg6xCsQXeBypvQTfSRMFxYzY97NzfWHNAAMAFHBYfiEQw1qi DFFGjPcItmUJpb7QHg3j5QVHj+BkYXbkSHw0n58ZFjoSZ0UaN3gUl3Nz/aNGbVJ4AcEQw5WGHi1I i46T8UTb8nmxYRArQNyZmxEVMuL7oCDNN2zURiiKlHA2hPhtijAgUmaDqWfljuaFWbFZ0rnUIfbK S4sOkvli8dzc+NBRDhyun7+MA8bh8mNGuGFwdflEjvgWCTIjRuyxcm5mYKSsztih3PyoUd/uPLjA ZHXAHqazJkfI+GPvBHkR0TJuOA5CgS/wA0wggi0ZZIN0wOvob+iHb7KRAMACQpAKuMByRDPqEScd 4cNnFCgAf0LEBbljfj7SUS7Ih/ovY1rZ0xKkSEfzpR4Z4AnEWbgm7oG74aHw6QWbLe6Mu4z6MRVH ZyX6E/2IQcQAotkYDzZknQmbEPD+jS4E9lyYnYQLfzSHb/EITwhdhIeE6wQx4TaIBY+lUUasZvGW Cn9gzgRTgBhGCxjJLhnG7Bu1wY0hawfcB3eH/CF3nIFrAkvcHmbijXvC3Byg9nuGojFu32r543wS 1t/nM6JXMFdwGGGRPPZlfMesfozi+12NOLAP+dESW4Edwc5jp7GLWDPWAJjYKawRa8dOSPDYSngs XQmjs0VKuWXAOLxRG+sa6z7rz/+YnTXCQCj93iCPOydPsiF8swVzhbzUtDymN/wjc5nBfLbVBKat tY0jAJL/u+z38YYh/W8jjEvfdDktALgUQ2XqNx3LAIDjTwCgv/umM3gNt9daAE50skXCfJkOlzwI gAIU4c7QADrAAJjCnGyBI3ADXsAfTAbhIBokgJmw6mkgC7KeDeaDJaAIlIC1YBPYBnaCPaAKHASH QQNoBqfBOXAZdILr4C5cG73gBRgA78AQgiAkhIbQEQ1EFzFCLBBbxBnxQPyRUCQSSUCSkFSEj4iQ +cgypARZj2xDdiPVyK/IceQ0chHpQm4jPUgf8hr5hGIoFVVFtVFjdCLqjHqjIWg0OgNNRXPQArQQ XY1uQSvQA2g9ehq9jF5HxegLdBADmDzGwPQwS8wZ88XCsUQsBRNiC7FirBSrwGqxJvitr2JirB/7 iBNxOs7ELeH6DMJjcDaegy/EV+Hb8Cq8Hm/Dr+I9+AD+lUAjaBEsCK6EYEI8IZUwm1BEKCXsIxwj nIV7p5fwjkgkMogmRCe4NxOI6cR5xFXEHcQ6Yguxi/iIOEgikTRIFiR3UjiJRcojFZG2kg6QTpG6 Sb2kD2R5si7ZlhxATiTzyUvJpeT95JPkbvJT8pCckpyRnKtcuBxHbq7cGrm9ck1yV+R65YYoyhQT ijslmpJOWULZQqmlnKXco7yRl5fXl3eRnyrPk18sv0X+kPwF+R75j1QVqjnVlzqdKqKuplZSW6i3 qW9oNJoxzYuWSMujraZV087QHtA+KNAVrBSCFTgKixTKFOoVuhVeKsopGil6K85ULFAsVTyieEWx X0lOyVjJV4mltFCpTOm40k2lQWW6so1yuHKW8irl/coXlZ+pkFSMVfxVOCqFKntUzqg8omN0A7ov nU1fRt9LP0vvVSWqmqgGq6arlqgeVO1QHVBTUbNXi1Wbo1amdkJNzMAYxoxgRiZjDeMw4wbj0zjt cd7juONWjqsd1z3uvfp4dS91rnqxep36dfVPGkwNf40MjXUaDRr3NXFNc82pmrM1yzXPavaPVx3v Np49vnj84fF3tFAtc61IrXlae7TatQa1dbQDtQXaW7XPaPfrMHS8dNJ1Nuqc1OnTpet66PJ0N+qe 0n3OVGN6MzOZW5htzAE9Lb0gPZHebr0OvSF9E/0Y/aX6dfr3DSgGzgYpBhsNWg0GDHUNpxjON6wx vGMkZ+RslGa02ei80XtjE+M44+XGDcbPTNRNgk0KTGpM7pnSTD1Nc0wrTK+ZEc2czTLMdph1mqPm DuZp5mXmVyxQC0cLnsUOi64JhAkuE/gTKibctKRaelvmW9ZY9lgxrEKtllo1WL2caDgxceK6iecn frV2sM603mt910bFZrLNUpsmm9e25rZs2zLba3Y0uwC7RXaNdq/sLey59uX2txzoDlMclju0Onxx dHIUOtY69jkZOiU5bXe66azqHOG8yvmCC8HFx2WRS7PLR1dH1zzXw65/uVm6Zbjtd3s2yWQSd9Le SY/c9d1Z7rvdxR5MjySPXR5iTz1PlmeF50MvAy+O1z6vp95m3uneB7xf+lj7CH2O+bz3dfVd4Nvi h/kF+hX7dfir+Mf4b/N/EKAfkBpQEzAQ6BA4L7AliBAUErQu6GawdjA7uDp4YLLT5AWT20KoIVEh 20IehpqHCkObpqBTJk/ZMOVemFEYP6whHIQHh28Ivx9hEpET8dtU4tSIqWVTn0TaRM6PPB9Fj5oV tT/qXbRP9JrouzGmMaKY1ljF2Omx1bHv4/zi1seJ4yfGL4i/nKCZwEtoTCQlxibuSxyc5j9t07Te 6Q7Ti6bfmGEyY86MizM1Z2bOPDFLcRZr1pEkQlJc0v6kz6xwVgVrMDk4eXvyANuXvZn9guPF2cjp 47pz13OfprinrE95luqeuiG1L80zrTStn+fL28Z7lR6UvjP9fUZ4RmXGcGZcZl0WOSsp6zhfhZ/B b8vWyZ6T3SWwEBQJxDmuOZtyBoQhwn25SO6M3MY8VXjUaReZin4S9eR75Jflf5gdO/vIHOU5/Dnt c83nrpz7tCCg4Jd5+Dz2vNb5evOXzO9Z4L1g90JkYfLC1kUGiwoX9S4OXFy1hLIkY8nvS62Xrl/6 dlncsqZC7cLFhY9+CvyppkihSFh0c7nb8p0r8BW8FR0r7VZuXfm1mFN8qcS6pLTk8yr2qks/2/y8 5efh1SmrO9Y4rilfS1zLX3tjnee6qvXK6wvWP9owZUP9RubG4o1vN83adLHUvnTnZspm0WbxltAt jVsNt67d+nlb2rbrZT5lddu1tq/c/n4HZ0d3uVd57U7tnSU7P+3i7bq1O3B3fYVxReke4p78PU/2 xu49/4vzL9X7NPeV7PtSya8UV0VWtVU7VVfv19q/pgatEdX0HZh+oPOg38HGWsva3XWMupJD4JDo 0PNfk369cTjkcOsR5yO1R42Obj9GP1Zcj9TPrR9oSGsQNyY0dh2ffLy1ya3p2G9Wv1U26zWXnVA7 seYk5WThyeFTBacGWwQt/adTTz9qndV690z8mWttU9s6zoacvXAu4NyZ897nT11wv9B80fXi8UvO lxouO16ub3doP/a7w+/HOhw76q84XWnsdOls6prUdbLbs/v0Vb+r564FX7t8Pex6142YG7duTr8p vsW59ex25u1Xd/LvDN1dfI9wr/i+0v3SB1oPKv4w+6NO7Cg+0ePX0/4w6uHdR+xHLx7nPv7cW/iE 9qT0qe7T6me2z5r7Avo6n0973vtC8GKov+hP5T+3vzR9efQvr7/aB+IHel8JXw2/XvVG403lW/u3 rYMRgw/eZb0bel/8QeND1Ufnj+c/xX16OjT7M+nzli9mX5q+hny9N5w1PCxgCVnSowAGG5qSAsDr SgBoCfDsAO9xFAXZ/UsqiOzOKEXgP2HZHU0q8ORS6QVAzGIAQuEZpRw2I4ipsJccv6O9AGpnN9ZG JDfFzlYWiwpvMYQPw8NvtAEgNQHwRTg8PLRjePjLXkj2NgAtObJ7n0SI8Iy/S1GCLnYUfgA/yL8A vSpt+EFuYiwAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAGeaVRYdFhNTDpjb20uYWRvYmUueG1wAAAA AAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1 LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8y Mi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAg ICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAg ICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE3NDI8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgog ICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+MTYwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4K ICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CnsZEoYA AAAcaURPVAAAAAIAAAAAAAAAUAAAACgAAABQAAAAUAAAelMc6VQTAABAAElEQVR4Aey9DXwV1Zn4 /yggbxUUBBWL2FIpYrlYsNJt60todWt1e+nbrrZx/7K20f3tFuLu1v7iZ7f72+xubWz9rNG6jbIa LMbapmsNFuNbRIMvQU0sFzGIQRNpUJMS5Ea4gXvx/M+ZuTNzzpn3MzPJTXgun3Dnzsw553m+5znP OTPPnDPHdHZ2EvoB+e/DDz/03Wecc+TIEThw4ADs3LkT1qxZA/hBAkgACSABJIAEkAASQAJIAAkg ASSABJAAEkACSAAJIAEkgASQABIY+wTeffddOOaYY+CEE07QvpnG7HfYj5yGxa2cPoODg9ru9evX w4IFC2Dq1Kkwbtw4rcxjjz1W+2Z5sT/5t9s+YT8Gzpyw4z4kgASQABJAAkgACSABJIAEkAASQAJI AAkgASSABJAAEkACSAAJIAE/Ahg442an4YwzP3PB40gACSABJIAEkAASQAJIAAkgASSABJAAEkAC SAAJIAEkgASQABIYuwQwcIaBs7Fr3agZEkACSAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIAAkg ASSABEIQwMAZBs5CmAueigSQABJAAkgACSABJIAEkAASQAJIAAkgASSABJAAEkACSAAJIIGxSwAD Zxg4G7vWjZohASSABJAAEkACSAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIIAQBDJxh4CyEueCp SAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIAAkgASSABJAAEhi7BDBwhoGzsWvdqBkSQAJIAAkg ASSABJAAEkACSAAJIAEkgASQABJAAkgACSABJIAEQhDAwBkGzkKYC56KBJAAEkACSAAJIAEkgASQ ABJAAkgACSABJIAEkAASQAJIAAkggbFLAANnGDgbu9aNmiEBJIAEkAASQAJIAAkgASSABJAAEkAC SAAJIAEkgASQABJAAkggBAEMnGHgLIS54KlIAAkgASSABJAAEkACSAAJIAEkgASQABJAAkgACSAB JIAEkAASGLsEMHCGgbOxa92oGRJAAkgACSABJIAEkAASQAJIAAkgASSABJAAEkACSAAJIAEkgARC EMDAGQbOQpgLnooEkAASQAJIAAkgASSABJAAEkACSAAJIAEkgASQABJAAkgACSCBsUtgTAbOCoUC MMX+9Kc/weHDh2Hy5MkwZ84cmDp1KhCHQJmx78MPP9SOHzlyBA4cOAA7d+6ENWvWjN3aR82QABJA AkgACSABJIAEkAASQAJIAAkgASSABJAAEkACSAAJIAEkgARMAmMucPb888+Tt956C5566inYunWr FkCbOXMmpNNp+LM/+zOYMWMGjB8/XguQGYEyDJyZ9oAbSAAJIAEkgASQABJAAkgACSABJIAEkAAS QAJIAAkgASSABJAAEjhqCYy5wNk//dM/ERo8g9NOOw0+9rGPabPOtmzZAnv27IGLLroIvvWtb8En PvEJOPbYYwEDZ0et3aPiSAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIAAkgASSABJAAErARGHOB s9NPP51897vfhbKyMpg2bRrk83l48skn4Z577oHe3l742te+BldeeSWcfPLJGDizmQPuQAJIAAkg ASSABJAAEkACSAAJIAEkgASQABJAAkgACSABJIAEkMDRS2DMBc6+/vWvk+uvv14Lmh1zzDFacIwp +bOf/UwLoH36058GFlg777zzhPedseUajRlo+I6zo7dBoOZIAAkgASSABJAAEkACSAAJIAEkgASQ ABJAAkgACSABJIAEkMDRS2DMBc7+7//9v2Tp0qXCe8w++OADbcbZc889Bx//+Mdh1apVcPHFF2u1 brzfDANnR28jQM2RABJAAkgACSABJIAEkAASQAJIAAkgASSABJAAEkACSAAJIAEkwAiMucAZfX8Z Oemkk+AjH/mIFjybOHGiNrMsm81qyzay95uxd52dffbZmgVg4AwbAhJAAkgACSABJIAEkAASQAJI AAkgASSABJAAEkACSAAJIAEkgASQACMw5gJnP/3pT7XA2YQJE4At1Thu3Dg49thjtdpm25MnT9aW cTQCahg4w4aABJAAEkACSAAJIAEkgASQABJAAkgACSABJIAEkAASQAJIAAkgASTACIy5wNkjjzxC 5syZowXLWFCMfYxlGI1t49t4p5kRPDN+4zvOGCH8IAEkgASQABJAAkgACSABJIAEkAASQAJIAAkg ASSABJAAEkACSODoIjDmAmf19fXk3HPPNQNnclDM+G0E05x+Y+Ds6GoEqC0SQAJIAAkgASSABJAA EkACSAAJIAEkgASQABJAAkgACSABJIAEGIExFzhbuXIlqaqq0t5x5hQU89qHM86wUSABJIAEkAAS QAJIAAkgASSABJAAEkACSAAJIAEkgASQABJAAkjg6CUw5gJnM2fOJNdddx1cfPHFQLe1mjVml/X3 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 l3HUmwHa5VtRn+TbrbffYNrwNiD7RTXeLoy43VH1luV281lcka6bQfwvz8itLD6f4eLo6098+g0G hZfbrR9XtYMg3IRz0vVC30vfbElqy4zlt2i/7TAOCyK/UEZZ+P5dTF8nyWiZlionKweXLUX/Isqd nN5iOe58orZ7sZxk9OHtSWzHcfQj3v5Y1M+Zo7t8edLMvT+HjY2qmzIkS8ec2b5u0lxXKTz8xY6L +rnYnrA7SflpQbGMY5y5MTVU26d/vXhzYWXzecjck5NL9O9yuUwu3p6c/D8vN3v/MH9t5O+f/bj4 HfeXj+lgfrh7DtY1BOs32s1T+I1Su24RWCutpOPDM8H2xduRk53x3OVtf7199KIZ8nnI5Uftd5i8 vH5O7UTXyV9O7Twp6GTYakVDl54N9z+vV/j2F0xuNf8TR3/IKVoimxg4ixg4Y1N/Nxozxb7/Ir0N bv8IwalikO2+Hz9P3to1QG+qf0DeetBazlAOMPEzrrRjP9pEtj+7g2x98Anz/Wpsv/Z3xROknwYu jI9QrlvgrGOTEOBaFyJ/0veqMKPMlMOQR/pWCpxFkE/QPyR3xlBI78LPK3DG38Ab3qUamfR7SbUZ +ODfVeW8narezhIFDJzR8/oy1gylIOVc+6L5fhk5kOMX6PE7bgXOkpXLL3DWXltnC4Bp73pb+Ti5 daWde9lVdDlEKfBkvhtu5SbzRm9UXu5ybRIGuF2/dXkP28onhPOYmegf98CtcYbvN7dUo9vNJvc8 vAcgwmBCaYDpXrJxJFNvzVBiTz/WtnSSgYE+0ttnXTpEloMyMmauGoOn6voWOrtvgAz09ZKuTDtp aqgl6VTKNoXfkNP5O3l+cfHR5WdLXlg3yBiLarrURt8A5TDQS1obqsSL/kr6jitOcfFJOppPuoo0 NDaQ+roa6z1YxaAXy9s2sO4Ug2PpqlrS2NRIaivFgJtRR7bAGZWlnZ81p5WVJvXN+ntaMm0tpL5G v3FRK71YMghHelngGTijEblI/KLasbBsA9XdiQ9XXS6bA8JNUsY6Vd0insv7FI2xy5P9CbWrqHbm V48Gx7Jyar/Mdnr7HO3fChpbeFTsT1zeibaLkHavKq9qOrouq5K/jF5vFmenLWV9Em+3fn7D+4aD Km8nRuK+aP6K5RXEZ4llOv8K4n+DlMXfWJH7l+Q4+tWv33F6YyXAOEdV/iDc+Ceqtb65qo60tLaS 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 +Naft79XldNv3O1+PPnxpNf9QIFvBP8Vpn9mFiWU63ufNrpfTuY6P7pcYa6TBGY+dp6cHbv7CDyC BHgC77zzDqHBMzI0NEToRATt7/DhwyTsXz6fJ/yfW/q9e/cS9nfrrbeSRx55hDzzzDPk2WefJc89 95wW52IxLBbLYjGtl19+mbS3t5OOjg7yyiuvaLEvFgNjsbBXX32VbN++nbz22muks7OTvP7662Tn zp0EVq9erQXOzj33XEKXZNQyYEGz9evXkwsuuICcfPLJ5Nprr9UCZXLg7B/+4R/IjBkztBsCJ5xw Arnyyit5Vtp2trPBvGFgDD7S5RWkssK64Wnsb+gUbz3yAwe3m6KZOuuGhHzj3kzPBY+MsrTvVPDA WTZj14PdDCsvT5MyM3+PwJmjc7NuUGk31ux3EUkUfu4dtFVNKnqxfBsqeNmBpCsqSbl5w1M/VisF Mq1S3bdU9c111tvsTKhrSAcMnOVIY6V1czdV1WwLlLhLzx+JJ59cVyOnV4o0dTvdfOXLHc5t7xt7 siRme/RtC8x+6I1mW3tIxu5Mucx2LNq2aEdAyuvFm8m+6Tk/o2rfjKVvORJXWU4tjwj+mBA5GACk rLyclKfdb5LqNqBab/Z0qXQ5qSi3yuPrxq2P0GWw/2/ylLjxeZrbqXJSVeFcrnFOdavNYCP7b9nP htPfzi+Ynw7Xri2yedLE+U47j15SLbQxhzbe10LKivWRqmwuZu0nT9TjlgbOW4oc851CYAVS1TRM Jn7aarhxUGWT0NeY9ikwc/dN9vbuzUW++GK2xcYzhj3r3ynqh+U+xydf/oEh37blYAMiIu5XMvZl cvaV1d4v8QExKHMKBDPx+eBoijQ7BlA5Nc1NH87STaKg9RdFX120AVIvBIUpl7I0qXAY0zMbkv0y X758zFDdc1yvqDd7CCGK3EmNe00eiu3cN31M4w8n/cP0R6acDjYRpN7ZOWGvV/gyRb9m+NHy4sMZ Wu6eDxpoZ0QYP/nLYshk9zOsbL9P1PzV+wPVcaG3RqY+iu3CyV6Djn/kcVeQdKa8Cv2INwnjqBrn OORSu24pvf7aIOn27c+K9xfUwiL4AzcZjP2mLMNu/4YEzt9R5VL1M77l0n7ubd+xJ19/yYyvmN/x emDN6/iIjid92fn3T2H7Z2ZhQepVfyRb7TrMzD+IX1a6zh8GuaT7Yf46WXau2t687NTZM+BeJOBM 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 AAAASUVORK5CYII= --Apple-Mail=_225590C5-E79D-44DD-9EFE-ABDC123AAB47-- --Apple-Mail=_30894975-2BD3-47C3-85F8-DEA6E7E5E52A-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 17 04:42:40 2016 Received: (at 16856) by debbugs.gnu.org; 17 Jul 2016 08:42:40 +0000 Received: from localhost ([127.0.0.1]:54234 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOheq-0004t3-26 for submit@debbugs.gnu.org; Sun, 17 Jul 2016 04:42:40 -0400 Received: from mail-wm0-f41.google.com ([74.125.82.41]:35051) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOheo-0004sq-Dl for 16856@debbugs.gnu.org; Sun, 17 Jul 2016 04:42:38 -0400 Received: by mail-wm0-f41.google.com with SMTP id f65so70974090wmi.0 for <16856@debbugs.gnu.org>; Sun, 17 Jul 2016 01:42:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=+3Evx5r8Ze1reRjblU+kzsfWk6FBN366GkzewwRR59s=; b=iEgrbNUI22oMpZAe8KsMCd1Opb/GhNhq9wc+iBior5FjVtC2BfiSjc0VoSQMUQnrrj mfPHwPs8hxX4n2PV0SVAOxLfSZFqUaCB5FM5rbpssc6RuEFBEl9k6+rpy0BixIDpzkJu Wbeb6ZN6C2LR8Zs3qID9wYpnxoTWynzdp4QX+AEI2uS7PztQt4HOy9DtVX8aYuGkKjtZ mOJp/cveL/P4tCgZZtzCaoIIAN12bOvDBoeu9tVy/qmAe3SahOmzieASUcBlEs+uW2s1 mDlDTjSEdK6+QoWqTeViRkABDsc0nIeH67AKHXyLQW+XHkCl7HKg2CtM2HZS9dnin8uI yejA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=+3Evx5r8Ze1reRjblU+kzsfWk6FBN366GkzewwRR59s=; b=hohVuzFQzYzQYW2b1GxgK0NSllYrRS33UaeOG2fl1Jb/ZxiraCVfDSmUWwWXgKDjlN uxqBe9VSJqsnyJ8P5SMZQqm1sKmrLARfn6Bu5IUyRHVeWisCKQ7qSE7BZrX11KbIiYAR W96YDPmLJ5bPgu7yuuqHbmFcbOlrDaCWvw9Rlw7fWdlh1EuYPnHhOR7mY5L6oRBfyIkB oU6gh1NvFUdpzqVOO/erMm4szxSliWewaVF/2k6fDoCEib6bHNk5DzT67hJYShk0z03B Hm1LrpYoTBlFXXDj2XjWa9MW1cznQZzE810JE2SEeB2kZhtcxNzCZf6kmWBsZzhC22zg n/Ig== X-Gm-Message-State: ALyK8tJSXVXME6iOxS9vY4KONX1oFybrKK7H0CDXEh9XWx7yA2Y+wU4fyBudEHsEC6kwJg== X-Received: by 10.28.216.67 with SMTP id p64mr31484308wmg.56.1468744952650; Sun, 17 Jul 2016 01:42:32 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-5cc4-ba14-a0d0-bdac.holly.idiocy.org. [2001:8b0:3f8:8129:5cc4:ba14:a0d0:bdac]) by smtp.gmail.com with ESMTPSA id e8sm2781258wjl.26.2016.07.17.01.42.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Jul 2016 01:42:31 -0700 (PDT) Date: Sun, 17 Jul 2016 09:42:32 +0100 From: Alan Third To: David Reitter Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe Message-ID: <20160717084232.GA3426@breton.holly.idiocy.org> References: <48763C60-1B48-468A-9544-C4A63258CF32@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <48763C60-1B48-468A-9544-C4A63258CF32@gmail.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Sun, Jul 17, 2016 at 03:33:03PM +0900, David Reitter wrote: > I don’t think that bea0f95 (May 21, nsterm.m) fully fixed this > problem. I’ve had several “appearances” of the ominous garbage in > the right fringe yesterday. > > This was after applying your patch (and removing my workaround). Hi David, I'm not entirely sure what's going on in your screenshot. Is the garbage definitely appearing in the fringe rather than in the main text area? If so, is it on the left or the right (or the middle, I guess) of the fringe? -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 17 06:41:54 2016 Received: (at 16856) by debbugs.gnu.org; 17 Jul 2016 10:41:54 +0000 Received: from localhost ([127.0.0.1]:54277 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOjWE-0007p1-6U for submit@debbugs.gnu.org; Sun, 17 Jul 2016 06:41:54 -0400 Received: from mail-pa0-f51.google.com ([209.85.220.51]:32911) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOjWB-0007oo-Q1 for 16856@debbugs.gnu.org; Sun, 17 Jul 2016 06:41:52 -0400 Received: by mail-pa0-f51.google.com with SMTP id ks6so52106539pab.0 for <16856@debbugs.gnu.org>; Sun, 17 Jul 2016 03:41:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version; bh=nmz0bnyCVIzhsZp+Ea1Kqk0FCcviZcXOigYQFw0Oqco=; b=qvHbmq/yt8SoeZGd6QldtRBEwtnCre9F4s0RQd9nmkAg5hyksMfub0YJ2j0L2S9xbf phI+f3iEgIniZK26munrfNkwFa54WdihoxqHyN/3UZZO2s5X+bOHuwSHx+ForWRA7ti3 j5oUe4fADV4zWhzy/n8zP7YsKu6bvmh7a/BEgIZaHetB8phhVWmXKwlV3KBaNBkJ9QIo XPKZ2SEKGysVQnav4McyjkWLTQrbehTtv67VGglkKw3Z3bz91NZzDCB2HoCSJ2hMU5uT cm5no7+JwApppmBxxH7Udp6L19DdGgPFIDKCNjsAnk+ZU8TGNdZZQoQ3Ij+CzMdrY8Ep bfpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:message-id:in-reply-to :references:subject:mime-version; bh=nmz0bnyCVIzhsZp+Ea1Kqk0FCcviZcXOigYQFw0Oqco=; b=fdxZ6gW5vjC5cA5YzwNOTI4uE3p3o1lOEI47hM6hIhQ4bxVQ/Oa59khmWMWJiQtzbJ sICgOgy+nxKmhgIILXE6VeeEeUgrvOPFO5y2FOBV8PRj5QYrsnYe9IgO50IoIkuljsbU C7cQepsagZ2v2BJPMcyWh0pihZfu50IDmvyq12E73leDrPee/rH7247NmFUQQ2ZIDNyh 8OO8pYYAagt4wkKTIZ6ihpguFEXJcWVEfVGUhaSdubA1ODjrXL7KkjTTM0CF3QVaw7ji c83Lj66tikiALiGBqroWCgpheILFMnY9nPfg0Y3h3KeICW+RP1j15+jrm9cLN5LB9SYn VexQ== X-Gm-Message-State: ALyK8tI8D3+8tEuawW9OjS8pbIxlOUOTgxY2tgUuR1VRrwZGEczjX9wW8R4ZSBJLCMm4Rg== X-Received: by 10.66.138.108 with SMTP id qp12mr47345331pab.65.1468752105849; Sun, 17 Jul 2016 03:41:45 -0700 (PDT) Received: from iPhone ([106.242.99.182]) by smtp.gmail.com with ESMTPSA id g26sm384635pfj.82.2016.07.17.03.41.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Jul 2016 03:41:44 -0700 (PDT) Date: Sun, 17 Jul 2016 19:41:42 +0900 From: David Reitter To: Alan Third Message-ID: In-Reply-To: <20160717084232.GA3426@breton.holly.idiocy.org> References: <48763C60-1B48-468A-9544-C4A63258CF32@gmail.com> <20160717084232.GA3426@breton.holly.idiocy.org> Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe X-Mailer: Boxer 6.0.4 (321) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="578b60e6_46e87ccd_8e9" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856 Cc: "16856@debbugs.gnu.org" <16856@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --578b60e6_46e87ccd_8e9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Good point, I can't tell. =C2=A0It happens only in some situations (font = size, text extent, window size) ---Sent from my phone On Sun, Jul 17, 2016 at 03:33:03PM +0900, David Reitter wrote: > I don=E2=80=99t think that bea0f95 (May 21, nsterm.m) fully fixed this = > problem. I=E2=80=99ve had several =E2=80=9Cappearances=E2=80=9D of the = ominous garbage in > the right fringe yesterday. > =20 > This was after applying your patch (and removing my workaround). Hi David, I'm not entirely sure what's going on in your screenshot. Is the garbage definitely appearing in the fringe rather than in the main text area=3F If so, is it on the left or the right (or the middle, I guess) of the fringe=3F -- =20 Alan Third --578b60e6_46e87ccd_8e9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Good point, I can't tell.  It happens only in some situations (font = size, text extent, window size)
<= br/>---
Sent from my phone
On July 17, 2016 at 17:42:41 GMT+9, Alan Third <alan=40idi= ocy.org> wrote:
On Sun, Jul 17, = 2016 at 03:33:03PM +0900, David Reitter wrote:
> I don=E2=80=99t th= ink that bea0f95 (May 21, nsterm.m) fully fixed this
> problem. I=E2= =80=99ve had several =E2=80=9Cappearances=E2=80=9D of the ominous garbage= in
> the right fringe yesterday.
>
> This was after a= pplying your patch (and removing my workaround).

Hi David, I'm not= entirely sure what's going on in your screenshot. Is
the garbage defi= nitely appearing in the fringe rather than in the main
text area=3F If= so, is it on the left or the right (or the middle, I
guess) of the fr= inge=3F
--
Alan Third
--578b60e6_46e87ccd_8e9-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 17 08:09:53 2016 Received: (at 16856) by debbugs.gnu.org; 17 Jul 2016 12:09:53 +0000 Received: from localhost ([127.0.0.1]:54320 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOktM-00033a-S8 for submit@debbugs.gnu.org; Sun, 17 Jul 2016 08:09:53 -0400 Received: from eggs.gnu.org ([208.118.235.92]:49588) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOktK-00033K-NQ for 16856@debbugs.gnu.org; Sun, 17 Jul 2016 08:09:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bOktB-000462-4z for 16856@debbugs.gnu.org; Sun, 17 Jul 2016 08:09:45 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:34706) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bOktB-00045E-1d; Sun, 17 Jul 2016 08:09:41 -0400 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1935 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bOkt9-00053Z-6O; Sun, 17 Jul 2016 08:09:39 -0400 Date: Sun, 17 Jul 2016 15:09:34 +0300 Message-Id: <83r3as4gap.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-reply-to: <20160717084232.GA3426@breton.holly.idiocy.org> (message from Alan Third on Sun, 17 Jul 2016 09:42:32 +0100) Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe References: <48763C60-1B48-468A-9544-C4A63258CF32@gmail.com> <20160717084232.GA3426@breton.holly.idiocy.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit 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-Spam-Score: -6.3 (------) X-Debbugs-Envelope-To: 16856 Cc: david.reitter@gmail.com, 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.3 (------) > Date: Sun, 17 Jul 2016 09:42:32 +0100 > From: Alan Third > Cc: 16856@debbugs.gnu.org > > On Sun, Jul 17, 2016 at 03:33:03PM +0900, David Reitter wrote: > > I don’t think that bea0f95 (May 21, nsterm.m) fully fixed this > > problem. I’ve had several “appearances” of the ominous garbage in > > the right fringe yesterday. > > > > This was after applying your patch (and removing my workaround). > > Hi David, I'm not entirely sure what's going on in your screenshot. Is > the garbage definitely appearing in the fringe rather than in the main > text area? If so, is it on the left or the right (or the middle, I > guess) of the fringe? I actually am puzzled by more than that: it looks like the "garbage" is some text drawn on the fringe, which seems to point to incorrect coordinates of some screen write. If that screen write is the one that draws or erases the cursor, then I don't understand this comment: "Because the cursor is drawn without limiting focus to the window box, but it is removed by writing glyph and nothing into the right margin, while focus is applied to the window box, parts of the cursor may remain visible." It seems to imply that drawing cursor and erasing it are implemented in Aquamacs by two very different code fragments? (That's not what happens on other platforms, AFAIR.) And if that's true, I understand the workaround even less: it limits the _width_ of the cursor, whereas the problem is clearly with its coordinates. What am I missing? From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 17 08:41:20 2016 Received: (at 16856) by debbugs.gnu.org; 17 Jul 2016 12:41:20 +0000 Received: from localhost ([127.0.0.1]:54349 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOlNn-0003np-Rb for submit@debbugs.gnu.org; Sun, 17 Jul 2016 08:41:20 -0400 Received: from mail-pf0-f178.google.com ([209.85.192.178]:32979) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOlNm-0003nd-9b for 16856@debbugs.gnu.org; Sun, 17 Jul 2016 08:41:18 -0400 Received: by mail-pf0-f178.google.com with SMTP id y134so29000614pfg.0 for <16856@debbugs.gnu.org>; Sun, 17 Jul 2016 05:41:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=kWs0RoahFB8MvzJ5OIiucp4PvsNYRJ56vsvbLDNSF8E=; b=jH4+Sw7CJtvLhaEWthnWxOawQh2bkX0REhlZozIFc7MF/QrbqdzpVDDwCmNm5mP6Oq 6DDq5QTX6TasEfs0DAo2/lGhQLHzASBNdmuC/bljrMNX+fanHh/r5T9uFwiFHzIBVMcj X7ClsFsJhppwl0cewp/Bl27NXRIckfwQYJkOtzaQzC2ThnBQuH7ag1iOlBKKTkmo/Txl Js9egD522138av3arISHwmPgBi2zfY9uKF3hJf/2h3b3QFb+Yqjugoma+sN7gSH4T3Nv Ntu2t9iYCOPezG/p8FM3QMuicrdyNOwwCqM+wcRsBNBiPFyUJa/MCUIWGCPt8ZZ1PlGz XKcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=kWs0RoahFB8MvzJ5OIiucp4PvsNYRJ56vsvbLDNSF8E=; b=QrCf6f5jopqU2r5UZF2D8DVS097YhOyRcrWi7elNhWeKouq79r/3ci5rj1lQs+GmC7 dKRBwzJHbcQcaqZhXPf2Ar78WtcwLcCzrmTzT9+HyxPNu3AU+5hLiCgQ+m8FVUhLJIK8 2vCiRZpvWYYHaXEgbamUuvRcvcja7ZOt2za0s9CEQgKrtZoCqBtYobdrnK8RLcUnULpQ 6+MPT0j/ekUJkbClbticLi19ugug76etVc6ibNsycBleWaPumqXa9Wwhgez8imqP18RB 9PAkhDsXqXXsw1VX4dVtZ/gFPKclKxIjA3c0BYtOzYfc1OeyM0SaQkUvxuhe2mDNKLUJ z56w== X-Gm-Message-State: ALyK8tJLDmQ+q1x5e2XV5/ipZTiJdOb87MMFNhAH/KX8M/Pah+DSxmtXOpMQXjBYs8N9zQ== X-Received: by 10.98.69.81 with SMTP id s78mr37451095pfa.63.1468759272344; Sun, 17 Jul 2016 05:41:12 -0700 (PDT) Received: from [172.16.21.150] ([14.39.48.5]) by smtp.gmail.com with ESMTPSA id zq7sm2619039pac.6.2016.07.17.05.41.09 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 17 Jul 2016 05:41:10 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe From: David Reitter In-Reply-To: <83r3as4gap.fsf@gnu.org> Date: Sun, 17 Jul 2016 21:41:07 +0900 Content-Transfer-Encoding: quoted-printable Message-Id: References: <48763C60-1B48-468A-9544-C4A63258CF32@gmail.com> <20160717084232.GA3426@breton.holly.idiocy.org> <83r3as4gap.fsf@gnu.org> To: Eli Zaretskii X-Mailer: Apple Mail (2.3124) X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org, Alan Third X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Jul 17, 2016, at 9:09 PM, Eli Zaretskii wrote: > "Because the cursor is drawn without limiting focus to the window > box, but it is removed by writing glyph and nothing into the right > margin, while focus is applied to the window box, parts of the > cursor may remain visible." >=20 > It seems to imply that drawing cursor and erasing it are implemented > in Aquamacs by two very different code fragments? I don=E2=80=99t think they=E2=80=99re that different. I do not know the code there very well, otherwise I would have just = fixed the problem. Is it possible that when drawing the glyph, we call ns_focus with the = rectangle returned by ns_get_glyph_string_clip_rect()? ns_draw_window_cursor() on the other hand focuses via ns_clip_to_row(). = It might do so before deleting the cursor (if that=E2=80=99s where the = cursor is erased), but that doesn=E2=80=99t matter, because clipping in = ns_focus probably isn=E2=80=99t incremental from what it looks like. > And if that's true, I understand > the workaround even less: it limits the _width_ of the cursor, whereas > the problem is clearly with its coordinates. No, it increases the width of the clipped rectangle so that the cursor = can be erased from wherever it was drawn. But again, if the cursor type is wider than 2px (on the right hand side = of the underlying glyph), we would have to widen the clip box even = further. I=E2=80=99m not sure what the correct solution is here. If the bar = cursor is drawn to the right of the glyph, it=E2=80=99s going to go into = the margin or fringe. If you prevent that even at reasonable cursors = like (bar . 2), the cursor is going to look funny on the right hand = side. So, I think we have to (A) widen the clipping rectangle to = something like max(row_width, glyph_x+glyph_w+min(2, cursor_width)), and = (B) also clip when drawing the cursor so that wide cursors don=E2=80=99t = go into the fringe. I think Alan=E2=80=99s change may have done B = already. Haven=E2=80=99t tested that. (As for A, I can=E2=80=99t work = on it right now and probably don=E2=80=99t know the code well enough to = do this right anyway.)= From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 17 09:26:38 2016 Received: (at 16856) by debbugs.gnu.org; 17 Jul 2016 13:26:38 +0000 Received: from localhost ([127.0.0.1]:54360 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOm5d-0004py-Pt for submit@debbugs.gnu.org; Sun, 17 Jul 2016 09:26:37 -0400 Received: from mail-wm0-f49.google.com ([74.125.82.49]:38365) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOm5c-0004pj-KO for 16856@debbugs.gnu.org; Sun, 17 Jul 2016 09:26:36 -0400 Received: by mail-wm0-f49.google.com with SMTP id o80so84718240wme.1 for <16856@debbugs.gnu.org>; Sun, 17 Jul 2016 06:26:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=Rx+a1iMP3kn4l3jM/ZRsC3Qow4dDLlLcQA099mKfUvs=; b=pUkzn6hsj+9V5DuMbNJiP53WxAsbVXs/zd9Jzp8csOC9Yi2Ih/72aq6ipxVFvg9i2A 82qsRVPcW/I8JtZTCzoaGOm+5JnC6Yn5LW6t7x0O7IQGJ04pVvw3557ohUPJVKQa6zWQ 8YXsoNvhlEg1LvZS+tratOcybgsAguzteRygcfiPrW2yODB06A/5LtR+iVSDQiRdehl9 awOAni1Yu7aS2NBond5mY+/Su9KjqYh7izWCe0QA8OKJ54nZpKSVAdn6hTxtdqoWTRWZ CfolESrGeGJtnok8Oc99CFfKvBFNy9pb1Ipbg5m7G8HJWdKUckV8IcGFBdooqsPGjtdI Nh6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=Rx+a1iMP3kn4l3jM/ZRsC3Qow4dDLlLcQA099mKfUvs=; b=brc68D6R7sm/TPDyjFszbPEXh+QSCdTtPCQImduNVx0F00EH68tLvTF4Tf4iujoZI6 7fFEK1sRXQaTlF1RqWxIA8C6eHyLBRYf46E7U8fk4nBnjJPoYH6ukCYpcGxUxZeWsDQF eewG5qTY4/pAakVBQqtoTgp14ztOnigexKMhoS3nHnszvpa2p/yJ9YF2c1AKI2FQepHr O+bvnHYKgtIf9KmcbJfROtdnGMuby8N4KmSeoomdMEjRCn7FOdnfZYfBYtXrRdgMQKY6 5OkxmMJnM6YFUr7mZ/95/JDXdmzw78Si8uFoefMylrn4l9kT7uwHHSRpcj9udi0m0Lqt 0aIw== X-Gm-Message-State: ALyK8tKiC7kDCr/J2S7TjedFc9ffT7qyVi33qQWdJWCuSRxOVibV/qHZOLuSadYRvtaw+Q== X-Received: by 10.28.229.1 with SMTP id c1mr7640089wmh.0.1468761990860; Sun, 17 Jul 2016 06:26:30 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-5cc4-ba14-a0d0-bdac.holly.idiocy.org. [2001:8b0:3f8:8129:5cc4:ba14:a0d0:bdac]) by smtp.gmail.com with ESMTPSA id b186sm8287066wmg.23.2016.07.17.06.26.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Jul 2016 06:26:30 -0700 (PDT) Date: Sun, 17 Jul 2016 14:26:31 +0100 From: Alan Third To: Eli Zaretskii Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe Message-ID: <20160717132631.GA3529@breton.holly.idiocy.org> References: <48763C60-1B48-468A-9544-C4A63258CF32@gmail.com> <20160717084232.GA3426@breton.holly.idiocy.org> <83r3as4gap.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <83r3as4gap.fsf@gnu.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856 Cc: david.reitter@gmail.com, 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Sun, Jul 17, 2016 at 03:09:34PM +0300, Eli Zaretskii wrote: > I actually am puzzled by more than that: it looks like the "garbage" > is some text drawn on the fringe, which seems to point to incorrect > coordinates of some screen write. If that screen write is the one > that draws or erases the cursor, then I don't understand this comment: I think the screenshot shows Emacs running in front of some other (OS) window and we can see a little bit of that window on either side of the Emacs frame. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 17 09:35:21 2016 Received: (at 16856) by debbugs.gnu.org; 17 Jul 2016 13:35:21 +0000 Received: from localhost ([127.0.0.1]:54369 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOmE4-00053f-TE for submit@debbugs.gnu.org; Sun, 17 Jul 2016 09:35:21 -0400 Received: from mail-wm0-f44.google.com ([74.125.82.44]:35457) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOmE3-00053T-8E for 16856@debbugs.gnu.org; Sun, 17 Jul 2016 09:35:19 -0400 Received: by mail-wm0-f44.google.com with SMTP id f65so75256798wmi.0 for <16856@debbugs.gnu.org>; Sun, 17 Jul 2016 06:35:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=iw+uDGBzOYRqtiM2Znnb0XewaM0t0wCegdh2aCgXB+o=; b=X/NFk/FBmAGYhLXi9ZwPQZobQd490Az46Y3/pSfCnu+u3Vk2VbJU8kEkQbuy46pxgE Ty2xhn2FYSz+LGOgRHtyA1kenOUk2m2p7ZTscmERuW5n0iZweVARYncxaL00kkcRNmTW SV/86yQ0hJAjXpuw/UqeQSE2R7KYajtJeZE1mZJWdylgPOhohYHxakSklKzUosgF8CDK YAmBJYMfS2/4ySNWmwHfR4EnMqf5E5vSzNSH4JqNbHRRmgz1qp4RKCO9x95LBZh3vJxO GX/v1Ltn4K9VH3PDUOzetuWF2jDaAopSIMSHV5zHigxRTG7Dj6Xz/jzJZ0Fe/Qy1tCuI eS1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=iw+uDGBzOYRqtiM2Znnb0XewaM0t0wCegdh2aCgXB+o=; b=EbkwVssa55hiqQdnysFbImVkoHvagorG6He0mRrRXMgYcW2s3QpzZQhE5ePB6vPQ7m T5PGT75llKPXH2QHPBVeVS/iD0Tdf3hP8dRi86zkooS26pYExDA6lQ1uPVBwjIpNzkZ7 IkHTg9qo1Yt4LThbjWG0xqaNYhi//Koj6O0nORbiKUuLvVq5prXde8p3yOQwSv2tnci8 XRGY7jBijBHb57VuNx8IxVaS7pC9Xp2jpEcLXOUImtF9J/2ULIStZxFQbqittGGAAqFQ zKavX2f5JY4dNopPHpQ1bOTfOvC/OslrUTkLQsRxkWZEN84whN599wP8qxsdwY5+Z9aL kPNg== X-Gm-Message-State: ALyK8tJaxqVGtFL/RKDc1kYaD+IpDD+yiuxEGuDWz1+pC+ibGvgUeP5YW2KdsrvpjqpK/Q== X-Received: by 10.28.29.211 with SMTP id d202mr21945528wmd.64.1468762513571; Sun, 17 Jul 2016 06:35:13 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-5cc4-ba14-a0d0-bdac.holly.idiocy.org. [2001:8b0:3f8:8129:5cc4:ba14:a0d0:bdac]) by smtp.gmail.com with ESMTPSA id p76sm8387427wmd.10.2016.07.17.06.35.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Jul 2016 06:35:12 -0700 (PDT) Date: Sun, 17 Jul 2016 14:35:13 +0100 From: Alan Third To: David Reitter Subject: Re: bug#16856: 24.3.50; Cursor leaves garbage in fringe Message-ID: <20160717133513.GB3529@breton.holly.idiocy.org> References: <48763C60-1B48-468A-9544-C4A63258CF32@gmail.com> <20160717084232.GA3426@breton.holly.idiocy.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856 Cc: "16856@debbugs.gnu.org" <16856@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Sun, Jul 17, 2016 at 07:41:42PM +0900, David Reitter wrote: > Good point, I can't tell.  It happens only in some situations (font > size, text extent, window size) I think I’ve got a reproducible case: Emacs -Q (visual-line-mode 1) (variable-pitch-mode 1) (setq-default cursor-type '(bar . 4)) SPC SPC SPC C-b C-b C-b It doesn’t even have to be spaces, it looks like it's any case where the bar cursor is wider than the underlying glyph. Interestingly the Mac port doesn’t seem to ever draw the bar cursor wider than the glyph whereas the NS port always draws it at the configured width. Perhaps that’s where the fault is. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 17 09:51:38 2016 Received: (at 16856) by debbugs.gnu.org; 17 Jul 2016 13:51:38 +0000 Received: from localhost ([127.0.0.1]:54373 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOmTq-0005QB-BV for submit@debbugs.gnu.org; Sun, 17 Jul 2016 09:51:38 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:35188) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOmTo-0005Py-QV for 16856@debbugs.gnu.org; Sun, 17 Jul 2016 09:51:37 -0400 Received: by mail-wm0-f65.google.com with SMTP id i5so8873354wmg.2 for <16856@debbugs.gnu.org>; Sun, 17 Jul 2016 06:51:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=AQ0x1QI0OPHupexhgXn1Sm2HxSojVJJM2AzOWUams5k=; b=MQbve5YqhkDIJsBBGGbcGr4Ynt2p4jFMSMc4uW56/ivGj9bGAW5wk34GqNQCNOa35g pBeih48pmEJmOa69JE7hLvbcgewJQpqYfE1rIqH8m76m+J0/gVBV0j3wY68raz/FmS78 5ssmsr1ZIS6IYfsqPzliJ0pp01EtrLA6Je9SANuMNJcL9UbTBy8QX5eAOYXeKzmMF0Vc /OTDFwvIizg2KZoN2Mi0E2eAkGgyQUcVzHRRs2HpnwWmost1dHetx/wXUTrfaBlNx7Tz gXMYOlrqodaUdxofgsbMzLd8ML/fZun9/perr0974jyUz/uSgRuqMx0xRPUWDj2DDlip fAvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=AQ0x1QI0OPHupexhgXn1Sm2HxSojVJJM2AzOWUams5k=; b=TKd0eRCbgk6chGc0V0Lkb+TtxbIesIX6mz3t7qzRM21iLzS5VzPyeDB2Sy8DgNx5FV bWMGVdmKifs65gV/wumVZknwy7X1pfHvMaQhRuy2/bdxD53c6HQ4sKKLB/tqz6oP1jte YzPqPKAaepl8JIUuh5jUxIwmWMfY1NTPXICBi4G7T+AAbRtjVd9z78ai8vlcWgvAIgDR z8zxtbAPTv6ODyVv/44UNKFNX2qJz93S6uxvPOQUK69lr26DOo0WvHiA5CNkFJD90MT2 06fiOFiq6gSIo41KBV6w3pGuZcqgltscfhx6prEEwNYhrOvbIH+N9hU8MaI6XCcRwk3K IYeg== X-Gm-Message-State: ALyK8tK0BaMBNJ963D5Jm/gswdXgJwnnHlz2WNx20WrArwiVeNLZd6fxoRCYjbI1kjPlxw== X-Received: by 10.28.203.137 with SMTP id b131mr16454629wmg.78.1468763491205; Sun, 17 Jul 2016 06:51:31 -0700 (PDT) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-5cc4-ba14-a0d0-bdac.holly.idiocy.org. [2001:8b0:3f8:8129:5cc4:ba14:a0d0:bdac]) by smtp.gmail.com with ESMTPSA id b203sm8448935wmh.20.2016.07.17.06.51.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Jul 2016 06:51:30 -0700 (PDT) Date: Sun, 17 Jul 2016 14:51:31 +0100 From: Alan Third To: David Reitter Subject: [PATCH] Prevent bar cursor overwriting next glyph (bug#16856) Message-ID: <20160717135131.GA4810@breton.holly.idiocy.org> References: <20160717084232.GA3426@breton.holly.idiocy.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160717084232.GA3426@breton.holly.idiocy.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) * src/nsterm.m (ns_draw_window_cursor): Test glyph width vs cursor width before setting final size. --- src/nsterm.m | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/nsterm.m b/src/nsterm.m index a6160ed..8da2ffe 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -2861,7 +2861,10 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar cursors. { if (cursor_width < 1) cursor_width = max (FRAME_CURSOR_WIDTH (f), 1); - w->phys_cursor_width = cursor_width; + + /* The bar cursor should never be wider than the glyph. */ + if (cursor_width < w->phys_cursor_width) + w->phys_cursor_width = cursor_width; } /* If we have an HBAR, "cursor_width" MAY specify height. */ else if (cursor_type == HBAR_CURSOR) -- And here's a patch to prevent the bar cursor straying into the next glyph. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 17 18:54:14 2016 Received: (at 16856) by debbugs.gnu.org; 17 Jul 2016 22:54:14 +0000 Received: from localhost ([127.0.0.1]:54900 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOuwv-0007Xe-Tg for submit@debbugs.gnu.org; Sun, 17 Jul 2016 18:54:14 -0400 Received: from mail-pf0-f193.google.com ([209.85.192.193]:36153) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bOuwu-0007XO-7E for 16856@debbugs.gnu.org; Sun, 17 Jul 2016 18:54:12 -0400 Received: by mail-pf0-f193.google.com with SMTP id y134so6038500pfg.3 for <16856@debbugs.gnu.org>; Sun, 17 Jul 2016 15:54:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=IBsYWmVf/12EjaNSyU65Np/p0Z5y5r3SqSlWEkxtMNI=; b=M0KiwPx7AfsEiFlbirQ7A/lMNDxeVBeHsw0misPM4lBtgzJU/LX21PADdOACY2EtQf HrTZrTAAexV/2D+ShyykaNOgcP35BIohgjfsSZ0Gt7+6+gM7O5eWm21RGyxcVC9snSkT BxpP+qptLI6vN97WLdgvf6aCznlETQ8GiqiDJ0IuIEbZOiuKWdZz9kyIxnPp3W+bghGW E1r0O0lDJQKBqtyPHAmjWniLlg8cIa9p+j7so232IF+IKwF6P6PpKiSk7PAnlDZQZu9q OqnKupHwJxC7E7ui16uhZTEZpPU1NNRTcWTYj5r9Qx8O9RTH6cvXUSJNB+iVis4oThC5 gh7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=IBsYWmVf/12EjaNSyU65Np/p0Z5y5r3SqSlWEkxtMNI=; b=OC5o2XjKuHjV9fwhLOtUXHw+3l3/p/Mwsj2T1bxa32a0eLAU0kA/tU9f6RLrTQtlgU LAGDK6nLJMMz3bTld4hWhap/s5dZNIr4X3srk2Wg2yLwm0oNWc4bllBbDX+Bgai2fjsM KyWPeXa92nBgfPvv1k+FlCfems3vYFu2g7UA4eNNWDPhASnAcmGYDOTGZ4zlnTat4TiI XY7sSZ2t1CadmCDRRdjPtFPB9qA0E3UlezSuXsFSGs/wL0mQqZARb8fQz8CWCHGBKGgJ sdp5SdXmSa+x4DiRGb7+Iy0A6BbCxYn8UizAzlivp1k/DQSzcMxcQ4cPSNC6+riiQ/l1 mGPQ== X-Gm-Message-State: ALyK8tLZ0x0jNm+cEO71leijBLygIG2lY5QKPv6r3Ejv222m1gezYF851YdYhRJajUO0Uw== X-Received: by 10.98.14.72 with SMTP id w69mr41246702pfi.119.1468796046438; Sun, 17 Jul 2016 15:54:06 -0700 (PDT) Received: from [172.20.10.5] ([110.70.47.70]) by smtp.gmail.com with ESMTPSA id q1sm2668762pfi.93.2016.07.17.15.54.04 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 17 Jul 2016 15:54:05 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: [PATCH] Prevent bar cursor overwriting next glyph (bug#16856) From: David Reitter In-Reply-To: <20160717135131.GA4810@breton.holly.idiocy.org> Date: Mon, 18 Jul 2016 07:54:03 +0900 Content-Transfer-Encoding: quoted-printable Message-Id: <58701B24-4BAC-4B03-B173-AE6F1D3468F3@gmail.com> References: <20160717084232.GA3426@breton.holly.idiocy.org> <20160717135131.GA4810@breton.holly.idiocy.org> To: Alan Third X-Mailer: Apple Mail (2.3124) X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) No ill effects with that. What is the glyph at the end of the line? Also, about your patch, it seems like w->phys_cursor_width will then = just be whatever it was before. > On Jul 17, 2016, at 10:51 PM, Alan Third wrote: >=20 > * src/nsterm.m (ns_draw_window_cursor): Test glyph width vs cursor = width > before setting final size. > --- > src/nsterm.m | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) >=20 > diff --git a/src/nsterm.m b/src/nsterm.m > index a6160ed..8da2ffe 100644 > --- a/src/nsterm.m > +++ b/src/nsterm.m > @@ -2861,7 +2861,10 @@ Note that CURSOR_WIDTH is meaningful only for = (h)bar cursors. > { > if (cursor_width < 1) > cursor_width =3D max (FRAME_CURSOR_WIDTH (f), 1); > - w->phys_cursor_width =3D cursor_width; > + > + /* The bar cursor should never be wider than the glyph. */ > + if (cursor_width < w->phys_cursor_width) > + w->phys_cursor_width =3D cursor_width; > } > /* If we have an HBAR, "cursor_width" MAY specify height. */ > else if (cursor_type =3D=3D HBAR_CURSOR) > --=20 >=20 > And here's a patch to prevent the bar cursor straying into the next = glyph. > --=20 > Alan Third From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 18 10:27:04 2016 Received: (at 16856) by debbugs.gnu.org; 18 Jul 2016 14:27:04 +0000 Received: from localhost ([127.0.0.1]:55866 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bP9Vg-0007s7-BH for submit@debbugs.gnu.org; Mon, 18 Jul 2016 10:27:04 -0400 Received: from mail-vk0-f41.google.com ([209.85.213.41]:35378) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bP9Vf-0007rd-9Q for 16856@debbugs.gnu.org; Mon, 18 Jul 2016 10:27:03 -0400 Received: by mail-vk0-f41.google.com with SMTP id w127so182368488vkh.2 for <16856@debbugs.gnu.org>; Mon, 18 Jul 2016 07:27:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=Va2MhWxD1zdYrylDjlbOQtoVqg3wCbvKDocRxGLgz9E=; b=NHeIi/GFqiMKadt3ZInvjWGX6HIecJ0bHNXQieZmnsIoZfdJvn5mOxZ70VrpDr3RMw acpQ12wdUh9CSjjs0oXzieQVD2r23j/QEXk4+SkgZZmJK4SYwslZ9Xp4J+Y6vYs0yGQN x2RPTXFUXwU6tAjpx/rFGOI/lcKMV1QrT+5HGNCyiS6gbfAY8ff9kWjwb478/oI3V30b 6nOQklzMI2ggoHP/B/X+rAV/zg9pX3WEKlEBtekAczrSUu0HLuLtE3LFfN2F+kOTdfYf 0t25xBwm9PXfyMkcfn8hwNmx5ihGYHfA79IswtGvxt2iAajm1apA8WF5e+EJZhsI5tpe bHCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=Va2MhWxD1zdYrylDjlbOQtoVqg3wCbvKDocRxGLgz9E=; b=OErEEz+scnnlpqhr8rFdimW0IDk69PEpu3RLW1NyGdQvlEhKljr98FyDNCJF372qaE dK8xcVkQNR3Ir9FcSkvLe9x3YeHClUaKFGLocra3UHOi5fdVIjxVjyq5Be7wInpImppf gKK6GDV2QZZzSzQQgfcq5UQW8fd/XdENhU1ebHwn5AIIKoy7vJ+MZuSazUeyBxRsnXLh J3tUbLyEXcFhcyX8IZ7mfjFAl8k+SKsKZKwLpg25ojHc/K2VpXpuHWOX52i8wIsSs/Xc ZBKkdkhceFAcogWvO7/4mKRGMhhgTRPMyvyjDCIQPJndyLnd8k+v9PrwV2Cp66PHBLay 904A== X-Gm-Message-State: ALyK8tI+SxhB8lmnaZc7N5A4HL4nLE7rS4YVOyRNPauhOm+NhhEPLlZjx7Zaop+x/hMWcxAQKwz39wlEeOtaMQ== X-Received: by 10.31.4.4 with SMTP id 4mr18311326vke.121.1468852017857; Mon, 18 Jul 2016 07:26:57 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.65.41 with HTTP; Mon, 18 Jul 2016 07:26:57 -0700 (PDT) In-Reply-To: <58701B24-4BAC-4B03-B173-AE6F1D3468F3@gmail.com> References: <20160717084232.GA3426@breton.holly.idiocy.org> <20160717135131.GA4810@breton.holly.idiocy.org> <58701B24-4BAC-4B03-B173-AE6F1D3468F3@gmail.com> From: Alan Third Date: Mon, 18 Jul 2016 15:26:57 +0100 X-Google-Sender-Auth: Rwiqt_913OlG9dyBHzw0WWxVS20 Message-ID: Subject: Re: bug#16856: [PATCH] Prevent bar cursor overwriting next glyph (bug#16856) To: David Reitter Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On 17 July 2016 at 23:54, David Reitter wrote: > No ill effects with that. What is the glyph at the end of the line? I don't know how the end-of-line is displayed. On the Windows Emacs I've got here it's a narrow glyph (same as space, I think), so the bar isn't displayed at it's full width if it's set to be wide. I expect it'll be the same on the Mac, I can check later if you want. > Also, about your patch, it seems like w->phys_cursor_width will then just be whatever it was before. No, w->phys_cursor_width appears to hold the glyph width by default, so we should end up with the smaller of cursor_width or the glyph width. I realise it might be more desirable to have the bar cursor be a consistent width, but that would make the NS port different from all the others, afaics. -- Alan Third From unknown Wed Jun 18 23:04:59 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 16 Aug 2016 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 09 13:38:37 2017 Received: (at control) by debbugs.gnu.org; 9 Nov 2017 18:38:38 +0000 Received: from localhost ([127.0.0.1]:60761 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eCrin-0001VG-MC for submit@debbugs.gnu.org; Thu, 09 Nov 2017 13:38:37 -0500 Received: from gateway33.websitewelcome.com ([192.185.145.33]:28006) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eCrik-0001V7-HH for control@debbugs.gnu.org; Thu, 09 Nov 2017 13:38:35 -0500 Received: from cm15.websitewelcome.com (cm15.websitewelcome.com [100.42.49.9]) by gateway33.websitewelcome.com (Postfix) with ESMTP id 99F4720BCD0 for ; Thu, 9 Nov 2017 12:38:33 -0600 (CST) Received: from gator3053.hostgator.com ([50.87.144.69]) by cmsmtp with SMTP id CrijeyPfo5b6TCrijeC4Za; Thu, 09 Nov 2017 12:38:33 -0600 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com ; s=default; h=Content-Type:MIME-Version:Subject:To:From:Message-ID:Date: Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=61kHYbz/f9Qc10f2PQ55FcDsbq2fMt4mL3YhisoytAw=; b=ZgsnE1v7YY+Qodwhokj1ZHRTlo b+uDIeYigj7QodMePsuxVSRzsNRSpgRkAaYcM5rz4xBbFmjZIWbGg3+0/uQ8XpeBgR4hAWXvrstKx 1ExPd6naHoFcNtXr//ozLMZnAKzemRTYmRIXVGrKc9WygHfzz4mdpqcNqhlYsSpa3hulDIfXPhNdu SW8KAt0XwFyr+/c38TiuU+d//y0no4gVI+5eK1vMuzEJVW1OdL/44ir7vD2BiIEtV5THwOba0hjMI am/pEEc0hE1SWqdSkBlnrOUx2W8RkVb0W8iP6dty8JPykpOazsPqcOs4FPMuFBFQvo/54lSVGLRwn YUr6SAjA==; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:50094 helo=server.private) by gator3053.hostgator.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.87) (envelope-from ) id 1eCrii-004LsF-Rw for control@debbugs.gnu.org; Thu, 09 Nov 2017 12:38:32 -0600 Date: Thu, 09 Nov 2017 10:38:32 -0800 Message-ID: From: Keith David Bershatsky To: control@debbugs.gnu.org Subject: bug#16856: Cursor leaves garbage in fringe. MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator3053.hostgator.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-BWhitelist: no X-Source-IP: 45.48.239.195 X-Source-L: No X-Exim-ID: 1eCrii-004LsF-Rw X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: cpe-45-48-239-195.socal.res.rr.com (server.private) [45.48.239.195]:50094 X-Source-Auth: lawlist X-Email-Count: 1 X-Source-Cap: bGF3bGlzdDtsYXdsaXN0O2dhdG9yMzA1My5ob3N0Z2F0b3IuY29t X-Local-Domain: yes X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) unarchive 16856 From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 09 13:50:48 2017 Received: (at 16856) by debbugs.gnu.org; 9 Nov 2017 18:50:48 +0000 Received: from localhost ([127.0.0.1]:60770 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eCruZ-0003gK-Q5 for submit@debbugs.gnu.org; Thu, 09 Nov 2017 13:50:47 -0500 Received: from gateway33.websitewelcome.com ([192.185.146.87]:14461) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eCruW-0003gB-IE for 16856@debbugs.gnu.org; Thu, 09 Nov 2017 13:50:46 -0500 Received: from cm12.websitewelcome.com (cm12.websitewelcome.com [100.42.49.8]) by gateway33.websitewelcome.com (Postfix) with ESMTP id 423037A837 for <16856@debbugs.gnu.org>; Thu, 9 Nov 2017 12:50:43 -0600 (CST) Received: from gator3053.hostgator.com ([50.87.144.69]) by cmsmtp with SMTP id CruUeZy1rDL8rCruVeO2nN; Thu, 09 Nov 2017 12:50:43 -0600 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com ; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date: Sender:Reply-To:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=Gt0Oql2lLHUxP5AkkKqaUC3FRw9QhC78fltWrQlDddU=; b=G2Qn94I30F83N5807T651ubRvF clh8T14fbxLiKawGKay3HOmdI0RwC/L7uqj6xhSb1SGjCcqmysZYvlLM54BV2Q8aypQTLZZs0EY08 xoo8B7JPgj62dQQapfB+Iw5zEejoIhk3mrjmUoyLe5cpENk/H7udli5iuIp2OhcJo+x8Zuny1za3O S0ySmDlVr+2gptWGP8kb1nk09W2SY6MaSiqb/4mlraEZ2HztRkcD7axPh2ZTeusRTmHkm7JbTHvs/ KjTZVTY2Za78tESf/TeonPMZ9O2Mstqgcqzw0zVAivaHJbYYrkSpt4SyacvrF8+OrajRcZcDqyeYw tNsHA6uw==; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:50175 helo=server.private) by gator3053.hostgator.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.87) (envelope-from ) id 1eCruT-0008xV-VD; Thu, 09 Nov 2017 12:50:42 -0600 Date: Thu, 09 Nov 2017 10:50:41 -0800 Message-ID: From: Keith David Bershatsky To: Emacs Bug Reports Subject: Enable fringe cursor when *almost* exact_window_width_line_p MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator3053.hostgator.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-BWhitelist: no X-Source-IP: 45.48.239.195 X-Source-L: No X-Exim-ID: 1eCruT-0008xV-VD X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: cpe-45-48-239-195.socal.res.rr.com (server.private) [45.48.239.195]:50175 X-Source-Auth: lawlist X-Email-Count: 7 X-Source-Cap: bGF3bGlzdDtsYXdsaXN0O2dhdG9yMzA1My5ob3N0Z2F0b3IuY29t X-Local-Domain: yes X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 16856 Cc: Alan Third , 16856@debbugs.gnu.org, Martin Rudalics , David Reitter , Eli Zaretskii , Anders Lindgren X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) For those users who wish to customize the frame width pixelwise to a size such that exact_window_width_line_p will _never_ be true, those users miss out on the joy of seeing the fringe cursor bitmap. While the patch that was applied pursuant to Bug#16856 fixed the problem with the cursor being drawn on top of the fringe (e5015c5d9632a0bf685c093249ae4a7d3e825b13), it does not permit a fringe bitmap to be placed there instead. If I had it to do all over again, I would have made the following two modifications. [I have not yet experimented with xterm.c and w32term.c to see if the new condition should be added there as well for Emacs platform builds on Windows and X11.] In window.c, add the following condition to get_phys_cursor_glyph: /* This modification enables placement of the cursor-in-fringe bitmap when the window-width is slightly less than `glyph_row->exact_window_width_line_p`. This modification also prevents drawing the real cursor on the fringe (instead of using the cursor-in-fringe bitmap) in the above-mentioned circumstance. */ struct frame *f = XFRAME (w->frame); int frame_char_width = FRAME_COLUMN_WIDTH (f); int text_area_width = window_box_width (w, TEXT_AREA); bool cursor_in_fringe_p = w->phys_cursor.x + frame_char_width >= text_area_width; if (cursor_in_fringe_p) return NULL; And, in nsterm.m, modify a section of ns_draw_window_cursor to include the new condition: if ((phys_cursor_glyph = get_phys_cursor_glyph (w)) == NULL) { /* This modification enables placement of the cursor-in-fringe bitmap when the window-width is slightly less than `glyph_row->exact_window_width_line_p`. This modification also prevents drawing the real cursor on the fringe (instead of using the cursor-in-fringe bitmap) in the above-mentioned circumstance. */ int frame_char_width = FRAME_COLUMN_WIDTH (f); int text_area_width = window_box_width (w, TEXT_AREA); bool cursor_in_fringe_p = w->phys_cursor.x + frame_char_width >= text_area_width; if ((glyph_row->exact_window_width_line_p && w->phys_cursor.hpos >= glyph_row->used[TEXT_AREA]) || cursor_in_fringe_p) { glyph_row->cursor_in_fringe_p = 1; draw_fringe_bitmap (w, glyph_row, 0); } return; } From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 09 14:00:09 2017 Received: (at 16856) by debbugs.gnu.org; 9 Nov 2017 19:00:10 +0000 Received: from localhost ([127.0.0.1]:60794 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eCs3c-0003wU-FX for submit@debbugs.gnu.org; Thu, 09 Nov 2017 14:00:09 -0500 Received: from gateway31.websitewelcome.com ([192.185.143.39]:39266) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eCs3a-0003vS-5o for 16856@debbugs.gnu.org; Thu, 09 Nov 2017 14:00:06 -0500 Received: from cm11.websitewelcome.com (cm11.websitewelcome.com [100.42.49.5]) by gateway31.websitewelcome.com (Postfix) with ESMTP id 9E9B04B3180 for <16856@debbugs.gnu.org>; Thu, 9 Nov 2017 13:00:05 -0600 (CST) Received: from gator3053.hostgator.com ([50.87.144.69]) by cmsmtp with SMTP id Cs3ZeKYK8tuxmCs3Zeh7PD; Thu, 09 Nov 2017 13:00:05 -0600 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com ; s=default; h=Content-Type:MIME-Version:Subject:To:From:Message-ID:Date: Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=/P5eMLwK9cIGQTtuRDK5Cbz126qJUvsWRhWLvjz8z+Q=; b=YOvZ5c8eK4b1E/MWLEv7vHPF20 fprxNgSI7a2MOTvMnYWtijfMF55p5d2z7c6YmLugClKXSEiFsFsNIdvzIhTUVFJ6uswkGoRHl9FWF /vA20oXdR182fhisRNgqU8F1XWgdkx/Q7sFoFA67jT3C5VikjPydHr4UOascoYgCWVURl2vrZbSlB cGeUjFX66X3SfzOCVxJUOUmwHoDitSI1Y/E1pHPoHsVSpQsCSTXYNCt8X0CggDccVAq6OxDStkA78 JaxkVcRgZ9mzSBMgGESVpmtpTlutHylW/zhTPYZPUvB6F+9vKRgbuuDXinhC/KGFESzuoDT3g7XN/ +HWGbcEg==; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:50250 helo=server.private) by gator3053.hostgator.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.87) (envelope-from ) id 1eCs3Y-000Ia1-Ou for 16856@debbugs.gnu.org; Thu, 09 Nov 2017 13:00:04 -0600 Date: Thu, 09 Nov 2017 11:00:04 -0800 Message-ID: From: Keith David Bershatsky To: 16856@debbugs.gnu.org Subject: bug#16856: Cursor leaves garbage in fringe. MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator3053.hostgator.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-BWhitelist: no X-Source-IP: 45.48.239.195 X-Source-L: No X-Exim-ID: 1eCs3Y-000Ia1-Ou X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: cpe-45-48-239-195.socal.res.rr.com (server.private) [45.48.239.195]:50250 X-Source-Auth: lawlist X-Email-Count: 1 X-Source-Cap: bGF3bGlzdDtsYXdsaXN0O2dhdG9yMzA1My5ob3N0Z2F0b3IuY29t X-Local-Domain: yes X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 16856 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) See also the related patch that was applied on July 19, 2016: bf5ddded70c11edaf3514b25da27fc71cfb8e965 From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 09 17:11:56 2017 Received: (at 16856) by debbugs.gnu.org; 9 Nov 2017 22:11:56 +0000 Received: from localhost ([127.0.0.1]:60974 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eCv3E-0005tl-4e for submit@debbugs.gnu.org; Thu, 09 Nov 2017 17:11:56 -0500 Received: from mail-wr0-f176.google.com ([209.85.128.176]:46135) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eCv39-0005tE-2t for 16856@debbugs.gnu.org; Thu, 09 Nov 2017 17:11:54 -0500 Received: by mail-wr0-f176.google.com with SMTP id y42so6964634wrd.3 for <16856@debbugs.gnu.org>; Thu, 09 Nov 2017 14:11:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=CKpdAozec/q5CKhntgcOz027+amvuRsJVnmh9uibt7M=; b=orXhuy9+X5VruEInZnZixOlm9Lpu4/SkCCt50i1Dsi+U67Qf5nxfooAcKd8XTtJ57q JTWO7kGG9WuQrL1PaUQI4n/bLKVjbf9FdnUuRbNFuQzIFBYlMfv0V5PLL3zVu1Vor7cm KH96N0vXEWJ4Wv0BMbqrBsBijjkLkHfOEGL/aEm1oQJg6iD0uHbhSaBaiCp7SpxIK5ZU VXRbEjSGI8tNJc5WAYN3o2P+4v+jnFW7itTKXxDk2LZ6T8uQfq5s1Qm0I/XPMdH2c6nc /gWM0OeMo3MhJvyHSR43Xa3IK9LoZWoSlnVlZzFxgS+zu+tqduZTXmz/ThVvZ1ML+ZvZ vOAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=CKpdAozec/q5CKhntgcOz027+amvuRsJVnmh9uibt7M=; b=cxlAIPKwrdFW60hq/7zB/py9D2JabVxSJEquGetwtPbRuXRyGn8raVSiGJyR4YLFfJ Ed4/h0p3ym5STXmi3sgjaGju9TNr7LCFIA9B0QMMswI63UNvB8yKmv7Rsf1w86lXRT2K QZXAYc+g8bAX3tTotebH7JGCahWPsKjUh5lvAjW/knNhW4myipitXV/iU7/kJzTU+AqK cpKFrdwgYZS8dqkIZbQqzjph747i0j0jsgi/pF7Dk1BbH7Mnv43JWamXGTdLpxRC0im9 G7NKPAvj2S4Y4J/aUJtloC4J5zeuu4bs3ywzojQHJUtoKmAW5mrHeJ7io+pvUL92W8CZ cBfw== X-Gm-Message-State: AJaThX59Iwc8ig1W3Wcd3O/rqK5ZlbaXYgl78+GdwckQne6XWoo8ik1k wfQwEfsOvfUMneW1Sm6Qsdg= X-Google-Smtp-Source: ABhQp+T7UdmQdID06PWiGNW2St8xy5nhRCKQEsJEV35DRZYE9+Gb3zZtaVym4m77UgfJoZnBG/7Ilw== X-Received: by 10.223.143.54 with SMTP id p51mr1577652wrb.138.1510265505385; Thu, 09 Nov 2017 14:11:45 -0800 (PST) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-bc00-09b1-cc5f-9335.holly.idiocy.org. [2001:8b0:3f8:8129:bc00:9b1:cc5f:9335]) by smtp.gmail.com with ESMTPSA id t189sm2921945wmf.43.2017.11.09.14.11.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 09 Nov 2017 14:11:44 -0800 (PST) Date: Thu, 9 Nov 2017 22:11:42 +0000 From: Alan Third To: Keith David Bershatsky Subject: Re: Enable fringe cursor when *almost* exact_window_width_line_p Message-ID: <20171109221142.GA680@breton.holly.idiocy.org> References: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="3V7upXqbjpZ4EhLz" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.9.1 (2017-09-22) X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org, Emacs Bug Reports , Martin Rudalics , David Reitter , Eli Zaretskii , Anders Lindgren X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) --3V7upXqbjpZ4EhLz Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit On Thu, Nov 09, 2017 at 10:50:41AM -0800, Keith David Bershatsky wrote: > For those users who wish to customize the frame width pixelwise to a > size such that exact_window_width_line_p will _never_ be true, those > users miss out on the joy of seeing the fringe cursor bitmap. While > the patch that was applied pursuant to Bug#16856 fixed the problem > with the cursor being drawn on top of the fringe > (e5015c5d9632a0bf685c093249ae4a7d3e825b13), it does not permit a > fringe bitmap to be placed there instead. > > If I had it to do all over again, I would have made the following > two modifications. [I have not yet experimented with xterm.c and > w32term.c to see if the new condition should be added there as well > for Emacs platform builds on Windows and X11.] This needs a bit more work I’m afraid. If you’re using a bar cursor it can seem like it’s putting the cursor into the fringe somewhat prematurely. I think it should be using the width of the cursor rather than the glyph width. Additionally I’ve attached a screenshot of the cursor in the fringe when it shouldn’t be. It should appear over the last x on the line (point is before the last x on the line). David, I can’t replicate junk in the fringe. Do you have a recipe? -- Alan Third --3V7upXqbjpZ4EhLz Content-Type: image/png Content-Disposition: attachment; filename="fringe-cursor.png" Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAoMAAAAyCAYAAAAnZ9F3AAAKsmlDQ1BJQ0MgUHJvZmlsZQAA SImVlgdUE9kax+/MpBdaAgJSQu9Ir9JrAAHpYCMklFBiCAQFsSGLK7CiiIiABXAVRMFVKbIW RBELoqiAfUEWAWVdLIiKyg7wCG/fO++98/5zvrm/8+XON9/c3HvOHwDKQxafnwhLAJDESxUE eDgzwsIjGPgBAAEMoAA5gLDYKXwnf38fgGp+/Ls+9qKzUd03mKn177//V0lyolPYAED+KEdx UthJKJ9Fo5XNF6QCgKAB1Nal8me4BGW6AG0Q5RMzHDvHrTMcNccPZucEBbigPAIAgcJiCWIB IH9A84w0dixah0JH2YjH4fJQdkXZnh3H4qCcjbJ+UtLaGT6FsnbUP9WJ/VvNKFFNFitWxHPf MiuCKzeFn8hK/z+X438rKVE4/w5VNChxAs8AdJRF16w6Ya23iHlRvn7zzOXMzp/lOKFn8Dyz U1wi5pnDcvWeZ2FCsNM8swQLz3JTmUHzLFgbIKrPS/T1EdWPZoo4OsUtcJ5juO7Mec6ICwqd 5zRuiO88pyQEei/McRHlBcIAUc8xAnfRNyalLPTGZi28KzUuyHOhhzBRP5xoVzdRnhcsms9P dRbV5Cf6L/Sf6CHKp6QFip5NRTfYPMezvPwX6viL1ge4Ajfgg14MYALMgBEwB+7AH4SmRq+f 2dPAZS0/XcCNjUtlOKGnJprB5LEN9RkmRsaWAMycwbm/+P2d2bMFyUYt5JLRfWj9GN2LlQu5 yHYAGosBkLmwkFO/DYD4LgCab7OFgrS5HGbmhgUkIA7o6OlWAmpAGxigHVoAW+CIduwF/EAQ CAerARvEgSQgAOtAJtgKckAe2AX2glJwCFSBanASnAZN4Dy4DK6BW+Au6AFPQD8YAq/BOPgI piAIwkNUiAbJQcqQBqQHmUBWkD3kBvlAAVA4FAnFQjxICGVC26A8qBAqhSqgGugX6Bx0GboB dUOPoAFoFHoHfYERmALTYUVYE14CW8FOsDccBK+CY+FkOAPOhnfCJXAlfAJuhC/Dt+AeuB9+ DU8gACEjMogKYoBYIS6IHxKBxCACZBOSixQjlUgd0oJ0IPeRfmQM+YzBYWgYBsYAY4vxxARj 2JhkzCZMPqYUU41pxFzF3McMYMYx37FUrAJWD2uDZWLDsLHYddgcbDH2KLYB247twQ5hP+Jw OBmcFs4S54kLx8XjNuDycQdw9bhWXDduEDeBx+Pl8Hp4O7wfnoVPxefg9+NP4C/h7+GH8J8I ZIIywYTgTogg8AhZhGLCccJFwj3CMGGKKEHUINoQ/YgcYjqxgHiE2EK8QxwiTpEkSVokO1IQ KZ60lVRCqiO1k56S3pPJZFWyNXk5mUveQi4hnyJfJw+QP1OkKLoUF8pKipCyk3KM0kp5RHlP pVI1qY7UCGoqdSe1hnqF+pz6SYwmZijGFOOIbRYrE2sUuyf2RpworiHuJL5aPEO8WPyM+B3x MQmihKaEiwRLYpNEmcQ5iT6JCUmapLGkn2SSZL7kcckbkiNSeClNKTcpjlS2VJXUFalBGkJT o7nQ2LRttCO0dtoQHUfXojPp8fQ8+kl6F31cWkraTDpEer10mfQF6X4ZREZThimTKFMgc1qm V+bLIsVFTouiF+1YVLfo3qJJ2cWyjrLRsrmy9bI9sl/kGHJucglyu+Wa5J7JY+R15ZfLr5M/ KN8uP7aYvth2MXtx7uLTix8rwAq6CgEKGxSqFDoVJhSVFD0U+Yr7Fa8ojinJKDkqxSsVKV1U GlWmKdsrc5WLlC8pv2JIM5wYiYwSxlXGuIqCiqeKUKVCpUtlSlVLNVg1S7Ve9ZkaSc1KLUat SK1NbVxdWX2ZeqZ6rfpjDaKGlUacxj6NDo1JTS3NUM3tmk2aI1qyWkytDK1arafaVG0H7WTt Su0HOjgdK50EnQM6d3VhXXPdON0y3Tt6sJ6FHlfvgF63PlbfWp+nX6nfZ0AxcDJIM6g1GDCU MfQxzDJsMnyzRH1JxJLdSzqWfDcyN0o0OmL0xFjK2Ms4y7jF+J2JrgnbpMzkgSnV1N10s2mz 6VszPbNos4NmD81p5svMt5u3mX+zsLQQWNRZjFqqW0Zallv2WdGt/K3yra5bY62drTdbn7f+ bGNhk2pz2uZPWwPbBNvjtiNLtZZGLz2ydNBO1Y5lV2HXb8+wj7Q/bN/voOLAcqh0eOGo5shx POo47KTjFO90wumNs5GzwLnBedLFxmWjS6sr4urhmuva5SblFuxW6vbcXdU91r3WfdzD3GOD R6sn1tPbc7dnH1ORyWbWMMe9LL02el31pngHepd6v/DR9RH4tCyDl3kt27Psqa+GL8+3yQ/4 Mf32+D3z1/JP9v91OW65//Ky5S8DjAMyAzoCaYFrAo8HfgxyDioIehKsHSwMbgsRD1kZUhMy GeoaWhjaH7YkbGPYrXD5cG54cwQ+IiTiaMTECrcVe1cMrTRfmbOyd5XWqvWrbqyWX524+sIa 8TWsNWcisZGhkccjv7L8WJWsiShmVHnUONuFvY/9muPIKeKMRttFF0YPx9jFFMaMxNrF7okd jXOIK44b47pwS7lv4z3jD8VPJvglHEuYTgxNrE8iJEUmneNJ8RJ4V9cqrV2/tpuvx8/h9yfb JO9NHhd4C46mQCmrUppT6ajZ6RRqC38QDqTZp5WlfVoXsu7Mesn1vPWd6brpO9KHM9wzft6A 2cDe0Japkrk1c2Cj08aKTdCmqE1tm9U2Z28e2uKxpXoraWvC1ttZRlmFWR+2hW5ryVbM3pI9 +IPHD7U5YjmCnL7tttsP/Yj5kftj1w7THft3fM/l5N7MM8orzvuaz86/+ZPxTyU/Te+M2dlV YFFwcBduF29X726H3dWFkoUZhYN7lu1pLGIU5RZ92Ltm741is+JD+0j7hPv6S3xKmver79+1 /2tpXGlPmXNZfblC+Y7yyQOcA/cOOh6sO6R4KO/Ql8Pcww8rPCoaKzUri6twVWlVL4+EHOn4 2ernmqPyR/OOfjvGO9ZfHVB9tcaypua4wvGCWrhWWDt6YuWJuyddTzbXGdRV1MvU550Cp4Sn Xv0S+Uvvae/TbWesztSd1Thb3kBryG2EGtMbx5vimvqbw5u7z3mda2uxbWn41fDXY+dVzpdd kL5QcJF0Mfvi9KWMSxOt/Naxy7GXB9vWtD25EnblwdXlV7vavduvX3O/dqXDqePSdbvr52/Y 3Dh30+pm0y2LW42d5p0Nt81vN3RZdDXesbzTfNf6bkv30u6L9xzuXb7vev/aA+aDWz2+Pd29 wb0P+1b29T/kPBx5lPjo7eO0x1NPtjzFPs19JvGs+LnC88rfdH6r77fovzDgOtD5IvDFk0H2 4OvfU37/OpT9kvqyeFh5uGbEZOT8qPvo3VcrXg295r+eGsv5Q/KP8jfab87+6fhn53jY+NBb wdvpd/nv5d4f+2D2oW3Cf+L5x6SPU5O5n+Q+VX+2+tzxJfTL8NS6r/ivJd90vrV89/7+dDpp eprPErBmrQCCBhwTA8C7YwBQwwGg3QWAJDbnkWcFzfn6WQL/ied89KwsAKhqBSBoCwA+6FiG jpqOqAdBY8YiodYINjUVxT+UEmNqMleLIo9ak9bp6XfTAOAjAfjWNT09VTI9/Q31NQjqry/5 znnzGUmg/v+whJGRe2Crdy74V/0FF68HZLxRWMcAAAGcaVRYdFhNTDpjb20uYWRvYmUueG1w AAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAg Q29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcv MTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRm OmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20v ZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjY0MzwvZXhpZjpQ aXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj41MDwvZXhp ZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpS REY+CjwveDp4bXBtZXRhPgqKv+FdAAAHDElEQVR4Ae3dP2wbZRzG8d/ZlXAHB+MSBjoEqV26 pIoYgvPXzgQLytIJVpCYSBmoMiSDKxFZApWVUjZgIULUA6iFpI1RcRcslaUdsJQMlqJIWWLJ dVxFL+/7Otc4dmxLOWL77K+l813u3t6993nfe/3oLm6ceDyuRL+UsjM7N8v1Px8cHEilUpFc LmeKS7FYtPNmb+FwuNkm1iOAAAIIIIAAAghogXZ5qlQqSSQSEcdx7JTNZhvczDbzMtktFovZ ZbPfaDRql1e+uiUXLrwur4RCEggEJRgMiBMISFBPZh6wpXhDAAEEEEAAAQQQGEgBwuBANjsn jQACCCCAAAIIVAXOAYEAAggggAACCCDQvwIXXh2S4dciEjof0o+GzWPioH5crB8T67kTcHhM 3L9Nz5khgAACCCCAAALtBXhM3N6IEggggAACCCCAQN8KEAb7tmk5MQQQQAABBBBAoL0AYbC9 ESUQQAABBBBAAIG+FSAM9m3TcmIIIIAAAggggEB7AcJgeyNKIIAAAggggAACfStAGOzbpuXE EEAAAQQQQACB9gKEwfZGlEAAAQQQQAABBM5EYGhoSMzUzRdhsJv6HBsBBBBAAAEEEOiyAGGw yw3A4RFAAAEEEEAAgW4K8OfouqnPsRFAAAEEEEBgoAX29vbs+dc/KnbXdwLnzO4MlvOrMufM S3qrXD2Pcl5uzl2V66t5YRsutlPQJ7geGCcYI81gwFjAWDDAY0E1JDW+14fDxhL/45p4PK7M NDs7a6eZmRk1PT2tpqam7DQ5OakmJibU+Pi4GhsbU+5LJ1bValLqhfptUZTIoiqY5QWznFSb L8we2IYLfYLrgbGAMZLPBz4byQXNspSOejo3idre3lblclnt7++rSqWiNjY2GqZMJqPMZLaZ Mmba3d11I5v65ts76udf0urXe/fVvd/X1B/rD9X6Q13+z0cq8+gvJWcXBk0dCiqVqJ6MSEKt 7bysF9tw0Z2cPnF0RXCtVAc++gR9wghwPXA9DM5Y4IZB0+a1y9U+0BdhUKm9xymbbBOpv4/G uMMltonC5Xi3oE/QJ473CMYQ84HAOHG8VzBO0CeO9wh/jxMnBUA3CJq5/+8MPn+qFvSJSGLU BsKf/n1+1H5sw0X3DfrE4SXB9cD1wPXA54MRYCwYuLGgVRg023weBvfUDx+aR8QpZZ4OZ5Im EH6snto8yDZc6BNcD+aTj7GAsYCxgLFgsMeCZmHQXe/rMLh5d0GHP/3Mv2C/MaJbelMlR3U4 XLir2IaLufTpE1wPjAWMBYwFfDYOei5wQ1/to2F3uVN3Bh3zBRJ9UNEXpJnZuVmu//ng4ED0 t1Mkl8vZcsVi0c6bvYXD4WabWI8AAggggAACCCCgBRzHsQ46+J3oUSqVJBKJ2HKmbDabbSjn 7sNkt1gsZrebnBaNRu3y7TvfyfDwGxI6H5JgICjBYFACgYCdOwFHzuz/GWyoKSsQQAABBBBA AAEEek6Av0DSc01ChRBAAAEEEEBgUASa3RHs5PlzZ7CT2hwLAQQQQAABBBDoMQHCYI81CNVB AAEEEEAAAQQ6KUAY7KQ2x0IAAQQQQAABBHpMwPPvDNb/IeVeePbdY8ZUBwEEEEAAAQQQ6FkB T3cG64Ng7VmW86sy58xLeqtcXV3Oy825q3J9NV9bjGUEEEAAAQQQQACBLgqc+s6gGwSb3QkM XZqXzxevyXtvJaWgkvLP4mVZfpCUzfuXuni6HBoBBBBAAAEEEECgVuDUYdDdiQmFbiCsXRY5 J+9+UZDU44ty0VnRxROytrMkI56P6B6ZOQIIIIAAAggggIBXAU+Pid2DmxDo3il011Xnb8on Kym7mEh9KXPDx7fyEwIIIIAAAggggEB3BU4dBt27gS2rX34my+/c0DcFR+XBjbdlNX/4+4Mt /xEbEUAAAQQQQAABBDolcOowaCrYOhAW5cePrsjXkpKd9SeSSY7KtcufyjPyYKfaluMggAAC CCCAAAJtBTyFwZMfDVePuZVelg++178nWPhMzNPh6aW0JEdvy5XFdNtKUQABBBBAAAEEEECg MwKevs7R6s7gyPu3RKnakxiRpSdKlmpXsYwAAggggAACCCDQVQFPdwa7WnMOjgACCCCAAAII IOBZgDDomZAdIIAAAggggAAC/hUgDPq37ag5AggggAACCCDgWYAw6JmQHSCAAAIIIIAAAv4V IAz6t+2oOQIIIIAAAggg4FmAMOiZkB0ggAACCCCAAAL+FSAM+rftqDkCCCCAAAIIIOBZgDDo mZAdIIAAAggggAAC/hUgDPq37ag5AggggAACCCDgWYAw6JmQHSCAAAIIIIAAAv4VIAz6t+2o OQIIIIAAAggg4FmAMOiZkB0ggAACCCCAAAL+FSAM+rftqDkCCCCAAAIIIOBZ4D+6NgUiQJjt MAAAAABJRU5ErkJggg== --3V7upXqbjpZ4EhLz-- From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 10 02:54:16 2017 Received: (at 16856) by debbugs.gnu.org; 10 Nov 2017 07:54:16 +0000 Received: from localhost ([127.0.0.1]:33094 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eD48m-00089y-5b for submit@debbugs.gnu.org; Fri, 10 Nov 2017 02:54:16 -0500 Received: from eggs.gnu.org ([208.118.235.92]:52818) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eD48j-00089g-NL for 16856@debbugs.gnu.org; Fri, 10 Nov 2017 02:54:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eD48d-0002tu-Bk for 16856@debbugs.gnu.org; Fri, 10 Nov 2017 02:54:08 -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,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:50362) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eD48V-0002oX-D0; Fri, 10 Nov 2017 02:53:59 -0500 Received: from [176.228.60.248] (port=3525 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eD48U-000334-KA; Fri, 10 Nov 2017 02:53:59 -0500 Date: Fri, 10 Nov 2017 09:53:56 +0200 Message-Id: <8360air2ln.fsf@gnu.org> From: Eli Zaretskii To: Alan Third In-reply-to: <20171109221142.GA680@breton.holly.idiocy.org> (message from Alan Third on Thu, 9 Nov 2017 22:11:42 +0000) Subject: Re: Enable fringe cursor when *almost* exact_window_width_line_p References: <20171109221142.GA680@breton.holly.idiocy.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit 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-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 16856 Cc: david.reitter@gmail.com, 16856@debbugs.gnu.org, esq@lawlist.com, andlind@gmail.com, rudalics@gmx.at X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > Date: Thu, 9 Nov 2017 22:11:42 +0000 > From: Alan Third > Cc: Emacs Bug Reports , 16856@debbugs.gnu.org, > Eli Zaretskii , Anders Lindgren , > Martin Rudalics , > David Reitter > > Additionally I’ve attached a screenshot of the cursor in the fringe > when it shouldn’t be. It should appear over the last x on the line > (point is before the last x on the line). What you show is not cursor on the fringe, because you have the continuation arrow on the fringe. When the continuation arrow is shown, the cursor cannot be shown on the fringe, because that slot is already taken. And anyway, the cursor is only shown on the fringe when the line is not continued. What you see there is Emacs displaying the small part of the cursor that it still has available on the first screen line, probably because your window-width is not an integral multiple of frame's character-width. IOW, I don't think I see anything abnormal in that image. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 11 11:34:46 2017 Received: (at 16856) by debbugs.gnu.org; 11 Nov 2017 16:34:46 +0000 Received: from localhost ([127.0.0.1]:35559 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eDYk1-0004jR-Ub for submit@debbugs.gnu.org; Sat, 11 Nov 2017 11:34:46 -0500 Received: from mail-vk0-f54.google.com ([209.85.213.54]:47200) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eDYk0-0004jE-Aw for 16856@debbugs.gnu.org; Sat, 11 Nov 2017 11:34:44 -0500 Received: by mail-vk0-f54.google.com with SMTP id 22so4177767vkq.4 for <16856@debbugs.gnu.org>; Sat, 11 Nov 2017 08:34:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=o4S10tD8k7KKItvbP4dgUJbUJOhnHCyYjiBTg/5LIp8=; b=m7Wc7CRHNz2DiviFcyiZm2EgXJMUkCMMilXYduLM1vdH3+z11ythIO7tnZsYaRZku6 cWtvGfd5nsb4gaLwzbSQVpJ5xwJ3WvRiwjrhwNgXUexfZGLxcX2Mvie3U7B5gnHJ1cS3 sQWwsPS6H7SBxaNq6nTVSFiwqFMmlT84tPTvmG/BDQTXO8pv69FVAxnQp8QwlKdeu1+C utzGWRS8HTfq0nc6tcAxI/h6C4CwIkLxgtMSJyUqOsII2TchForuiGd76nLs3MCwUfyt uYmKsPkVYx1GemCdzvuZVwH91HoZ/qPYrL89+V3wT2Ko8rHa2W95olsdlu9dQw3tYGja ikDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=o4S10tD8k7KKItvbP4dgUJbUJOhnHCyYjiBTg/5LIp8=; b=EkqOBHxCu6IeozJ4xpeMujLUt1BapICnmQn6FKIUG/D4Y2mpupsED1hODx0SYw76/y Jeo81CVW1LnVWU9YTEljtJQIZnDU5RQ/eXRPCl08kcG0/Wj5yWiSU00UJofNK+zJEfsn Tk7Ina6KHdrSnVhgbhcLPdyCgRr45dfNILTcViMPEN4FTfPGpjhim11nfwYmo26lBe+N beu3ykp0vjeBfG1YcHon3hkKbBcNW6KwsIA4dpQx8XDAg3IZcMywcAy5ig5rnv9YoiI0 xyr/EGilNWJ//jxdKlJQ1SCpW/12XyPS8G2ecPaW6asFILvF2ISlHtPSoCi15DkiHvxs yJJw== X-Gm-Message-State: AJaThX6NZPON2zNiVCZJiCusptPzjiJCfUrbK3M5in0bP65c8Jln00tl +pyik2uWnO2fXFV5/hYV1AYE7Bqbxjkc86eSQqE= X-Google-Smtp-Source: AGs4zMZ6BT69d7weJWzTYCPugJrs6cJVpNuL9gP8dKbTqCnWbYcbC7rU2T9ABrF9I4UkAJmfa0L6y6WTJywwRjo1ON0= X-Received: by 10.31.3.36 with SMTP id 36mr2789328vkd.146.1510418078760; Sat, 11 Nov 2017 08:34:38 -0800 (PST) MIME-Version: 1.0 Received: by 10.31.185.16 with HTTP; Sat, 11 Nov 2017 08:34:38 -0800 (PST) In-Reply-To: <8360air2ln.fsf@gnu.org> References: <20171109221142.GA680@breton.holly.idiocy.org> <8360air2ln.fsf@gnu.org> From: Anders Lindgren Date: Sat, 11 Nov 2017 17:34:38 +0100 Message-ID: Subject: Re: Enable fringe cursor when *almost* exact_window_width_line_p To: Eli Zaretskii Content-Type: multipart/alternative; boundary="001a11427b800c045e055db79dc1" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org, Alan Third , Keith David Bershatsky , David Reitter , martin rudalics X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --001a11427b800c045e055db79dc1 Content-Type: text/plain; charset="UTF-8" On Fri, Nov 10, 2017 at 8:53 AM, Eli Zaretskii wrote: > > What you show is not cursor on the fringe, because you have the > continuation arrow on the fringe. When the continuation arrow is > shown, the cursor cannot be shown on the fringe, because that slot is > already taken. And anyway, the cursor is only shown on the fringe > when the line is not continued. > > What you see there is Emacs displaying the small part of the cursor > that it still has available on the first screen line, probably because > your window-width is not an integral multiple of frame's > character-width. > > IOW, I don't think I see anything abnormal in that image. > Hi! The problem is that when the normal cursor is drawn, it spills into the fringe. When the cursor is moved, the fringe isn't updated, so artefacts are left behind. This only happens when the last character on the line only is partial visible, as you correctly suggested. -- Anders (Original reporter) --001a11427b800c045e055db79dc1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Fri, Nov 10, 2017 at 8:53 AM, Eli Zaretskii <eliz@gnu.org>= wrote:
What you show is not cursor on the fr= inge, because you have the
continuation arrow on the fringe.=C2=A0 When the continuation arrow is
shown, the cursor cannot be shown on the fringe, because that slot is
already taken.=C2=A0 And anyway, the cursor is only shown on the fringe
when the line is not continued.

What you see there is Emacs displaying the small part of the cursor
that it still has available on the first screen line, probably because
your window-width is not an integral multiple of frame's
character-width.

IOW, I don't think I see anything abnormal in that image.

Hi!

The problem is that w= hen the normal cursor is drawn, it spills into the fringe. When the cursor = is moved, the fringe isn't updated, so artefacts are left behind.
=

This only h= appens when the last character on the line only is partial visible, as you = correctly suggested.

=C2=A0 =C2=A0 -- Anders (Original reporter)

--001a11427b800c045e055db79dc1-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 11 12:26:08 2017 Received: (at 16856) by debbugs.gnu.org; 11 Nov 2017 17:26:08 +0000 Received: from localhost ([127.0.0.1]:35596 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eDZXk-0001IW-2T for submit@debbugs.gnu.org; Sat, 11 Nov 2017 12:26:08 -0500 Received: from eggs.gnu.org ([208.118.235.92]:52304) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eDZXi-0001I3-7G for 16856@debbugs.gnu.org; Sat, 11 Nov 2017 12:26:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eDZXc-0000n9-5Z for 16856@debbugs.gnu.org; Sat, 11 Nov 2017 12:26:00 -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,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59272) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eDZXW-0000in-1Y; Sat, 11 Nov 2017 12:25:54 -0500 Received: from [176.228.60.248] (port=2615 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eDZXU-0000Hz-6W; Sat, 11 Nov 2017 12:25:53 -0500 Date: Sat, 11 Nov 2017 19:25:44 +0200 Message-Id: <83bmk8ohgn.fsf@gnu.org> From: Eli Zaretskii To: Anders Lindgren In-reply-to: (message from Anders Lindgren on Sat, 11 Nov 2017 17:34:38 +0100) Subject: Re: Enable fringe cursor when *almost* exact_window_width_line_p References: <20171109221142.GA680@breton.holly.idiocy.org> <8360air2ln.fsf@gnu.org> 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-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org, alan@idiocy.org, esq@lawlist.com, david.reitter@gmail.com, rudalics@gmx.at X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Eli Zaretskii Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) > From: Anders Lindgren > Date: Sat, 11 Nov 2017 17:34:38 +0100 > Cc: Alan Third , Keith David Bershatsky , 16856@debbugs.gnu.org, > martin rudalics , David Reitter > > The problem is that when the normal cursor is drawn, it spills into the fringe. ??? Are you saying that drawing on macOS is not clipped by the window's edge? > When the cursor is moved, the > fringe isn't updated, so artefacts are left behind. I saw no artifacts on the image that was posted. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 11 12:49:10 2017 Received: (at 16856) by debbugs.gnu.org; 11 Nov 2017 17:49:10 +0000 Received: from localhost ([127.0.0.1]:35609 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eDZu2-0001qG-8S for submit@debbugs.gnu.org; Sat, 11 Nov 2017 12:49:10 -0500 Received: from mail-ua0-f174.google.com ([209.85.217.174]:55222) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eDZu1-0001q4-Fp for 16856@debbugs.gnu.org; Sat, 11 Nov 2017 12:49:09 -0500 Received: by mail-ua0-f174.google.com with SMTP id j14so8863262uag.11 for <16856@debbugs.gnu.org>; Sat, 11 Nov 2017 09:49:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=/h+7viXrX8N76ukY8/dAmdcxpZaSODMPVajZjEuiaFA=; b=mm+pLD0248oZvDsIJVFvJPMnITxq2RTg3FGKx7wCnPU84RcYQntcVjzAn9dE/HNZAK 8kYBX2LH1eOcWtFe9Ycq7N8I6p/VXrvXuUgqDXAEglh1bDLUw3+gZxjJzbyFJj97//n0 mmVs0eD2Ykjn58vB8osfYSe9DsYXnTgCDIOZg5xz13BDuAyV/0AeoQZE2mkI/+0KyAZo b7x+OKb/z8MnxSkh8L750t0IWPfOo4ez0rF/ieweiaClZcgVsKeXsDT+ApE7Ye9vWDrd 16oweySF7cnkWlekGzlCernnkYUzJ4oP3B8Z1AKn6vFCEe3bBDaqvp6PHJzh0loAO/uP tdMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=/h+7viXrX8N76ukY8/dAmdcxpZaSODMPVajZjEuiaFA=; b=dHC/nKMwlEx/Bs295I62nVzqsiE9uro1nbYaKN7jzgyC46Z+3cNNWAs0mzSqhT8ooV P+1JtWKpUAs/OESAsAUVfPeop6D3XoLK//1g6yRAfFibOu0dnaS/21Zrmmby8LCw5pPM 7aRfmMnKj4sbm4IvSVtdI58jV7I0tGcP3tgBMY9G2vWLYE8bS+Iwkuc1RDbO+N0Qt50l V3MIL4jXj/G7WUahWsy7DMp7BFT0D7VG4Y/IveLni4LrdqcSGlb5q6esZOBJEZS5QC5K 46d6i4KprU+QcDazsSz0UPaDH7MqyeSc/Yqgvd0mgBqP5aTdop6yyBtTua+Ax/q8JQLm n8Xg== X-Gm-Message-State: AJaThX6TtTToswY8TueUJ30JHYi/JvuXWHjEBhaXgDTenyoVa2E56L71 OVQMWEV9jgaH7jc7zHHavCfvBqZoIF/ujzFykCY= X-Google-Smtp-Source: AGs4zMZcQIsscW4wX/mCDXVgAY5nXo7IegSIC9DQwooyUKNyKcOkQq0If5cGUF7/8RFPlcvxi/hQS0Xjw0JKH8TyjGo= X-Received: by 10.159.38.196 with SMTP id 62mr3660676uay.64.1510422543875; Sat, 11 Nov 2017 09:49:03 -0800 (PST) MIME-Version: 1.0 Received: by 10.31.185.16 with HTTP; Sat, 11 Nov 2017 09:49:03 -0800 (PST) In-Reply-To: <83bmk8ohgn.fsf@gnu.org> References: <20171109221142.GA680@breton.holly.idiocy.org> <8360air2ln.fsf@gnu.org> <83bmk8ohgn.fsf@gnu.org> From: Anders Lindgren Date: Sat, 11 Nov 2017 18:49:03 +0100 Message-ID: Subject: Re: Enable fringe cursor when *almost* exact_window_width_line_p To: Eli Zaretskii Content-Type: multipart/alternative; boundary="94eb2c0477b030427e055db8a770" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org, Alan Third , Keith David Bershatsky , David Reitter , martin rudalics X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --94eb2c0477b030427e055db8a770 Content-Type: text/plain; charset="UTF-8" Hi! On Sat, Nov 11, 2017 at 6:25 PM, Eli Zaretskii wrote: > > ??? Are you saying that drawing on macOS is not clipped by the > window's edge? Yes, when it comes to the cursor, that is correct. > > When the cursor is moved, the > > fringe isn't updated, so artefacts are left behind. > > I saw no artifacts on the image that was posted. I just verified that the following recipe (posted in 2016) demonstrates the problem, on NS. (The original recipe from 2014 no longer works, though). emacs -Q (setq truncate-partial-width-windows nil) C-x 3 C-x o C-u 37 x Here, the cursor which is in text area blinks, while the part in the fringe doesn't. Wait until the the cursor stop blinking C-a Now, the right fringe contains half a cursor. -- Anders --94eb2c0477b030427e055db8a770 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi!

On Sat, Nov 11, 2017 at 6:25 PM, Eli Zaretskii = <eliz@gnu.org> wrote:
>
= > ??? Are you saying that drawing on macOS is not clipped by the
>= window's edge?

Yes, when it comes to the cursor, that is correc= t.


> > When the cursor is moved, the
> > fringe i= sn't updated, so artefacts are left behind.
>
> I saw no ar= tifacts on the image that was posted.


I just verified that the f= ollowing recipe (posted in 2016) demonstrates the problem, on NS. (The orig= inal recipe from 2014 no longer works, though).

=C2=A0 =C2=A0emacs -= Q
=C2=A0 =C2=A0 (setq truncate-partial-width-windows nil)
=C2=A0 =C2= =A0 C-x 3
=C2=A0 =C2=A0 C-x o
=C2=A0 =C2=A0 C-u 37 x
=C2=A0 =C2=A0= =C2=A0 =C2=A0Here, the cursor which is in text area blinks, while the part= in the fringe doesn't.

=C2=A0 =C2=A0 =C2=A0 =C2=A0Wait until th= e the cursor stop blinking
=C2=A0 =C2=A0 C-a
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 Now, the right fringe contains half a cursor.

=C2=A0 =C2=A0 -- A= nders
--94eb2c0477b030427e055db8a770-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 11 13:46:38 2017 Received: (at 16856) by debbugs.gnu.org; 11 Nov 2017 18:46:38 +0000 Received: from localhost ([127.0.0.1]:35630 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eDane-0003Bf-7n for submit@debbugs.gnu.org; Sat, 11 Nov 2017 13:46:38 -0500 Received: from mail-wr0-f178.google.com ([209.85.128.178]:49922) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eDanc-0003BQ-Ft for 16856@debbugs.gnu.org; Sat, 11 Nov 2017 13:46:36 -0500 Received: by mail-wr0-f178.google.com with SMTP id o88so11123672wrb.6 for <16856@debbugs.gnu.org>; Sat, 11 Nov 2017 10:46:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=GXYOWJUuU+lwsbkP4zGY8kVdYoRo3tJrewhaNx/cTxo=; b=S4lbf6wu+WhVBgEg383X3rEfE+8ZGwpt92TDY5+RfgyzegBOwb4rd5S1vyXE1PKgfs TR4pv+W2DPbUkUxzOIVcgPs023rQwzb4bgl2OF5p78ai6ulNUwjNR7Ts26lL19NA/85r lEMF8K/38qMFwzJDtOtWJhapInE7UcerevWbZdRa1uH1CmsnoNu//+FDT79JkfP03DRL q0HEhlNcQXpA8U+tY39YLIBcsC6fKhBOTZsKKeXTY3+QUaflgJ1wwOBl4sQpvv8nVD4C DUIvF3fzRnx/KrxP2jKFHLPxjY86rPZT1PTo0gIU4k1WyNxfedkmWc+6kbuvrtjgQWdC ztOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition :content-transfer-encoding:in-reply-to:user-agent; bh=GXYOWJUuU+lwsbkP4zGY8kVdYoRo3tJrewhaNx/cTxo=; b=h7qRWBpsTNZMgGYiB6RGB66c9Y8PRTEr66lYzLzg6BLCz1eOO4X1jRe77Z6VoaZygy tL6trgmgFrvcluIvvWU+L73mIYMtC9nn6qx6wQ3bIblXiSbl+FwrYO9jQJ0nky6F/luN 7rebKXsaZvGD87ZwxK9aUAQvKiQ/RXnl/eVdOjVuDtj+w2XvU1EHU15Scy7pqGzSzK79 hDSJk9RKDxbyXuWlrFxW/JUK+GYE/7eddyUXoDD4nACxg63xSD5F2+CJjFc053xId9Oq InjD3aoYnah/9RHvfyB0d6Nxx6mPVQn7+OGJmbUqvhMPYbflnubOYUlwg/SphWadQpCM b5lQ== X-Gm-Message-State: AJaThX7lONicWcyFe3ffwroIAkcRuzGSpLteJM/bY4MY/m/tBUrKFmig /TFLm5H7Jtp2OxURrnbfL6E= X-Google-Smtp-Source: AGs4zMYLapINlnZspc222nWEsIdvuibgAu/OceIAIB6AjnDet5KwN95EDQeh3LEph3FWxt3ZUgBSPw== X-Received: by 10.223.163.11 with SMTP id c11mr3301668wrb.102.1510425990725; Sat, 11 Nov 2017 10:46:30 -0800 (PST) Received: from breton.holly.idiocy.org (ip6-2001-08b0-03f8-8129-91df-d8a5-fef6-2802.holly.idiocy.org. [2001:8b0:3f8:8129:91df:d8a5:fef6:2802]) by smtp.gmail.com with ESMTPSA id g4sm8782878wrh.19.2017.11.11.10.46.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 11 Nov 2017 10:46:29 -0800 (PST) Date: Sat, 11 Nov 2017 18:46:27 +0000 From: Alan Third To: Anders Lindgren Subject: Re: Enable fringe cursor when *almost* exact_window_width_line_p Message-ID: <20171111184627.GB5075@breton.holly.idiocy.org> References: <20171109221142.GA680@breton.holly.idiocy.org> <8360air2ln.fsf@gnu.org> <83bmk8ohgn.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.9.1 (2017-09-22) X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org, Eli Zaretskii , Keith David Bershatsky , David Reitter , martin rudalics X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) On Sat, Nov 11, 2017 at 06:49:03PM +0100, Anders Lindgren wrote: > I just verified that the following recipe (posted in 2016) demonstrates the > problem, on NS. (The original recipe from 2014 no longer works, though). > > emacs -Q > (setq truncate-partial-width-windows nil) > C-x 3 > C-x o > C-u 37 x > Here, the cursor which is in text area blinks, while the part in the > fringe doesn't. > > Wait until the the cursor stop blinking > C-a > Now, the right fringe contains half a cursor. I can’t replicate this. It *should* be fixed. Can you confirm whether it’s still an issue in Emacs 26? The screenshot was trying to indicate an issue with Keith’s modifications where it was putting the cursor into the fringe one character too early. I was using a 2 pixel wide bar cursor, which probably didn’t help. You can see the cursor is placed underneath the fringe arrow; it should be on the left of the last x on the line. Keith has raised a new bug report for his patch (29233) so further discussion of it should probably continue there. -- Alan Third From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 11 15:36:48 2017 Received: (at 16856) by debbugs.gnu.org; 11 Nov 2017 20:36:48 +0000 Received: from localhost ([127.0.0.1]:35680 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eDcWG-0005mu-6x for submit@debbugs.gnu.org; Sat, 11 Nov 2017 15:36:48 -0500 Received: from mail-vk0-f41.google.com ([209.85.213.41]:49455) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eDcWE-0005mi-7g for 16856@debbugs.gnu.org; Sat, 11 Nov 2017 15:36:46 -0500 Received: by mail-vk0-f41.google.com with SMTP id t184so8023834vka.6 for <16856@debbugs.gnu.org>; Sat, 11 Nov 2017 12:36:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=mb38SA5K4T23mPG6w1nX/8jm5wYcDEA/JNA0amZhfaw=; b=clD0glJ4hpdFMb7KOTKiZBa9fnIRKG6eg6PdHYT6nCM7rnpQ1ezIXaFypirc/6SH9W aA5GgOZyN7YbVOjSlBcXtjkwMECOHO8VIgUA1gvMcmOS4JGzN4n29jRRakwgCIYLIyQ+ uBUM9bzEpYPaM4Sjk0/jtCaHeW75X535Oe3VtfIsy1xmH04tpNaqH/G6FLlaJX8FW8cl sN6mYgJVewtzuPGBazYFNh7d7ZRmtNiEILa+hHfEq45kjCnHt/cB20caolupm63V9lm8 /L95CcVogLl4tqMw7Qw72KApGkkrDLPRqkE1gZox2wUKKTm5OdNvTFjEsYHvEy7MTYGe sVLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=mb38SA5K4T23mPG6w1nX/8jm5wYcDEA/JNA0amZhfaw=; b=QR8VE4wvqM1OjcwD8vpOwIV1XUGAMwepP/wOgeD+gD8/gdey93Vf7oSrc/md4zD+Rb ncxRE9AAwZRedW1yvs3Adxn9MQX+Kp1dglf0M3L0KH0D9+KKnr1L6if7ZSkeUOQ4SGwu 4fNtuamHTbBHoeKpNI02lpZQTdqecOp8WVM5nzYPgNyvQTxn1kJiCHJIFt6GY5hBNwl9 i6I+0ZwMJdTbuy3kwNdQ/nKHYygEkvcXvdO4Wo2RZhNOcqsSC6WCMFPViU6Njkk6SX+Y rY6AqO3LGAEbfBVsmIdPfvcYAZlj7606872Pt5F0gbefhC4Oq2lSHKHTtpIPWMGz1/9D 1qrQ== X-Gm-Message-State: AJaThX5Fbe5mbeIMg5qsFbyJH4N9muVJVt2dbtHqqEW4GCkTae6fMmnF cKVwnUO4lbEwFbo5CPMfvLC+h8P+31rkcuo/g3E= X-Google-Smtp-Source: AGs4zMZknGvKw/rcYxWGcO8QtG4JBeP0XSSjk6NSG53v4W1mLWfddGJEx8HOyAQ+rzt9eRk/ksbOrODxJlM0OO/ghHs= X-Received: by 10.31.55.137 with SMTP id e131mr3252324vka.143.1510432600656; Sat, 11 Nov 2017 12:36:40 -0800 (PST) MIME-Version: 1.0 Received: by 10.31.185.16 with HTTP; Sat, 11 Nov 2017 12:36:40 -0800 (PST) In-Reply-To: <20171111184627.GB5075@breton.holly.idiocy.org> References: <20171109221142.GA680@breton.holly.idiocy.org> <8360air2ln.fsf@gnu.org> <83bmk8ohgn.fsf@gnu.org> <20171111184627.GB5075@breton.holly.idiocy.org> From: Anders Lindgren Date: Sat, 11 Nov 2017 21:36:40 +0100 Message-ID: Subject: Re: Enable fringe cursor when *almost* exact_window_width_line_p To: Alan Third Content-Type: multipart/alternative; boundary="001a1144b8c09e90f9055dbafe20" X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 16856 Cc: 16856@debbugs.gnu.org, Eli Zaretskii , Keith David Bershatsky , David Reitter , martin rudalics X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) --001a1144b8c09e90f9055dbafe20 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Nov 11, 2017 at 7:46 PM, Alan Third wrote: > I can=E2=80=99t replicate this. It *should* be fixed. Can you confirm whe= ther > it=E2=80=99s still an issue in Emacs 26? > I can confirm that it has been fixed in Emacs 26. Thanks for fixing it, and sorry about the noice. -- Anders --001a1144b8c09e90f9055dbafe20 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On S= at, Nov 11, 2017 at 7:46 PM, Alan Third <alan@idiocy.org> wrot= e:
I can=E2=80=99t replicate this. It *sh= ould* be fixed. Can you confirm whether
it=E2=80=99s still an issue in Emacs 26?

I can confirm that it has been fixed in Emacs 26. Thanks for fixing it, a= nd sorry about the noice.

=C2=A0 =C2=A0 -- Anders<= /div>

--001a1144b8c09e90f9055dbafe20-- From unknown Wed Jun 18 23:04:59 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 10 Dec 2017 12:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator