diff options
| author | Eli Zaretskii | 2013-06-06 19:35:31 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2013-06-06 19:35:31 +0300 |
| commit | 9ef6111b7cab7e28e74c0763696a38b34285dc4f (patch) | |
| tree | b2e4a0cb4da2fd282ec98bd72ed2a943701ffbc4 | |
| parent | 7d300d644cc3c1595d2ac67e37fde1d3d865af24 (diff) | |
| download | emacs-9ef6111b7cab7e28e74c0763696a38b34285dc4f.tar.gz emacs-9ef6111b7cab7e28e74c0763696a38b34285dc4f.zip | |
Improve the fix for bug #14558.
src/xdisp.c (note_mouse_highlight): When mouse-highlight is off,
still need to set the mouse pointer shape and activate help-echo.
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/xdisp.c | 18 |
2 files changed, 18 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 11aaef4d2e8..3b65ff105e9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2013-06-06 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * xdisp.c (note_mouse_highlight): When mouse-highlight is off, | ||
| 4 | still need to set the mouse pointer shape and activate help-echo. | ||
| 5 | (Bug#14558) | ||
| 6 | |||
| 1 | 2013-06-06 Paul Eggert <eggert@cs.ucla.edu> | 7 | 2013-06-06 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 8 | ||
| 3 | A few porting etc. fixes for the new file monitor code. | 9 | A few porting etc. fixes for the new file monitor code. |
diff --git a/src/xdisp.c b/src/xdisp.c index 17001c81b53..6e391350816 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -27554,8 +27554,10 @@ note_mode_line_or_margin_highlight (Lisp_Object window, int x, int y, | |||
| 27554 | 27554 | ||
| 27555 | /* EXPORT: | 27555 | /* EXPORT: |
| 27556 | Take proper action when the mouse has moved to position X, Y on | 27556 | Take proper action when the mouse has moved to position X, Y on |
| 27557 | frame F as regards highlighting characters that have mouse-face | 27557 | frame F with regards to highlighting portions of display that have |
| 27558 | properties. Also de-highlighting chars where the mouse was before. | 27558 | mouse-face properties. Also de-highlight portions of display where |
| 27559 | the mouse was before, set the mouse pointer shape as appropriate | ||
| 27560 | for the mouse coordinates, and activate help echo (tooltips). | ||
| 27559 | X and Y can be negative or out of range. */ | 27561 | X and Y can be negative or out of range. */ |
| 27560 | 27562 | ||
| 27561 | void | 27563 | void |
| @@ -27665,8 +27667,7 @@ note_mouse_highlight (struct frame *f, int x, int y) | |||
| 27665 | 27667 | ||
| 27666 | #ifdef HAVE_WINDOW_SYSTEM | 27668 | #ifdef HAVE_WINDOW_SYSTEM |
| 27667 | /* Look for :pointer property on image. */ | 27669 | /* Look for :pointer property on image. */ |
| 27668 | if (!NILP (Vmouse_highlight) | 27670 | if (glyph != NULL && glyph->type == IMAGE_GLYPH) |
| 27669 | && glyph != NULL && glyph->type == IMAGE_GLYPH) | ||
| 27670 | { | 27671 | { |
| 27671 | struct image *img = IMAGE_FROM_ID (f, glyph->u.img_id); | 27672 | struct image *img = IMAGE_FROM_ID (f, glyph->u.img_id); |
| 27672 | if (img != NULL && IMAGEP (img->spec)) | 27673 | if (img != NULL && IMAGEP (img->spec)) |
| @@ -27709,8 +27710,7 @@ note_mouse_highlight (struct frame *f, int x, int y) | |||
| 27709 | #endif /* HAVE_WINDOW_SYSTEM */ | 27710 | #endif /* HAVE_WINDOW_SYSTEM */ |
| 27710 | 27711 | ||
| 27711 | /* Clear mouse face if X/Y not over text. */ | 27712 | /* Clear mouse face if X/Y not over text. */ |
| 27712 | if (NILP (Vmouse_highlight) | 27713 | if (glyph == NULL |
| 27713 | || glyph == NULL | ||
| 27714 | || area != TEXT_AREA | 27714 | || area != TEXT_AREA |
| 27715 | || !MATRIX_ROW_DISPLAYS_TEXT_P (MATRIX_ROW (w->current_matrix, vpos)) | 27715 | || !MATRIX_ROW_DISPLAYS_TEXT_P (MATRIX_ROW (w->current_matrix, vpos)) |
| 27716 | /* Glyph's OBJECT is an integer for glyphs inserted by the | 27716 | /* Glyph's OBJECT is an integer for glyphs inserted by the |
| @@ -27773,6 +27773,12 @@ note_mouse_highlight (struct frame *f, int x, int y) | |||
| 27773 | else | 27773 | else |
| 27774 | noverlays = 0; | 27774 | noverlays = 0; |
| 27775 | 27775 | ||
| 27776 | if (NILP (Vmouse_highlight)) | ||
| 27777 | { | ||
| 27778 | clear_mouse_face (hlinfo); | ||
| 27779 | goto check_help_echo; | ||
| 27780 | } | ||
| 27781 | |||
| 27776 | same_region = coords_in_mouse_face_p (w, hpos, vpos); | 27782 | same_region = coords_in_mouse_face_p (w, hpos, vpos); |
| 27777 | 27783 | ||
| 27778 | if (same_region) | 27784 | if (same_region) |