[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#29353: [PATCH] Add window divider faces to NS (bug#29353)
From: |
Alan Third |
Subject: |
bug#29353: [PATCH] Add window divider faces to NS (bug#29353) |
Date: |
Sun, 19 Nov 2017 11:53:13 +0000 |
User-agent: |
Mutt/1.9.1 (2017-09-22) |
* src/nsterm.m (ns_draw_window_divider): Use
window-divider-first-pixel and window-divider-last-pixel faces.
---
src/nsterm.m | 46 +++++++++++++++++++++++++++++++++++++++-------
1 file changed, 39 insertions(+), 7 deletions(-)
diff --git a/src/nsterm.m b/src/nsterm.m
index 5c29f039e5..b63c85fc56 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -3174,18 +3174,50 @@ Note that CURSOR_WIDTH is meaningful only for (h)bar
cursors.
--------------------------------------------------------------------------
*/
{
struct frame *f = XFRAME (WINDOW_FRAME (w));
- struct face *face;
- NSRect r = NSMakeRect (x0, y0, x1-x0, y1-y0);
+ struct face *face = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_FACE_ID);
+ struct face *face_first
+ = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_FIRST_PIXEL_FACE_ID);
+ struct face *face_last
+ = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_LAST_PIXEL_FACE_ID);
+ unsigned long color = face ? face->foreground : FRAME_FOREGROUND_PIXEL (f);
+ unsigned long color_first = (face_first
+ ? face_first->foreground
+ : FRAME_FOREGROUND_PIXEL (f));
+ unsigned long color_last = (face_last
+ ? face_last->foreground
+ : FRAME_FOREGROUND_PIXEL (f));
+ NSRect divider = NSMakeRect (x0, y0, x1-x0, y1-y0);
NSTRACE ("ns_draw_window_divider");
- face = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_FACE_ID);
+ ns_focus (f, ÷r, 1);
- ns_focus (f, &r, 1);
- if (face)
- [ns_lookup_indexed_color(face->foreground, f) set];
+ if (y1 - y0 > x1 - x0 && x1 - x0 > 2)
+ /* Vertical. */
+ {
+ [ns_lookup_indexed_color(color_first, f) set];
+ NSRectFill(NSMakeRect (x0, y0, 1, y1 - y0));
+ [ns_lookup_indexed_color(color, f) set];
+ NSRectFill(NSMakeRect (x0 + 1, y0, x1 - x0 - 2, y1 - y0));
+ [ns_lookup_indexed_color(color_last, f) set];
+ NSRectFill(NSMakeRect (x1 - 1, y0, 1, y1 - y0));
+ }
+ else if (x1 - x0 > y1 - y0 && y1 - y0 > 3)
+ /* Horizontal. */
+ {
+ [ns_lookup_indexed_color(color_first, f) set];
+ NSRectFill(NSMakeRect (x0, y0, x1 - x0, 1));
+ [ns_lookup_indexed_color(color, f) set];
+ NSRectFill(NSMakeRect (x0, y0 + 1, x1 - x0, y1 - y0 -2));
+ [ns_lookup_indexed_color(color_last, f) set];
+ NSRectFill(NSMakeRect (x0, y1 - 1, x1 - x0, 1));
+ }
+ else
+ {
+ [ns_lookup_indexed_color(color, f) set];
+ NSRectFill(divider);
+ }
- NSRectFill(r);
ns_unfocus (f);
}
--
Hi Keith,
Can you please test this patch? I’m unsure how to set these faces so I
don’t know if it’s working right.
--
Alan Third
- bug#29353: OSX/MacOS: Adding support for window-divider-first/last-pixel, Keith David Bershatsky, 2017/11/18
- bug#29353: [PATCH] Add window divider faces to NS (bug#29353),
Alan Third <=
- bug#29353: [PATCH] Add window divider faces to NS (bug#29353), Keith David Bershatsky, 2017/11/19
- bug#29353: [PATCH] Add window divider faces to NS (bug#29353), Keith David Bershatsky, 2017/11/19
- bug#29353: [PATCH] Add window divider faces to NS (bug#29353), Keith David Bershatsky, 2017/11/19
- bug#29353: [PATCH] Add window divider faces to NS (bug#29353), Keith David Bershatsky, 2017/11/20
- bug#29353: [PATCH] Add window divider faces to NS (bug#29353), Keith David Bershatsky, 2017/11/20