[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Identifying the face between STRETCH and right fringe.
From: |
Keith David Bershatsky |
Subject: |
Identifying the face between STRETCH and right fringe. |
Date: |
Tue, 20 Nov 2018 08:39:16 -0800 |
Step 1: Open a buffer and evaluate:
(fundamental-mode)
(setq word-wrap t)
(setq buffer-display-table (make-display-table))
(aset buffer-display-table
?\t
(vector (make-glyph-code ?\u00BB 'font-lock-warning-face)
(make-glyph-code ?\t 'highlight)))
Step 2: On a new line, type C-q TAB and then hold down the semi-colon key ';'
to repeat the semi-colon character until it carries over to the next line.
Step 3: Observe that the result is different on Emacs --with-ns, versus
--with-x and also on a Windows machine. Specifically, the STRETCH on an NS
platform is seen spanning all the way to the right fringe. On an X11 and NT
platform, the STRETCH is only visible for the width of the STRETCH (depicted in
the dump-glyph-row for each platform below).
EXAMPLE NS (OSX): https://www.lawlist.com/images/tab_stretch_ns__2018_11_20.png
EXAMPLE WINDOWS: https://www.lawlist.com/images/tab_stretch_nt__2018_11_20.png
EXAMPLE X11: https://www.lawlist.com/images/tab_stretch_x11__2018_11_20.png
QUESTION #1: In terms of identifying the face between the STRETCH and the
right fringe, how can I programmatically know the difference between the NS
situation, versus the NT and X11 situation?
QUESTION #2: Is the difference in behavior between the different platforms "a
bug", and should the X11 and NT ports be "fixed" so that they behave like the
NS port in this situation?
BACKGROUND: In the context of feature request #17684 (crosshairs); I am
drawing vertical/horizontal lines on the screen using the built-in draw cursor
mechanisms. When there is no glyph at the desired location, I simply
draw/erase a vertical/horizontal line with the desired color.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(fundamental-mode)
(setq word-wrap t)
(setq buffer-display-table (make-display-table))
(aset buffer-display-table
?\t
(vector (make-glyph-code ?\u00BB 'font-lock-warning-face)
(make-glyph-code ?\t 'highlight)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; NS
Row Start End Used oE><\CTZFesm X Y W H V A P
==============================================================================
11 384 385 2 010010101000 0 176 56 16 16 12 12
-1 -1 0
-1 -1
-1 -1
Glyph# Type Pos O W Code C Face LR
0 C 384 B 7 0x0000bb . 30 00
1 S 384 B 49 0x000000 29 00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; X11
Row Start End Used oE><\CTZFesm X Y W H V A P
==============================================================================
11 384 385 2 010010100000 0 165 64 15 15 12 12
-1 -1 0
-1 -1
-1 -1
Glyph# Type Pos O W Code C Face LR
0 C 384 B 8 0x0000bb . 33 00
1 S 384 B 56 0x000000 26 00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; NT
Row Start End Used oE><\CTZFesm X Y W H V A P
==============================================================================
12 385 386 2 010010100000 0 192 64 16 16 12 12
-1 -1 0
-1 -1
-1 -1
Glyph# Type Pos O W Code C Face LR
0 C 385 B 8 0x0000bb . 31 00
1 S 385 B 56 0x000000 30 00
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- Identifying the face between STRETCH and right fringe.,
Keith David Bershatsky <=
- Re: Identifying the face between STRETCH and right fringe., Eli Zaretskii, 2018/11/20
- Re: Identifying the face between STRETCH and right fringe., Robert Pluim, 2018/11/21
- Re: Identifying the face between STRETCH and right fringe., Eli Zaretskii, 2018/11/23
- Re: Identifying the face between STRETCH and right fringe., Robert Pluim, 2018/11/23
- Re: Identifying the face between STRETCH and right fringe., Eli Zaretskii, 2018/11/23
- Re: Identifying the face between STRETCH and right fringe., Robert Pluim, 2018/11/23
- Re: Identifying the face between STRETCH and right fringe., Eli Zaretskii, 2018/11/23
- Re: Identifying the face between STRETCH and right fringe., Robert Pluim, 2018/11/23
- Re: Identifying the face between STRETCH and right fringe., Eli Zaretskii, 2018/11/23
- Re: Identifying the face between STRETCH and right fringe., Robert Pluim, 2018/11/27