summaryrefslogtreecommitdiff
path: root/src/dispnew.c
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1995-03-22 21:22:31 +0000
committerKarl Heuer <kwzh@gnu.org>1995-03-22 21:22:31 +0000
commit15874c5958f2480f3d77617b229734536830de42 (patch)
treec556e91945456069b8e68d82c55af1dbda53884b /src/dispnew.c
parent64c947d33c7275b628193928f72499c7990bde70 (diff)
downloademacs-15874c5958f2480f3d77617b229734536830de42.tar.gz
(direct_output_forward_char): Don't use direct output at an overlay boundary.
Diffstat (limited to 'src/dispnew.c')
-rw-r--r--src/dispnew.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/dispnew.c b/src/dispnew.c
index ee29b302ac4..7bf46a2a969 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -1143,11 +1143,16 @@ direct_output_forward_char (n)
&& (FRAME_CURSOR_X (frame) + 1 >= window_internal_width (w) - 1))
|| cursor_in_echo_area)
return 0;
-
+
/* Can't use direct output if highlighting a region. */
if (!NILP (Vtransient_mark_mode) && !NILP (current_buffer->mark_active))
return 0;
+ /* Can't use direct output at an overlay boundary; it might have
+ before-string or after-string properties. */
+ if (overlay_touches_p (PT) || overlay_touches_p (PT - n))
+ return 0;
+
#ifdef USE_TEXT_PROPERTIES
/* Don't use direct output next to an invisible character
since we might need to do something special. */