Package: emacs;
Reported by: Aaron Ecay <aaronecay <at> gmail.com>
Date: Tue, 17 Feb 2009 04:00:03 UTC
Severity: normal
Tags: patch
Merged with 2338
Done: Adrian Robert <adrian.b.robert <at> gmail.com>
Bug is archived. No further changes may be made.
Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):
From: Aaron Ecay <aaronecay <at> gmail.com> To: emacs-pretest-bug <at> gnu.org Subject: 23.0.90; Vertical window border on OS X Date: Mon, 16 Feb 2009 22:51:56 -0500
Please write in English if possible, because the Emacs maintainers usually do not have translators to read other languages for them. Your bug report will be posted to the emacs-pretest-bug <at> gnu.org mailing list. Please describe exactly what actions triggered the bug and the precise symptoms of the bug: On the OS X (and presumably GNUstep) port, the drawing of a vertical border between two frames does not work. This currently uses the NSDrawGroove function from the Cocoa/GNUstep API. According to http://preview.tinyurl.com/c2flh9 (apologies for the shortening, the link goes to some Apple API documentation and the URL is gargantuan), the function NSDrawGroove "Draws a gray-filled rectangle with a groove border". This would not be desirable behavior in any case, as making the divider gray disregards the setting of the vertical-border face. And in any event, it appears to be a no-op on OS X.5 (Leopard) -- after doing a C-x 3, there is no vertical frame border apparent against either a dark or a white background. The function to use, IMHO, is NSRectFill; substituting this fn makes the border drawing happen. NSRectFill was used in Emacs 22 (`emacs22' branch in the git repo, src/nsterm.m line 2466). The patch below fixes this behavior. It also restores another bit of v.22 status quo, namely making the vertical window divider one pixel in width, instead of the current two. ####### BEGIN PATCH ####### diff --git a/src/nsterm.m b/src/nsterm.m index b674eda..c2ebf9f 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -2454,7 +2454,7 @@ ns_draw_vertical_window_border (struct window *w, int x, int y0, int y1) { struct frame *f = XFRAME (WINDOW_FRAME (w)); struct face *face; - NSRect r = NSMakeRect (x, y0, 2, y1-y0); + NSRect r = NSMakeRect (x, y0, 1, y1-y0); NSTRACE (ns_draw_vertical_window_border); @@ -2463,7 +2463,7 @@ ns_draw_vertical_window_border (struct window *w, int x, int y0, int y1) [ns_lookup_indexed_color(face->foreground, f) set]; ns_focus (f, &r, 1); - NSDrawGroove (r, r); + NSRectFill(r); ns_unfocus (f); } ####### END PATCH ####### If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. If you would like to further debug the crash, please read the file /opt/src/emacs/nextstep/Emacs.app/Contents/Resources/etc/DEBUG for instructions. In GNU Emacs 23.0.90.7 (i386-apple-darwin9.6.0, NS apple-appkit-949.43) of 2009-02-15 on dhcp0403.vpm.resnet.group.upenn.edu Windowing system distributor `Apple', version 10.3.949 configured using `configure '--with-ns'' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: nil value of $XMODIFIERS: nil locale-coding-system: nil default-enable-multibyte-characters: t Major mode: Emacs-Lisp Minor modes in effect: diff-auto-refine-mode: t paredit-mode: t auto-insert-mode: t desktop-save-mode: t mac-print-mode: t shell-dirtrack-mode: t show-paren-mode: t global-auto-complete-mode: t auto-complete-mode: t display-battery-mode: t icomplete-mode: t savehist-mode: t recentf-mode: t partial-completion-mode: t display-time-mode: t ns-extended-platform-support-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t global-auto-composition-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Recent input: <wheel-down> <wheel-up> <double-wheel-up> <wheel-up> <double-wheel-up> <wheel-down> <double-wheel-down> <wheel-down> <double-wheel-down> <wheel-down> <wheel-down> <wheel-down> <wheel-down> <wheel-down> <double-wheel-down> <wheel-up> <wheel-down> <wheel-down> <help-echo> <wheel-down> <help-echo> <switch-frame> <switch-frame> <switch-frame> <switch-frame> <switch-frame> <switch-frame> <help-echo> <switch-frame> <help-echo> <help-echo> <ns-open-file-line> <switch-frame> <switch-frame> <wheel-down> <double-wheel-down> <wheel-up> <double-wheel-up> <wheel-down> <double-wheel-down> <wheel-up> <wheel-up> <wheel-down> <double-wheel-down> <wheel-down> <wheel-down> <double-wheel-down> <triple-wheel-down> <wheel-down> <wheel-down> <wheel-down> <wheel-down> <wheel-up> <wheel-down> <wheel-down> <wheel-down> <wheel-down> <wheel-down> <wheel-down> <wheel-down> <double-wheel-down> <wheel-down> <double-wheel-down> <triple-wheel-down> <triple-wheel-down> <wheel-down> <double-wheel-down> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down> <wheel-up> <double-wheel-up> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up> <switch-frame> <up> <up> <up> C-r C-h C-g C-e <return> <return> # SPC T O D O : SPC f u n c t i o n SPC t o SPC e d i t SPC i n SPC t e r m i n a l SPC ( e ) <return> <return> <backspace> C-x C-s C-h f r e p o r t - e m <tab> <return> <help-echo> <switch-frame> <switch-frame> <down-mouse-1> <mouse-movement> <mouse-1> C-h v u s e r - m a <return> <switch-frame> s h i <down> <down> <down> <up> <right> <down> <down> <down> <up> s h u u q h n n n n n n n s C-e C-e <return> <return> M-; T O O D : SPC <backspace> <backspace> <backspace> <backspace> D O : SPC m o v C-M-x C-x 3 C-x 0 C-x < M-x r e p o r t <return> Recent messages: Mark saved where search started byte-code: End of buffer [3 times] byte-code: Beginning of buffer [3 times] Saving file /Users/aecay/home/.zshrc... Wrote /Users/aecay/home/.zshrc Type "q" to quit. [2 times] Entering debugger... Back to top level. Mark set
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.