summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2011-10-29 11:36:42 +0200
committerEli Zaretskii <eliz@gnu.org>2011-10-29 11:36:42 +0200
commit567843934e76b72de93f61d0f35a4aa91f1c76b2 (patch)
treefcb7f92a564f8d1d8fdf73a4304c130f355a4450
parent21b7206797c252bb6e568e37d10a9fa2b2812747 (diff)
downloademacs-567843934e76b72de93f61d0f35a4aa91f1c76b2.tar.gz
Fix bug #9902 with crash caused by clearing mouse highlight.
src/xdisp.c (note_mouse_highlight): Don't clear mouse highlight if hlinfo->mouse_face_window is nil.
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xdisp.c16
2 files changed, 13 insertions, 8 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 5a7d66ceb17..69c202faa4c 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2011-10-29 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (note_mouse_highlight): Don't clear mouse highlight if
+ hlinfo->mouse_face_window is nil. (Bug#9902)
+
2011-10-29 Andreas Schwab <schwab@linux-m68k.org>
* minibuf.c (read_minibuf_noninteractive): Allow reading empty
diff --git a/src/xdisp.c b/src/xdisp.c
index 22f7c2bbd26..3cce8012da0 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -26835,14 +26835,14 @@ note_mouse_highlight (struct frame *f, int x, int y)
/* Which window is that in? */
window = window_from_coordinates (f, x, y, &part, 1);
- /* If displaying active text in another window, clear that. */
- if (! EQ (window, hlinfo->mouse_face_window)
- /* Also clear if we move out of text area in same window. */
- || (!NILP (hlinfo->mouse_face_window)
- && !NILP (window)
- && part != ON_TEXT
- && part != ON_MODE_LINE
- && part != ON_HEADER_LINE))
+ if (!NILP (hlinfo->mouse_face_window)
+ /* If displaying active text in another window, clear that. */
+ && (!EQ (window, hlinfo->mouse_face_window)
+ /* Also clear if we move out of text area in same window. */
+ || (!NILP (window)
+ && part != ON_TEXT
+ && part != ON_MODE_LINE
+ && part != ON_HEADER_LINE)))
clear_mouse_face (hlinfo);
/* Not on a window -> return. */