[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#23755: [PATCH] Move text line right when in box (bug#23755)
From: |
Alan Third |
Subject: |
bug#23755: [PATCH] Move text line right when in box (bug#23755) |
Date: |
Sat, 18 Jun 2016 00:17:50 +0100 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
* src/nsterm.m (ns_draw_glyph_string_foreground): Create to take
CHAR_GLYPH specific code and move glyphs right if within a box.
(ns_draw_glyph_string): Move CHAR_GLYPH specific code into above
function.
---
src/nsterm.m | 38 ++++++++++++++++++++++++++++----------
1 file changed, 28 insertions(+), 10 deletions(-)
diff --git a/src/nsterm.m b/src/nsterm.m
index f2b0d90..eba75f1 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -3640,6 +3640,32 @@ overwriting cursor (usually when cursor on a tab) */
static void
+ns_draw_glyph_string_foreground (struct glyph_string *s)
+{
+ int x, flags;
+ struct font *font = s->font;
+
+ /* If first glyph of S has a left box line, start drawing the text
+ of S to the right of that box line. */
+ if (s->face && s->face->box != FACE_NO_BOX
+ && s->first_glyph->left_box_line_p)
+ x = s->x + eabs (s->face->box_line_width);
+ else
+ x = s->x;
+
+ flags = s->hl == DRAW_CURSOR ? NS_DUMPGLYPH_CURSOR :
+ (s->hl == DRAW_MOUSE_FACE ? NS_DUMPGLYPH_MOUSEFACE :
+ (s->for_overlaps ? NS_DUMPGLYPH_FOREGROUND :
+ NS_DUMPGLYPH_NORMAL));
+
+ font->driver->draw
+ (s, s->cmp_from, s->nchars, x, s->ybase,
+ (flags == NS_DUMPGLYPH_NORMAL && !s->background_filled_p)
+ || flags == NS_DUMPGLYPH_MOUSEFACE);
+}
+
+
+static void
ns_draw_composite_glyph_string_foreground (struct glyph_string *s)
{
int i, j, x;
@@ -3737,7 +3763,7 @@ overwriting cursor (usually when cursor on a tab) */
{
/* TODO (optimize): focus for box and contents draw */
NSRect r[2];
- int n, flags;
+ int n;
char box_drawn_p = 0;
struct font *font = s->face->font;
if (! font) font = FRAME_FONT (s->f);
@@ -3807,11 +3833,6 @@ overwriting cursor (usually when cursor on a tab) */
ns_maybe_dumpglyphs_background
(s, s->first_glyph->type == COMPOSITE_GLYPH);
- flags = s->hl == DRAW_CURSOR ? NS_DUMPGLYPH_CURSOR :
- (s->hl == DRAW_MOUSE_FACE ? NS_DUMPGLYPH_MOUSEFACE :
- (s->for_overlaps ? NS_DUMPGLYPH_FOREGROUND :
- NS_DUMPGLYPH_NORMAL));
-
if (s->hl == DRAW_CURSOR && s->w->phys_cursor_type == FILLED_BOX_CURSOR)
{
unsigned long tmp = NS_FACE_BACKGROUND (s->face);
@@ -3825,10 +3846,7 @@ overwriting cursor (usually when cursor on a tab) */
if (isComposite)
ns_draw_composite_glyph_string_foreground (s);
else
- font->driver->draw
- (s, s->cmp_from, s->nchars, s->x, s->ybase,
- (flags == NS_DUMPGLYPH_NORMAL && !s->background_filled_p)
- || flags == NS_DUMPGLYPH_MOUSEFACE);
+ ns_draw_glyph_string_foreground (s);
}
{
--
Looks like the NS port doesn't take a surrounding box into account
when displaying normal glyphs (but does with composite glyphs...). I
don't know why I could see the digits move left and right as I
scrolled, but this patch fixes the problem for me.
--
Alan Third
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, (continued)
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, Eli Zaretskii, 2016/06/16
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, James Nguyen, 2016/06/16
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, James Nguyen, 2016/06/17
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, Eli Zaretskii, 2016/06/17
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, James Nguyen, 2016/06/17
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, Alan Third, 2016/06/17
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, James Nguyen, 2016/06/17
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, Alan Third, 2016/06/17
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, James Nguyen, 2016/06/17
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, Eli Zaretskii, 2016/06/17
- bug#23755: [PATCH] Move text line right when in box (bug#23755),
Alan Third <=
- bug#23755: [PATCH] Move text line right when in box (bug#23755), Eli Zaretskii, 2016/06/18
- bug#23755: [PATCH] Move text line right when in box (bug#23755), Alan Third, 2016/06/25
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, Eli Zaretskii, 2016/06/17
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, Alan Third, 2016/06/13
- bug#23755: 25.0.95; Emacs 25.0.95 Line number is in fringe, Eli Zaretskii, 2016/06/13