diff options
| -rw-r--r-- | doc/lispref/ChangeLog | 12 | ||||
| -rw-r--r-- | doc/lispref/elisp.texi | 2 | ||||
| -rw-r--r-- | doc/lispref/files.texi | 2 | ||||
| -rw-r--r-- | doc/lispref/modes.texi | 10 | ||||
| -rw-r--r-- | doc/lispref/vol1.texi | 2 | ||||
| -rw-r--r-- | doc/lispref/vol2.texi | 2 | ||||
| -rw-r--r-- | lisp/ChangeLog | 16 | ||||
| -rw-r--r-- | lisp/emacs-lisp/lisp.el | 6 | ||||
| -rw-r--r-- | lisp/progmodes/which-func.el | 7 | ||||
| -rw-r--r-- | lisp/vc/smerge-mode.el | 4 | ||||
| -rw-r--r-- | src/ChangeLog | 16 | ||||
| -rw-r--r-- | src/textprop.c | 4 | ||||
| -rw-r--r-- | src/w32term.c | 52 | ||||
| -rw-r--r-- | src/xterm.c | 54 |
14 files changed, 143 insertions, 46 deletions
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 7ef3be46b68..3a66cebce2a 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,15 @@ | |||
| 1 | 2011-05-12 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * modes.texi (Region to Refontify): Rename from "Region to Fontify". | ||
| 4 | (Multiline Font Lock): | ||
| 5 | * vol2.texi (Top): | ||
| 6 | * vol1.texi (Top): | ||
| 7 | * elisp.texi (Top): Update menu accordingly. | ||
| 8 | |||
| 9 | 2011-05-12 Drew Adams <drew.adams@oracle.com> | ||
| 10 | |||
| 11 | * modes.texi (Region to Fontify): Fix typo. | ||
| 12 | |||
| 1 | 2011-05-06 Paul Eggert <eggert@cs.ucla.edu> | 13 | 2011-05-06 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 14 | ||
| 3 | * numbers.texi (Integer Basics): Large integers are treated as floats. | 15 | * numbers.texi (Integer Basics): Large integers are treated as floats. |
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index 69c50ba42be..259bb3cf86e 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi | |||
| @@ -828,7 +828,7 @@ Font Lock Mode | |||
| 828 | Multiline Font Lock Constructs | 828 | Multiline Font Lock Constructs |
| 829 | 829 | ||
| 830 | * Font Lock Multiline:: Marking multiline chunks with a text property. | 830 | * Font Lock Multiline:: Marking multiline chunks with a text property. |
| 831 | * Region to Fontify:: Controlling which region gets refontified | 831 | * Region to Refontify:: Controlling which region gets refontified |
| 832 | after a buffer change. | 832 | after a buffer change. |
| 833 | 833 | ||
| 834 | Documentation | 834 | Documentation |
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi index e3bdebd28a1..72f39f681ae 100644 --- a/doc/lispref/files.texi +++ b/doc/lispref/files.texi | |||
| @@ -251,7 +251,7 @@ literally, i.e. without conversions of any kind. The command | |||
| 251 | @code{find-file-literally} sets this variable's local value, but other | 251 | @code{find-file-literally} sets this variable's local value, but other |
| 252 | equivalent functions and commands can do that as well, e.g.@: to avoid | 252 | equivalent functions and commands can do that as well, e.g.@: to avoid |
| 253 | automatic addition of a newline at the end of the file. This variable | 253 | automatic addition of a newline at the end of the file. This variable |
| 254 | us permanent local, so it is unaffected by changes of major modes. | 254 | is permanent local, so it is unaffected by changes of major modes. |
| 255 | @end defvar | 255 | @end defvar |
| 256 | 256 | ||
| 257 | @node Subroutines of Visiting | 257 | @node Subroutines of Visiting |
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index f0a8985fa75..02f89f93207 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi | |||
| @@ -3174,7 +3174,7 @@ subsequent lines. | |||
| 3174 | 3174 | ||
| 3175 | @menu | 3175 | @menu |
| 3176 | * Font Lock Multiline:: Marking multiline chunks with a text property. | 3176 | * Font Lock Multiline:: Marking multiline chunks with a text property. |
| 3177 | * Region to Fontify:: Controlling which region gets refontified | 3177 | * Region to Refontify:: Controlling which region gets refontified |
| 3178 | after a buffer change. | 3178 | after a buffer change. |
| 3179 | @end menu | 3179 | @end menu |
| 3180 | 3180 | ||
| @@ -3226,7 +3226,7 @@ place the @code{font-lock-multiline} property on the text before | |||
| 3226 | Font-Lock looks at it, or use | 3226 | Font-Lock looks at it, or use |
| 3227 | @code{font-lock-fontify-region-function}. | 3227 | @code{font-lock-fontify-region-function}. |
| 3228 | 3228 | ||
| 3229 | @node Region to Fontify | 3229 | @node Region to Refontify |
| 3230 | @subsubsection Region to Fontify after a Buffer Change | 3230 | @subsubsection Region to Fontify after a Buffer Change |
| 3231 | 3231 | ||
| 3232 | When a buffer is changed, the region that Font Lock refontifies is | 3232 | When a buffer is changed, the region that Font Lock refontifies is |
| @@ -3235,15 +3235,15 @@ While this works well most of the time, sometimes it doesn't---for | |||
| 3235 | example, when a change alters the syntactic meaning of text on an | 3235 | example, when a change alters the syntactic meaning of text on an |
| 3236 | earlier line. | 3236 | earlier line. |
| 3237 | 3237 | ||
| 3238 | You can enlarge (or even reduce) the region to fontify by setting | 3238 | You can enlarge (or even reduce) the region to refontify by setting |
| 3239 | one the following variables: | 3239 | the following variable: |
| 3240 | 3240 | ||
| 3241 | @defvar font-lock-extend-after-change-region-function | 3241 | @defvar font-lock-extend-after-change-region-function |
| 3242 | This buffer-local variable is either @code{nil} or a function for | 3242 | This buffer-local variable is either @code{nil} or a function for |
| 3243 | Font-Lock to call to determine the region to scan and fontify. | 3243 | Font-Lock to call to determine the region to scan and fontify. |
| 3244 | 3244 | ||
| 3245 | The function is given three parameters, the standard @var{beg}, | 3245 | The function is given three parameters, the standard @var{beg}, |
| 3246 | @var{end}, and @var{old-len} from after-change-functions | 3246 | @var{end}, and @var{old-len} from @code{after-change-functions} |
| 3247 | (@pxref{Change Hooks}). It should return either a cons of the | 3247 | (@pxref{Change Hooks}). It should return either a cons of the |
| 3248 | beginning and end buffer positions (in that order) of the region to | 3248 | beginning and end buffer positions (in that order) of the region to |
| 3249 | fontify, or @code{nil} (which means choose the region in the standard | 3249 | fontify, or @code{nil} (which means choose the region in the standard |
diff --git a/doc/lispref/vol1.texi b/doc/lispref/vol1.texi index ad8ff0819ca..afcd3d6cbd6 100644 --- a/doc/lispref/vol1.texi +++ b/doc/lispref/vol1.texi | |||
| @@ -847,7 +847,7 @@ Font Lock Mode | |||
| 847 | Multiline Font Lock Constructs | 847 | Multiline Font Lock Constructs |
| 848 | 848 | ||
| 849 | * Font Lock Multiline:: Marking multiline chunks with a text property. | 849 | * Font Lock Multiline:: Marking multiline chunks with a text property. |
| 850 | * Region to Fontify:: Controlling which region gets refontified | 850 | * Region to Refontify:: Controlling which region gets refontified |
| 851 | after a buffer change. | 851 | after a buffer change. |
| 852 | 852 | ||
| 853 | Documentation | 853 | Documentation |
diff --git a/doc/lispref/vol2.texi b/doc/lispref/vol2.texi index 7832b3a8614..65ffbc23860 100644 --- a/doc/lispref/vol2.texi +++ b/doc/lispref/vol2.texi | |||
| @@ -846,7 +846,7 @@ Font Lock Mode | |||
| 846 | Multiline Font Lock Constructs | 846 | Multiline Font Lock Constructs |
| 847 | 847 | ||
| 848 | * Font Lock Multiline:: Marking multiline chunks with a text property. | 848 | * Font Lock Multiline:: Marking multiline chunks with a text property. |
| 849 | * Region to Fontify:: Controlling which region gets refontified | 849 | * Region to Refontify:: Controlling which region gets refontified |
| 850 | after a buffer change. | 850 | after a buffer change. |
| 851 | 851 | ||
| 852 | Documentation | 852 | Documentation |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b223382b271..d1348485002 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,19 @@ | |||
| 1 | 2011-05-12 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * smerge-mode.el (smerge-resolve): Use null-device rather than a | ||
| 4 | literal "/dev/null". | ||
| 5 | |||
| 6 | 2011-05-12 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 7 | |||
| 8 | * emacs-lisp/lisp.el (lisp-complete-symbol, lisp-completion-at-point): | ||
| 9 | Fix typo. | ||
| 10 | |||
| 11 | 2011-05-12 Ralph Schleicher <rs@ralph-schleicher.de> | ||
| 12 | |||
| 13 | * progmodes/which-func.el (which-function): | ||
| 14 | Use add-log-current-defun instead of add-log-current-defun-function, | ||
| 15 | which might not be defined (Bug#8260). | ||
| 16 | |||
| 1 | 2011-05-12 Glenn Morris <rgm@gnu.org> | 17 | 2011-05-12 Glenn Morris <rgm@gnu.org> |
| 2 | 18 | ||
| 3 | * emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble): | 19 | * emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble): |
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index deb06f52549..ef0c49b8616 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el | |||
| @@ -636,8 +636,8 @@ considered." | |||
| 636 | (plist (nthcdr 3 data))) | 636 | (plist (nthcdr 3 data))) |
| 637 | (if (null data) | 637 | (if (null data) |
| 638 | (minibuffer-message "Nothing to complete") | 638 | (minibuffer-message "Nothing to complete") |
| 639 | (let ((completion-annotate-function | 639 | (let ((completion-annotate-function |
| 640 | (plist-get plist :annotate-function))) | 640 | (plist-get plist :annotation-function))) |
| 641 | (completion-in-region (nth 0 data) (nth 1 data) (nth 2 data) | 641 | (completion-in-region (nth 0 data) (nth 1 data) (nth 2 data) |
| 642 | (plist-get plist :predicate)))))) | 642 | (plist-get plist :predicate)))))) |
| 643 | 643 | ||
| @@ -685,7 +685,7 @@ considered." | |||
| 685 | (when end | 685 | (when end |
| 686 | (list beg end obarray | 686 | (list beg end obarray |
| 687 | :predicate predicate | 687 | :predicate predicate |
| 688 | :annotate-function | 688 | :annotation-function |
| 689 | (unless (eq predicate 'fboundp) | 689 | (unless (eq predicate 'fboundp) |
| 690 | (lambda (str) (if (fboundp (intern-soft str)) " <f>")))))))) | 690 | (lambda (str) (if (fboundp (intern-soft str)) " <f>")))))))) |
| 691 | 691 | ||
diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el index ae18486c43b..4e4d7b15053 100644 --- a/lisp/progmodes/which-func.el +++ b/lisp/progmodes/which-func.el | |||
| @@ -270,7 +270,7 @@ It calls them sequentially, and if any returns non-nil, | |||
| 270 | (defun which-function () | 270 | (defun which-function () |
| 271 | "Return current function name based on point. | 271 | "Return current function name based on point. |
| 272 | Uses `which-func-functions', `imenu--index-alist' | 272 | Uses `which-func-functions', `imenu--index-alist' |
| 273 | or `add-log-current-defun-function'. | 273 | or `add-log-current-defun'. |
| 274 | If no function name is found, return nil." | 274 | If no function name is found, return nil." |
| 275 | (let ((name | 275 | (let ((name |
| 276 | ;; Try the `which-func-functions' functions first. | 276 | ;; Try the `which-func-functions' functions first. |
| @@ -320,9 +320,8 @@ If no function name is found, return nil." | |||
| 320 | (reverse (cons (car pair) namestack)))))))))))) | 320 | (reverse (cons (car pair) namestack)))))))))))) |
| 321 | 321 | ||
| 322 | ;; Try using add-log support. | 322 | ;; Try using add-log support. |
| 323 | (when (and (null name) (boundp 'add-log-current-defun-function) | 323 | (when (null name) |
| 324 | add-log-current-defun-function) | 324 | (setq name (add-log-current-defun))) |
| 325 | (setq name (funcall add-log-current-defun-function))) | ||
| 326 | ;; Filter the name if requested. | 325 | ;; Filter the name if requested. |
| 327 | (when name | 326 | (when name |
| 328 | (if which-func-cleanup-function | 327 | (if which-func-cleanup-function |
diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el index 75e3b514531..f26ccdbedda 100644 --- a/lisp/vc/smerge-mode.el +++ b/lisp/vc/smerge-mode.el | |||
| @@ -566,7 +566,7 @@ major modes. Uses `smerge-resolve-function' to do the actual work." | |||
| 566 | (with-current-buffer buf | 566 | (with-current-buffer buf |
| 567 | (zerop (call-process-region | 567 | (zerop (call-process-region |
| 568 | (point-min) (point-max) "patch" t nil nil | 568 | (point-min) (point-max) "patch" t nil nil |
| 569 | "-r" "/dev/null" "--no-backup-if-mismatch" | 569 | "-r" null-device "--no-backup-if-mismatch" |
| 570 | "-fl" o)))) | 570 | "-fl" o)))) |
| 571 | (save-restriction | 571 | (save-restriction |
| 572 | (narrow-to-region m0b m0e) | 572 | (narrow-to-region m0b m0e) |
| @@ -582,7 +582,7 @@ major modes. Uses `smerge-resolve-function' to do the actual work." | |||
| 582 | (with-current-buffer buf | 582 | (with-current-buffer buf |
| 583 | (zerop (call-process-region | 583 | (zerop (call-process-region |
| 584 | (point-min) (point-max) "patch" t nil nil | 584 | (point-min) (point-max) "patch" t nil nil |
| 585 | "-r" "/dev/null" "--no-backup-if-mismatch" | 585 | "-r" null-device "--no-backup-if-mismatch" |
| 586 | "-fl" m)))) | 586 | "-fl" m)))) |
| 587 | (save-restriction | 587 | (save-restriction |
| 588 | (narrow-to-region m0b m0e) | 588 | (narrow-to-region m0b m0e) |
diff --git a/src/ChangeLog b/src/ChangeLog index f7010859baa..d8895a91a55 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,19 @@ | |||
| 1 | 2011-05-12 Drew Adams <drew.adams@oracle.com> | ||
| 2 | |||
| 3 | * textprop.c (Fprevious_single_char_property_change): Doc fix (bug#8655). | ||
| 4 | |||
| 5 | 2011-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 6 | |||
| 7 | * w32term.c (w32_draw_fringe_bitmap): Rename local vars `left' and | ||
| 8 | `width' to `bar_area_x' and `bar_area_width', respectively. | ||
| 9 | (x_scroll_run): Take account of fringe background extension. | ||
| 10 | |||
| 11 | * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]: Rename | ||
| 12 | local vars `left' and `width' to `bar_area_x' and | ||
| 13 | `bar_area_width', respectively. | ||
| 14 | (x_scroll_run) [USE_TOOLKIT_SCROLL_BARS]: Take account of fringe | ||
| 15 | background extension. | ||
| 16 | |||
| 1 | 2011-05-10 Juanma Barranquero <lekktu@gmail.com> | 17 | 2011-05-10 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 18 | ||
| 3 | * image.c (Finit_image_library): Return t for built-in image types, | 19 | * image.c (Finit_image_library): Return t for built-in image types, |
diff --git a/src/textprop.c b/src/textprop.c index aad090c5b41..566b2962a63 100644 --- a/src/textprop.c +++ b/src/textprop.c | |||
| @@ -838,8 +838,8 @@ In a buffer, it runs to (point-min), and the value cannot be less than that. | |||
| 838 | The property values are compared with `eq'. | 838 | The property values are compared with `eq'. |
| 839 | If the property is constant all the way to the start of OBJECT, return the | 839 | If the property is constant all the way to the start of OBJECT, return the |
| 840 | first valid position in OBJECT. | 840 | first valid position in OBJECT. |
| 841 | If the optional fourth argument LIMIT is non-nil, don't search | 841 | If the optional fourth argument LIMIT is non-nil, don't search back past |
| 842 | back past position LIMIT; return LIMIT if nothing is found before LIMIT. */) | 842 | position LIMIT; return LIMIT if nothing is found before reaching LIMIT. */) |
| 843 | (Lisp_Object position, Lisp_Object prop, Lisp_Object object, Lisp_Object limit) | 843 | (Lisp_Object position, Lisp_Object prop, Lisp_Object object, Lisp_Object limit) |
| 844 | { | 844 | { |
| 845 | if (STRINGP (object)) | 845 | if (STRINGP (object)) |
diff --git a/src/w32term.c b/src/w32term.c index f6a6ba3e82f..d22aee6dc76 100644 --- a/src/w32term.c +++ b/src/w32term.c | |||
| @@ -715,22 +715,22 @@ w32_draw_fringe_bitmap (struct window *w, struct glyph_row *row, | |||
| 715 | 715 | ||
| 716 | if (sb_width > 0) | 716 | if (sb_width > 0) |
| 717 | { | 717 | { |
| 718 | int left = WINDOW_SCROLL_BAR_AREA_X (w); | 718 | int bar_area_x = WINDOW_SCROLL_BAR_AREA_X (w); |
| 719 | int width = (WINDOW_CONFIG_SCROLL_BAR_COLS (w) | 719 | int bar_area_width = (WINDOW_CONFIG_SCROLL_BAR_COLS (w) |
| 720 | * FRAME_COLUMN_WIDTH (f)); | 720 | * FRAME_COLUMN_WIDTH (f)); |
| 721 | 721 | ||
| 722 | if (bx < 0) | 722 | if (bx < 0) |
| 723 | { | 723 | { |
| 724 | /* Bitmap fills the fringe. */ | 724 | /* Bitmap fills the fringe. */ |
| 725 | if (left + width == p->x) | 725 | if (bar_area_x + bar_area_width == p->x) |
| 726 | bx = left + sb_width; | 726 | bx = bar_area_x + sb_width; |
| 727 | else if (p->x + p->wd == left) | 727 | else if (p->x + p->wd == bar_area_x) |
| 728 | bx = left; | 728 | bx = bar_area_x; |
| 729 | if (bx >= 0) | 729 | if (bx >= 0) |
| 730 | { | 730 | { |
| 731 | int header_line_height = WINDOW_HEADER_LINE_HEIGHT (w); | 731 | int header_line_height = WINDOW_HEADER_LINE_HEIGHT (w); |
| 732 | 732 | ||
| 733 | nx = width - sb_width; | 733 | nx = bar_area_width - sb_width; |
| 734 | by = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, | 734 | by = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, |
| 735 | row->y)); | 735 | row->y)); |
| 736 | ny = row->visible_height; | 736 | ny = row->visible_height; |
| @@ -738,13 +738,13 @@ w32_draw_fringe_bitmap (struct window *w, struct glyph_row *row, | |||
| 738 | } | 738 | } |
| 739 | else | 739 | else |
| 740 | { | 740 | { |
| 741 | if (left + width == bx) | 741 | if (bar_area_x + bar_area_width == bx) |
| 742 | { | 742 | { |
| 743 | bx = left + sb_width; | 743 | bx = bar_area_x + sb_width; |
| 744 | nx += width - sb_width; | 744 | nx += bar_area_width - sb_width; |
| 745 | } | 745 | } |
| 746 | else if (bx + nx == left) | 746 | else if (bx + nx == bar_area_x) |
| 747 | nx += width - sb_width; | 747 | nx += bar_area_width - sb_width; |
| 748 | } | 748 | } |
| 749 | } | 749 | } |
| 750 | } | 750 | } |
| @@ -2619,6 +2619,32 @@ x_scroll_run (struct window *w, struct run *run) | |||
| 2619 | fringes of W. */ | 2619 | fringes of W. */ |
| 2620 | window_box (w, -1, &x, &y, &width, &height); | 2620 | window_box (w, -1, &x, &y, &width, &height); |
| 2621 | 2621 | ||
| 2622 | /* If the fringe is adjacent to the left (right) scroll bar of a | ||
| 2623 | leftmost (rightmost, respectively) window, then extend its | ||
| 2624 | background to the gap between the fringe and the bar. */ | ||
| 2625 | if ((WINDOW_LEFTMOST_P (w) | ||
| 2626 | && WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w)) | ||
| 2627 | || (WINDOW_RIGHTMOST_P (w) | ||
| 2628 | && WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w))) | ||
| 2629 | { | ||
| 2630 | int sb_width = WINDOW_CONFIG_SCROLL_BAR_WIDTH (w); | ||
| 2631 | |||
| 2632 | if (sb_width > 0) | ||
| 2633 | { | ||
| 2634 | int bar_area_x = WINDOW_SCROLL_BAR_AREA_X (w); | ||
| 2635 | int bar_area_width = (WINDOW_CONFIG_SCROLL_BAR_COLS (w) | ||
| 2636 | * FRAME_COLUMN_WIDTH (f)); | ||
| 2637 | |||
| 2638 | if (bar_area_x + bar_area_width == x) | ||
| 2639 | { | ||
| 2640 | x = bar_area_x + sb_width; | ||
| 2641 | width += bar_area_width - sb_width; | ||
| 2642 | } | ||
| 2643 | else if (x + width == bar_area_x) | ||
| 2644 | width += bar_area_width - sb_width; | ||
| 2645 | } | ||
| 2646 | } | ||
| 2647 | |||
| 2622 | from_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->current_y); | 2648 | from_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->current_y); |
| 2623 | to_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->desired_y); | 2649 | to_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->desired_y); |
| 2624 | bottom_y = y + height; | 2650 | bottom_y = y + height; |
diff --git a/src/xterm.c b/src/xterm.c index 20259b7ab2e..2352f51cfb7 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -753,22 +753,22 @@ x_draw_fringe_bitmap (struct window *w, struct glyph_row *row, struct draw_fring | |||
| 753 | 753 | ||
| 754 | if (sb_width > 0) | 754 | if (sb_width > 0) |
| 755 | { | 755 | { |
| 756 | int left = WINDOW_SCROLL_BAR_AREA_X (w); | 756 | int bar_area_x = WINDOW_SCROLL_BAR_AREA_X (w); |
| 757 | int width = (WINDOW_CONFIG_SCROLL_BAR_COLS (w) | 757 | int bar_area_width = (WINDOW_CONFIG_SCROLL_BAR_COLS (w) |
| 758 | * FRAME_COLUMN_WIDTH (f)); | 758 | * FRAME_COLUMN_WIDTH (f)); |
| 759 | 759 | ||
| 760 | if (bx < 0) | 760 | if (bx < 0) |
| 761 | { | 761 | { |
| 762 | /* Bitmap fills the fringe. */ | 762 | /* Bitmap fills the fringe. */ |
| 763 | if (left + width == p->x) | 763 | if (bar_area_x + bar_area_width == p->x) |
| 764 | bx = left + sb_width; | 764 | bx = bar_area_x + sb_width; |
| 765 | else if (p->x + p->wd == left) | 765 | else if (p->x + p->wd == bar_area_x) |
| 766 | bx = left; | 766 | bx = bar_area_x; |
| 767 | if (bx >= 0) | 767 | if (bx >= 0) |
| 768 | { | 768 | { |
| 769 | int header_line_height = WINDOW_HEADER_LINE_HEIGHT (w); | 769 | int header_line_height = WINDOW_HEADER_LINE_HEIGHT (w); |
| 770 | 770 | ||
| 771 | nx = width - sb_width; | 771 | nx = bar_area_width - sb_width; |
| 772 | by = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, | 772 | by = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, |
| 773 | row->y)); | 773 | row->y)); |
| 774 | ny = row->visible_height; | 774 | ny = row->visible_height; |
| @@ -776,13 +776,13 @@ x_draw_fringe_bitmap (struct window *w, struct glyph_row *row, struct draw_fring | |||
| 776 | } | 776 | } |
| 777 | else | 777 | else |
| 778 | { | 778 | { |
| 779 | if (left + width == bx) | 779 | if (bar_area_x + bar_area_width == bx) |
| 780 | { | 780 | { |
| 781 | bx = left + sb_width; | 781 | bx = bar_area_x + sb_width; |
| 782 | nx += width - sb_width; | 782 | nx += bar_area_width - sb_width; |
| 783 | } | 783 | } |
| 784 | else if (bx + nx == left) | 784 | else if (bx + nx == bar_area_x) |
| 785 | nx += width - sb_width; | 785 | nx += bar_area_width - sb_width; |
| 786 | } | 786 | } |
| 787 | } | 787 | } |
| 788 | } | 788 | } |
| @@ -3232,6 +3232,34 @@ x_scroll_run (struct window *w, struct run *run) | |||
| 3232 | fringe of W. */ | 3232 | fringe of W. */ |
| 3233 | window_box (w, -1, &x, &y, &width, &height); | 3233 | window_box (w, -1, &x, &y, &width, &height); |
| 3234 | 3234 | ||
| 3235 | #ifdef USE_TOOLKIT_SCROLL_BARS | ||
| 3236 | /* If the fringe is adjacent to the left (right) scroll bar of a | ||
| 3237 | leftmost (rightmost, respectively) window, then extend its | ||
| 3238 | background to the gap between the fringe and the bar. */ | ||
| 3239 | if ((WINDOW_LEFTMOST_P (w) | ||
| 3240 | && WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w)) | ||
| 3241 | || (WINDOW_RIGHTMOST_P (w) | ||
| 3242 | && WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w))) | ||
| 3243 | { | ||
| 3244 | int sb_width = WINDOW_CONFIG_SCROLL_BAR_WIDTH (w); | ||
| 3245 | |||
| 3246 | if (sb_width > 0) | ||
| 3247 | { | ||
| 3248 | int bar_area_x = WINDOW_SCROLL_BAR_AREA_X (w); | ||
| 3249 | int bar_area_width = (WINDOW_CONFIG_SCROLL_BAR_COLS (w) | ||
| 3250 | * FRAME_COLUMN_WIDTH (f)); | ||
| 3251 | |||
| 3252 | if (bar_area_x + bar_area_width == x) | ||
| 3253 | { | ||
| 3254 | x = bar_area_x + sb_width; | ||
| 3255 | width += bar_area_width - sb_width; | ||
| 3256 | } | ||
| 3257 | else if (x + width == bar_area_x) | ||
| 3258 | width += bar_area_width - sb_width; | ||
| 3259 | } | ||
| 3260 | } | ||
| 3261 | #endif | ||
| 3262 | |||
| 3235 | from_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->current_y); | 3263 | from_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->current_y); |
| 3236 | to_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->desired_y); | 3264 | to_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->desired_y); |
| 3237 | bottom_y = y + height; | 3265 | bottom_y = y + height; |