all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Anders Lindgren <andlind@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 22891@debbugs.gnu.org
Subject: bug#22891: 25.0.92; set-fringe-mode with left fringe 0 breaks window width calculations on Mac OS (again)
Date: Fri, 15 Apr 2016 09:11:12 +0200	[thread overview]
Message-ID: <CABr8ebb+kgmb30LP1SJ4En+oj-90xZcRoGirL9rcDPS_RWpsAA@mail.gmail.com> (raw)
In-Reply-To: <83h9f4dmd1.fsf@gnu.org>


[-- Attachment #1.1: Type: text/plain, Size: 2962 bytes --]

>
> > However, I don't understand why you need it. If the right fringe is
> visible, it can hold the continuation character.
>
> R2L lines display the continuation glyph on the left.
>
> > In fact, I just tried this with the left fringe set to 0 with a
> bidirectional text stretching multiple lines, and the last
> > text column didn't appear to be used at all.
>
> Sorry, I don't understand what you tried.  Please show a screenshot.
>

I've attached a screenshot where I've:

    C-u 80 x        ;; To get a reference 80 character line
    Copied bidirectional text from http://www.i18nguy.com/unicode/shma.html
    (set-frame-parameter (selected-frame) 'left-fringe 0)

Here, I only see continuation marks in the right fringe only. The column
reserved for the continuation glyph isn't used at all, neither to the left
or to the right, despite the text being wrapped.

As far as I can tell, it's the same on the NS port and when using GTK.



Also, I noticed that `window-max-chars-per-line' does not take into account
the variable `left-frame-width' (and presumably `right-frame-width').

    emacs -Q
    C-u 81 x
    (setq left-fringe-width 0)
    ;; This doesn't take effect immediately, temporary display another
buffer.
    C-x b RET
    C-x b RET
    ;; Now, the line with 81 x:s wrap.
    (window-max-chars-per-line)
    ;; Now, this function return 81, which is inconsistent with the display.


In the short term, I would like to see a function like
`(continuation-glyph-visible-p WIN)' which could be used by functions like
`window-max-chars-per-line' to get the logic correct without having to
resort to replicate the details of the display engine (which, apparently,
is non-trivial).

In the long term, it would be great to have a `continuation-glyph-visible'
frame property and corresponding buffer-local variable. That way a user
could decide the layout for themselves.



Back to the original question. I think the following patch solve the
ansi-term problem. In addition, I would suggest that we retire
`term-window-width' if favour of `window-max-chars-per-line', so that the
complex logic needed to determine if there is a continuation character only
is in one place.

diff --git a/lisp/window.el b/lisp/window.el
index 7e46aa8..371fcab 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -8485,10 +8485,10 @@ window-adjust-process-window-size
 a two-argument function used to combine the widths and heights of
 the given windows."
   (when windows
-    (let ((width (window-body-width (car windows)))
+    (let ((width (window-max-chars-per-line (car windows)))
           (height (window-body-height (car windows))))
       (dolist (window (cdr windows))
-        (setf width (funcall reducer width (window-body-width window)))
+        (setf width (funcall reducer width (window-max-chars-per-line
window)))
         (setf height (funcall reducer height (window-body-height window))))
       (cons width height))))

Sincerely,
    Anders

[-- Attachment #1.2: Type: text/html, Size: 4097 bytes --]

[-- Attachment #2: Screen Shot 2016-04-15 at 6.35.59 .png --]
[-- Type: image/png, Size: 108755 bytes --]

  reply	other threads:[~2016-04-15  7:11 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-03  6:38 bug#22891: 25.0.92; set-fringe-mode with left fringe 0 breaks window width calculations on Mac OS (again) Constantine Vetoshev
2016-04-11  6:58 ` martin rudalics
2016-04-15  1:24   ` Constantine Vetoshev
2016-04-20 13:48     ` martin rudalics
2016-04-14  5:33 ` Anders Lindgren
2016-04-14 15:17   ` Eli Zaretskii
2016-04-14 18:19     ` Anders Lindgren
2016-04-14 19:24       ` Eli Zaretskii
2016-04-15  7:11         ` Anders Lindgren [this message]
2016-04-15  7:42           ` Eli Zaretskii
2016-04-15  8:05             ` Anders Lindgren
2016-04-15  8:25               ` Eli Zaretskii
2016-04-23 18:42 ` bug#22891: Anders Lindgren
2016-04-23 19:03   ` bug#22891: Daniel Colascione
2016-04-24  8:40   ` bug#22891: martin rudalics
2016-04-24 13:04     ` bug#22891: Anders Lindgren
2016-04-24 19:07     ` bug#22891: Anders Lindgren
2016-04-26  6:34       ` bug#22891: martin rudalics
2016-04-26  6:44         ` bug#22891: Eli Zaretskii
2016-04-26 19:10         ` bug#22891: Anders Lindgren
2016-04-26 19:17           ` bug#22891: Eli Zaretskii
2016-04-26 21:07             ` bug#22891: Anders Lindgren
2016-04-27  6:21               ` bug#22891: Eli Zaretskii
2016-04-27 21:30                 ` bug#22891: Anders Lindgren
2016-04-28  6:33                   ` bug#22891: martin rudalics
2016-04-26 19:03       ` bug#22891: Constantine Vetoshev
2016-04-27 21:38 ` bug#22891: Fixed: 25.0.92; set-fringe-mode with left fringe 0 breaks window width calculations on Mac OS (again) Anders Lindgren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CABr8ebb+kgmb30LP1SJ4En+oj-90xZcRoGirL9rcDPS_RWpsAA@mail.gmail.com \
    --to=andlind@gmail.com \
    --cc=22891@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.