aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2011-08-19 07:28:36 -0700
committerPaul Eggert2011-08-19 07:28:36 -0700
commitfe4496a6e27ac892283b8568adbd12831868cc54 (patch)
tree36242f11ad8079d1e0a00b465c953777200c00ff
parent51f30bc52daf551f3c433b80f598eb52dca71033 (diff)
parent823564e519dd1f3e81a79949e1abc033c9e7c0a5 (diff)
downloademacs-fe4496a6e27ac892283b8568adbd12831868cc54.tar.gz
emacs-fe4496a6e27ac892283b8568adbd12831868cc54.zip
Merge from trunk.
-rw-r--r--lisp/gnus/ChangeLog5
-rw-r--r--lisp/gnus/gnus-art.el9
-rw-r--r--lisp/minibuffer.el22
-rw-r--r--src/ChangeLog11
-rw-r--r--src/xdisp.c19
-rw-r--r--src/xfaces.c15
6 files changed, 65 insertions, 16 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 230bd8a6508..64ac50fe8f0 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,8 @@
12011-08-19 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * gnus-art.el (gnus-insert-mime-button, gnus-mime-display-alternative):
4 Make button keymap non-sticky after buttons.
5
12011-08-18 David Engster <dengste@eml.cc> 62011-08-18 David Engster <dengste@eml.cc>
2 7
3 * nnmairix.el (nnmairix-request-set-mark) 8 * nnmairix.el (nnmairix-request-set-mark)
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index 28c6aca367c..c6e0180dadc 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -5700,7 +5700,8 @@ all parts."
5700 gnus-callback gnus-mm-display-part 5700 gnus-callback gnus-mm-display-part
5701 gnus-part ,gnus-tmp-id 5701 gnus-part ,gnus-tmp-id
5702 article-type annotation 5702 article-type annotation
5703 gnus-data ,handle)) 5703 gnus-data ,handle
5704 rear-nonsticky t))
5704 (setq e (if (bolp) 5705 (setq e (if (bolp)
5705 ;; Exclude a newline. 5706 ;; Exclude a newline.
5706 (1- (point)) 5707 (1- (point))
@@ -6013,7 +6014,8 @@ If displaying \"text/html\" is discouraged \(see
6013 ,gnus-mouse-face-prop ,gnus-article-mouse-face 6014 ,gnus-mouse-face-prop ,gnus-article-mouse-face
6014 face ,gnus-article-button-face 6015 face ,gnus-article-button-face
6015 gnus-part ,id 6016 gnus-part ,id
6016 article-type multipart)) 6017 article-type multipart
6018 rear-nonsticky t))
6017 (widget-convert-button 'link from (point) 6019 (widget-convert-button 'link from (point)
6018 :action 'gnus-widget-press-button 6020 :action 'gnus-widget-press-button
6019 :button-keymap gnus-widget-button-keymap) 6021 :button-keymap gnus-widget-button-keymap)
@@ -6037,7 +6039,8 @@ If displaying \"text/html\" is discouraged \(see
6037 ,gnus-mouse-face-prop ,gnus-article-mouse-face 6039 ,gnus-mouse-face-prop ,gnus-article-mouse-face
6038 face ,gnus-article-button-face 6040 face ,gnus-article-button-face
6039 gnus-part ,id 6041 gnus-part ,id
6040 gnus-data ,handle)) 6042 gnus-data ,handle
6043 rear-nonsticky t))
6041 (widget-convert-button 'link from (point) 6044 (widget-convert-button 'link from (point)
6042 :action 'gnus-widget-press-button 6045 :action 'gnus-widget-press-button
6043 :button-keymap gnus-widget-button-keymap) 6046 :button-keymap gnus-widget-button-keymap)
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 313298de97e..b82147b97f1 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -1119,13 +1119,27 @@ It also eliminates runs of equal strings."
1119 `(display (space :align-to ,column))) 1119 `(display (space :align-to ,column)))
1120 nil)))) 1120 nil))))
1121 (if (not (consp str)) 1121 (if (not (consp str))
1122 (put-text-property (point) (progn (insert str) (point)) 1122 (put-text-property (point)
1123 (progn
1124 (insert (bidi-string-mark-left-to-right
1125 str))
1126 (point))
1123 'mouse-face 'highlight) 1127 'mouse-face 'highlight)
1124 (put-text-property (point) (progn (insert (car str)) (point)) 1128 (put-text-property (point)
1129 (progn
1130 (insert
1131 (bidi-string-mark-left-to-right
1132 (car str)))
1133 (point))
1125 'mouse-face 'highlight) 1134 'mouse-face 'highlight)
1126 (add-text-properties (point) (progn (insert (cadr str)) (point)) 1135 (add-text-properties (point)
1136 (progn
1137 (insert
1138 (bidi-string-mark-left-to-right
1139 (cadr str)))
1140 (point))
1127 '(mouse-face nil 1141 '(mouse-face nil
1128 face completions-annotations))) 1142 face completions-annotations)))
1129 (cond 1143 (cond
1130 ((eq completions-format 'vertical) 1144 ((eq completions-format 'vertical)
1131 ;; Vertical format 1145 ;; Vertical format
diff --git a/src/ChangeLog b/src/ChangeLog
index 1db99549c60..922a8a33a9c 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -422,6 +422,17 @@
422 (gs_load): Use printmax_t to print the widest integers possible. 422 (gs_load): Use printmax_t to print the widest integers possible.
423 Check for integer overflow when computing image height and width. 423 Check for integer overflow when computing image height and width.
424 424
4252011-08-19 Eli Zaretskii <eliz@gnu.org>
426
427 * xfaces.c (face_at_buffer_position): Avoid repeated evaluation of
428 face ID by FACE_FROM_ID, and avoid a crash when mouse is moved
429 from an Org mode buffer to a Speedbar frame.
430
431 * xdisp.c (RECORD_MAX_MIN_POS): If the display element comes from
432 a composition, take its buffer position from IT->cmp_it.charpos.
433 Fixes cursor positioning at the beginning of a line that begins
434 with a composed character.
435
4252011-08-18 Eli Zaretskii <eliz@gnu.org> 4362011-08-18 Eli Zaretskii <eliz@gnu.org>
426 437
427 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the 438 * bidi.c (bidi_get_type): If bidi_type_table reports zero as the
diff --git a/src/xdisp.c b/src/xdisp.c
index ea70c916762..86ad523dfdd 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -18384,15 +18384,22 @@ display_line (struct it *it)
18384#define RECORD_MAX_MIN_POS(IT) \ 18384#define RECORD_MAX_MIN_POS(IT) \
18385 do \ 18385 do \
18386 { \ 18386 { \
18387 if (IT_CHARPOS (*(IT)) < min_pos) \ 18387 int composition_p = (IT)->what == IT_COMPOSITION; \
18388 EMACS_INT current_pos = \
18389 composition_p ? (IT)->cmp_it.charpos \
18390 : IT_CHARPOS (*(IT)); \
18391 EMACS_INT current_bpos = \
18392 composition_p ? CHAR_TO_BYTE (current_pos) \
18393 : IT_BYTEPOS (*(IT)); \
18394 if (current_pos < min_pos) \
18388 { \ 18395 { \
18389 min_pos = IT_CHARPOS (*(IT)); \ 18396 min_pos = current_pos; \
18390 min_bpos = IT_BYTEPOS (*(IT)); \ 18397 min_bpos = current_bpos; \
18391 } \ 18398 } \
18392 if (IT_CHARPOS (*(IT)) > max_pos) \ 18399 if (current_pos > max_pos) \
18393 { \ 18400 { \
18394 max_pos = IT_CHARPOS (*(IT)); \ 18401 max_pos = current_pos; \
18395 max_bpos = IT_BYTEPOS (*(IT)); \ 18402 max_bpos = current_bpos; \
18396 } \ 18403 } \
18397 } \ 18404 } \
18398 while (0) 18405 while (0)
diff --git a/src/xfaces.c b/src/xfaces.c
index fee4a6f9d6a..431ca07b8df 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -5999,9 +5999,18 @@ face_at_buffer_position (struct window *w, EMACS_INT pos,
5999 5999
6000 *endptr = endpos; 6000 *endptr = endpos;
6001 6001
6002 default_face = FACE_FROM_ID (f, base_face_id >= 0 ? base_face_id 6002 {
6003 : NILP (Vface_remapping_alist) ? DEFAULT_FACE_ID 6003 int face_id;
6004 : lookup_basic_face (f, DEFAULT_FACE_ID)); 6004
6005 if (base_face_id >= 0)
6006 face_id = base_face_id;
6007 else if (NILP (Vface_remapping_alist))
6008 face_id = DEFAULT_FACE_ID;
6009 else
6010 face_id = lookup_basic_face (f, DEFAULT_FACE_ID);
6011
6012 default_face = FACE_FROM_ID (f, face_id);
6013 }
6005 6014
6006 /* Optimize common cases where we can use the default face. */ 6015 /* Optimize common cases where we can use the default face. */
6007 if (noverlays == 0 6016 if (noverlays == 0