aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorMartin Rudalics2017-04-12 18:22:44 +0200
committerMartin Rudalics2017-04-12 18:22:44 +0200
commitc25005eda1c5ad8dabb3ce815658bd3c637ae686 (patch)
treed4c7e6bd2d2a9fe8cdc3345a0f84d6d0aa6d4987 /lisp
parent8720f601e715e5f1d41f7cf863a525a1cc1bc12c (diff)
downloademacs-c25005eda1c5ad8dabb3ce815658bd3c637ae686.tar.gz
emacs-c25005eda1c5ad8dabb3ce815658bd3c637ae686.zip
New internal-border face and args for select-window and x-focus-frame
Add `internal-border' face and handle it whenever clearing the internal border. If NORECORD equals the symbol 'mark-for-redisplay', `select-window' will not record the window but still mark it for redisplay. The new argument NOACTIVATE for `x-focus-frame' tries to not activate FRAME when set. * lisp/faces.el (internal-border): New face. * lisp/mwheel.el (mwheel-scroll): Select window to scroll with `mark-for-redisplay'. * lisp/scroll-bar.el (scroll-bar-drag) (scroll-bar-horizontal-drag, scroll-bar-scroll-down) (scroll-bar-scroll-up, scroll-bar-toolkit-scroll) (scroll-bar-toolkit-horizontal-scroll): Select window to scroll with `mark-for-redisplay'. * lisp/window.el (handle-select-window): When `focus-follows-mouse' is not 'auto-raise' try to not activate FRAME. * src/dispextern.h (face_id): Add INTERNAL_BORDER_FACE_ID. * src/frame.c (Fx_focus_frame): New argument NOACTIVATE. * src/frame.h (x_focus_frame): Update extern declaration. * src/gtkutil.c (xg_clear_under_internal_border): Remove function. (xg_frame_resized, xg_frame_set_char_size): Call x_clear_under_internal_border. (xg_tool_bar_callback): Adapt x_focus_frame call. * src/gtkutil.h (xg_clear_under_internal_border): Remove declaration. * src/nsfns.m (x_focus_frame): Add argument NOACTIVATE. * src/w32fns.c (x_clear_under_internal_border): Fill border with internal-border background if specified. * src/w32term.h (x_clear_under_internal_border): Add extern declaration. * src/w32term.c (x_after_update_window_line): Fill border with internal-border background if specified. (w32_set_vertical_scroll_bar, w32_set_horizontal_scroll_bar) (x_scroll_bar_clear, w32_read_socket): Call x_clear_under_internal_border. (x_focus_frame): New argument NOACTIVATE. * src/window.c (select_window): Mark WINDOW for redisplay when NORECORD equals 'mark-for-redisplay'. (Fselect_window): Update doc-string. (syms_of_window): Define Qmark_for_redisplay. * src/xdisp.c (clear_garbaged_frames, echo_area_display) (redisplay_internal): Call x_clear_under_internal_border. * src/xfaces.c (lookup_basic_face): Handle `window-divider' and `internal-border' faces. (realize_basic_faces): Realize `internal-border' face. (syms_of_xfaces): Define Qinternal_border. * src/xfns.c (x_set_internal_border_width): Remove call for xg_clear_under_internal_border. (x_focus_frame): New argument NOACTIVATE. When non-nil try to not activate frame. * src/xterm.c (x_fill_rectangle): No more static. (x_clear_under_internal_border, x_after_update_window_line): Fill border with internal-border background if specified. (xt_horizontal_action_hook): Rewrite. (handle_one_xevent): Call x_clear_under_internal_border. * src/xterm.h (x_fill_rectangle): Add extern declaration.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/faces.el7
-rw-r--r--lisp/mwheel.el3
-rw-r--r--lisp/scroll-bar.el12
-rw-r--r--lisp/window.el2
4 files changed, 17 insertions, 7 deletions
diff --git a/lisp/faces.el b/lisp/faces.el
index e62561a63a5..a6ffd1ecd33 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -2629,6 +2629,13 @@ the same as `window-divider' face."
2629 :group 'window-divider 2629 :group 'window-divider
2630 :group 'basic-faces) 2630 :group 'basic-faces)
2631 2631
2632(defface internal-border
2633 '((t nil))
2634 "Basic face for the internal border."
2635 :version "26.1"
2636 :group 'frames
2637 :group 'basic-faces)
2638
2632(defface minibuffer-prompt 2639(defface minibuffer-prompt
2633 '((((background dark)) :foreground "cyan") 2640 '((((background dark)) :foreground "cyan")
2634 ;; Don't use blue because many users of the MS-DOS port customize 2641 ;; Don't use blue because many users of the MS-DOS port customize
diff --git a/lisp/mwheel.el b/lisp/mwheel.el
index 73fd2b7e115..1428e5f4d01 100644
--- a/lisp/mwheel.el
+++ b/lisp/mwheel.el
@@ -220,6 +220,9 @@ non-Windows systems."
220 (mods 220 (mods
221 (delq 'click (delq 'double (delq 'triple (event-modifiers event))))) 221 (delq 'click (delq 'double (delq 'triple (event-modifiers event)))))
222 (amt (assoc mods mouse-wheel-scroll-amount))) 222 (amt (assoc mods mouse-wheel-scroll-amount)))
223 (unless (eq scroll-window selected-window)
224 ;; Mark window to be scrolled for redisplay.
225 (select-window scroll-window 'mark-for-redisplay))
223 ;; Extract the actual amount or find the element that has no modifiers. 226 ;; Extract the actual amount or find the element that has no modifiers.
224 (if amt (setq amt (cdr amt)) 227 (if amt (setq amt (cdr amt))
225 (let ((list-elt mouse-wheel-scroll-amount)) 228 (let ((list-elt mouse-wheel-scroll-amount))
diff --git a/lisp/scroll-bar.el b/lisp/scroll-bar.el
index 5290a7b3bee..58352740447 100644
--- a/lisp/scroll-bar.el
+++ b/lisp/scroll-bar.el
@@ -281,7 +281,7 @@ If you click outside the slider, the window scrolls to bring the slider there."
281 (with-current-buffer (window-buffer window) 281 (with-current-buffer (window-buffer window)
282 (setq before-scroll point-before-scroll)) 282 (setq before-scroll point-before-scroll))
283 (save-selected-window 283 (save-selected-window
284 (select-window window) 284 (select-window window 'mark-for-redisplay)
285 (setq before-scroll 285 (setq before-scroll
286 (or before-scroll (point)))) 286 (or before-scroll (point))))
287 (scroll-bar-drag-1 event) 287 (scroll-bar-drag-1 event)
@@ -326,7 +326,7 @@ If you click outside the slider, the window scrolls to bring the slider there."
326 (with-current-buffer (window-buffer window) 326 (with-current-buffer (window-buffer window)
327 (setq before-scroll point-before-scroll)) 327 (setq before-scroll point-before-scroll))
328 (save-selected-window 328 (save-selected-window
329 (select-window window) 329 (select-window window 'mark-for-redisplay)
330 (setq before-scroll 330 (setq before-scroll
331 (or before-scroll (point)))) 331 (or before-scroll (point))))
332 (scroll-bar-horizontal-drag-1 event) 332 (scroll-bar-horizontal-drag-1 event)
@@ -356,7 +356,7 @@ EVENT should be a scroll bar click."
356 (unwind-protect 356 (unwind-protect
357 (save-selected-window 357 (save-selected-window
358 (let ((portion-whole (nth 2 end-position))) 358 (let ((portion-whole (nth 2 end-position)))
359 (select-window window) 359 (select-window window 'mark-for-redisplay)
360 (setq before-scroll 360 (setq before-scroll
361 (or before-scroll (point))) 361 (or before-scroll (point)))
362 (scroll-down 362 (scroll-down
@@ -377,7 +377,7 @@ EVENT should be a scroll bar click."
377 (unwind-protect 377 (unwind-protect
378 (save-selected-window 378 (save-selected-window
379 (let ((portion-whole (nth 2 end-position))) 379 (let ((portion-whole (nth 2 end-position)))
380 (select-window window) 380 (select-window window 'mark-for-redisplay)
381 (setq before-scroll 381 (setq before-scroll
382 (or before-scroll (point))) 382 (or before-scroll (point)))
383 (scroll-up 383 (scroll-up
@@ -402,7 +402,7 @@ EVENT should be a scroll bar click."
402 (with-current-buffer (window-buffer window) 402 (with-current-buffer (window-buffer window)
403 (setq before-scroll point-before-scroll)) 403 (setq before-scroll point-before-scroll))
404 (save-selected-window 404 (save-selected-window
405 (select-window window) 405 (select-window window 'mark-for-redisplay)
406 (setq before-scroll (or before-scroll (point))) 406 (setq before-scroll (or before-scroll (point)))
407 (cond 407 (cond
408 ((eq part 'above-handle) 408 ((eq part 'above-handle)
@@ -449,7 +449,7 @@ EVENT should be a scroll bar click."
449 (with-current-buffer (window-buffer window) 449 (with-current-buffer (window-buffer window)
450 (setq before-scroll point-before-scroll)) 450 (setq before-scroll point-before-scroll))
451 (save-selected-window 451 (save-selected-window
452 (select-window window) 452 (select-window window 'mark-for-redisplay)
453 (setq before-scroll (or before-scroll (point))) 453 (setq before-scroll (or before-scroll (point)))
454 (cond 454 (cond
455 ((eq part 'before-handle) 455 ((eq part 'before-handle)
diff --git a/lisp/window.el b/lisp/window.el
index bea8383fcde..f4a834c0d8c 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -8855,7 +8855,7 @@ is active. This function is run by `mouse-autoselect-window-timer'."
8855 (raise-frame frame)) 8855 (raise-frame frame))
8856 (t 8856 (t
8857 ;; Just focus frame. 8857 ;; Just focus frame.
8858 (x-focus-frame frame)))))) 8858 (x-focus-frame frame t))))))
8859 8859
8860(defun truncated-partial-width-window-p (&optional window) 8860(defun truncated-partial-width-window-p (&optional window)
8861 "Return non-nil if lines in WINDOW are specifically truncated due to its width. 8861 "Return non-nil if lines in WINDOW are specifically truncated due to its width.