2007-11-23 Adrian Robert * Version 9.0-rc3 released. 2007-11-22 Adrian Robert * configure.in, Makefile.in, src/Makefile.in, src/config.in, nextstep/compile: Change logic for GNUstep platforms to handle FHS installations in addition to regular. 2007-11-19 Adrian Robert * ns-win.el (ns-define-service): Take arg or marked text, and return string if arg given. * nsfns.m, nsselect.m: Use of Fsignal: send Qquit instead of Qerror, since these are more wrong-args type of messages, no serious errors requiring the debugger. 2007-11-16 Adrian Robert * ns-win.el: Adapt to recent change in buffer menu variable. * facemenu.el (facemenu-read-color): Don't require match to color list, so ARGB colors can be read. 2007-11-15 Adrian Robert * nsterm.m (x_set_window_size): Correct behavior on certain toolbar-added resizes by constraining to screen ourselves -- leaving it to Cocoa generated inconsistent results. 2007-11-11 Adrian Robert * lisp/international/fontset.el (script-representative-chars): Added chars for 'symbol' script. 2007-11-08 Adrian Robert * (various): Improved multi-TTY integration. * nsterm.m (x_set_window_size): Don't return if font width/height has changed. 2007-11-01 Adrian Robert * (various): Updated for multi-TTY integration. 2007-10-14 Adrian Robert * nsmenu.m (ns_popup_menu): Set frame in call to mouse_position_hook. * nsterm.m (ns_mouse_position): Check for null frame. 2007-10-14 Adrian Robert * nsmenu.m (EmacsToolbar-changed): Report changed on enablement state change. 2007-10-13 Adrian Robert * image.c (xpm_load_image): Work around an apparent bug in NSImage alpha management (avoids blocky appearance of startup image on black bg). * nsimage.m (-setXBMColor:): Only set color for non-alpha-masked pixels. Shouldn't have to do this, but... (Fixes "fat" rendering w/colored or dark fringe backgrounds). * nsterm.m (ns_dumpglyphs_image): Fix minor glitch w/background drawing. (-setMiniwindowImage:): Add argument to set to optionally set nil (for miniaturized version of window). * nsfns.m (ns_implicitly_set_icon_type): Use it. 2007-10-12 Adrian Robert * lisp/ns-menu-bar.el: Cut down to minimal code, eliminating most remaining redundancy with menu-bar.el, and move the remnant to ns-win.el. 2007-10-10 Adrian Robert * Patch 20071010_rc2a released. 2007-10-10 Peter Dyballa * nextstep/compile: Add --local-lisp-path= option to prepend a path to epaths.h to search for lisp before other directories. 2007-10-10 Seiji Zenitani * nsterm.m (ns_init_paths): Switch order from lisp, leim, site-lisp to site-lisp, lisp, leim. * ns-win.el (ns-utf8-nfd-post-read-conversion etc.): Define coding system utf-nfd to handle decomposed (normal form D) UTF-8 in MacOSX filenames. Based on initial contribution by Carsten Bormann. (This change went into rc2 but was not noted in the ChanngeLog there.) 2007-09-26 Adrian Robert * nsterm.m (ns_pending_files, -openFile:, ns_read_socket): Handle openFile requests by storing to a queue and acting on later when events can be processed. 2007-09-25 Adrian Robert * nsterm.m (ns_draw_window_cursor, EmacsView-windowDidResignKey): Be more clever about drawing background (to avoid flicker with blinking cursor). Also, rename cursor type line -> bar, bar -> underscore. * frame.c (do_switch_frame): Explicitly call Fraise_frame() on for_deletion case (to fully focus the frame). * nsterm.m (x_make_frame_visible): Make into a no-op (unneeded). 2007-09-21 Adrian Robert * nsterm.m (ns_draw_fringe_bitmap): Expand bitmap image cache as needed. * image.c: Be more careful about retain/release on image backgrounds. 2007-09-20 Adrian Robert * Version 9.0-rc2a released. 2007-09-18 Adrian Robert * nsimage.m (initFromSkipXBM, setXBMColor): Support colored bitmap rendering. * ns-win.el (print-buffer advice): Advice function to request confirm before print-buffer. Due to Kevin Rodgers. 2007-09-17 Adrian Robert * nsterm.m (EmacsWindow): New class to handle resize drags, which are directly handed to it by EmacsApp-sendEvent:. Allows continuous display update. Only enabled under Cocoa as resize handles vary under GNUstep. 2007-09-16 Adrian Robert * nsmenu.m (ns_popup_menu): Fix bug in location computation with horizontally-split windows. * nsmenu_common.c (find_and_return_menu_selection): Fix initialization bug that could cause crash on menu selection. * nsterm.m (cursor_blink_rate, cursor_blink_mode): Added cursor_blink_mode variable and set in ns-win.el:blink-cursor-mode. 2007-09-15 Adrian Robert * nsfont.m (nsfont_open): Improve font width calculation. * nsterm.m (ns_clear_frame_area): Check for non-null default face. 2007-09-14 Adrian Robert * nsterm.m (EmacsView -drawRect:): Incorporate an expose-frame call following suggestion of YAMAMOTO Mitsuharu. * lisp/faces.el (frame-set-background-mode): Undo a change by Daiki Ueno that made every face seem "locally-modified" such that it will not be updated for background color. 2007-09-13 Adrian Robert * nsterm.m (ns_draw_relief): Determine relief colors dynamically. 2007-09-12 Adrian Robert * nsfns.m (ns_set_background_color): Fixed crash bug when frame's default face not set yet. * nsmenu.m (EmacsMenu): Set action nil on items w/submenu. * nsfont.m (draw): Take account of s->gidx when determining chars to render. 2007-09-11 Adrian Robert * Version 9.0-rc2 released. 2007-09-09 Adrian Robert * nsterm.m (EmacsView-mouseDown:): Ignore scrollwheel events with delta == 0. Also, send scrollwheel events from scrollbars here. 2007-09-08 Adrian Robert * lisp/ns-mark-nav.el: Replaced with simplified implementation that also includes global functionality, due to Andrew L. Moore. 2007-09-07 Adrian Robert * nextstep/compile: Add support for installing lisp in shared location such as /usr/local/share/emacs/23.0.0 (--enable-shared 'prefix' option). 2007-09-06 Adrian Robert * nsfont.m (ns_uni_to_glyphs, ns_glyph_metrics): Implemented on-demand loading of metrics cached by 256-glyph blocks for each font. * (various): Fixed a few memory leaks. 2007-09-03 Adrian Robert * nsmenu.m, nsmenu_common.c: New menu implementation, following mac and X terms more closely. * ns-menu-bar.el: Use the common update buffers function. 2007-08-29 Adrian Robert * nsterm.m (EmacsScroller): Change scrolling to set bar position driven by emacs only and never internally -- prevents adjustment cycles causing jumpiness. * ns-win.el (ns-scroll-bar-move, ns-handle-scroll-bar-event): Work with the above change, and also use pager commands for slot clicks. Pager commands now use vertical-motion instead of forward-lines in order to avoid problems scrolling buffers with long lines. 2007-08-27 Adrian Robert * ns-win.el (ns-in-echo-area, ns-insert-working-text), (ns-delete-working-text, ns-echo-working-text, ns-unecho-working-text): Added/modified so composed editing works in weird cases when in minibuffer but not really in minibuffer (e.g., isearch). Also pick up deleteBackward: request when aborting a compose. * nsterm.m (EmacsView -keyDown et al.): If command is 'super', use system-given key to follow, e.g., dvorak/qwerty-shortcuts map correctly. Also, use charactersIgnoringModifers as criterion for determining whether we have a modifier sequence (instead of a composition). * cus-start.el: Add 'ns to the long list of window systems ignoring gtk variables. 2007-08-26 Adrian Robert * nsterm.m (ns_draw_glyph_string, ns_draw_box_or_relief) (ns_dumpglyphs): Improve box border and background coordinate computations, drop non-font-backend code. * nsterm.m (ns_compute_glyph_string_overhangs): Implemented for real. * nsfont.m (open, text_extents, draw): Compute proper bearings in open(), use them in text_extents. In draw(), now handle introductory matters previously done in ns_dumpglyphs(), which is no longer used. * font.c (font_load_for_face), nsfont.m (draw): Support overstrike for families with no bold member. 2007-08-25 Adrian Robert * image.c (xpm_load_image): Use lisp strings instead of ints for passing NSColor pointers. (Patch by David M. Cooke.) * nsimage.m: Clean up getPixel/setPixel methods, cache a reference to an NSBitmapImageRep as well as pixmap data, minor fixes to allocInitFromFile, and explicitly cache NSColor colorWithPatternImage used for stipple rendering rather than image rep. 2006-12-29 Adrian Robert * nsfont.m, nsterm.m: Use '_' to substitute for spaces in font names. * nsfns.m (ns-font-name): New function to extract font name from XLFD for pref-saving purposes. * ns-win.el (ns-save-preferences): Use it. Also, save ns-control-modifier, ns-function-modifier. 2006-12-24 Adrian Robert * Version NS 9.0-rc1 released: major feature enhancements and bug fixes. 2006-12-22 Adrian Robert * src/nsterm.m, nsfont.m: Improvements/fixes to clip rect calculation and certain drawing cases: fringe now goes to top, and top-row, full-width blocks look better. Also, (EV_BUTTON), make right mouse button be mouse-3 to emulate other emacsen. Finally, recognize dead-key modifiers accessible only when SHIFT is pressed (-keyDown). * nextstep/compile: Link MacOS/libexec items into MacOS/bin as some lisp packages seem to look for them there. 2006-12-21 Adrian Robert * lisp/ns-menu-bar.el: Updated menus to Emacs 21+ conventions. 2006-11-27 Adrian Robert * src/nsfns.m (x-create-frame): Correctly heed frame geometry specifications. * src/nsterm.m, nextstep/Cocoa/preferences.nib: Added ns-option-modifier (alias for ns-alternate-modifier), ns-control-modifier, ns-function-modifier settings. * src/ns-win.el (before-make-frame-hook): Behave correctly with strange negative-number symbol lists. 2006-11-20 Adrian Robert * src/nsfont.m: New file, implementing driver for Kenichi Handa's new font back-end. Font handling code is now simplified, consolidated, and more reliable. Fontsets now implemented and auto-created if a font is set for a frame instead of a fontset. * lisp/term/ns-win.el: Supporting changes for above. 2006-09-22 Adrian Robert * lib-src/Makefile.in: Use autoconf-determined $INSTALL_SCRIPT instead of $INSTALL_PROGRAM to install scripts (HAVE_NS only). 2006-09-19 Adrian Robert * src/emacs.c: #include GSConfig.h on GNUstep to pick up fake main definition to gnustep_base_user_main. * src/config.in: Add -I($GNUSTEP_SYSROOT) to C_SWITCH_X_SYSTEM so that this works. * src/alloc.c: Don't call 'asm("ta 3")' on Sparc / GNUstep systems, although maybe this should be Sparc / FreeBSD only. * configure.in: Add sparc-*-freebsd* to machine recognition -- though not sure why the OS is used in the pattern for machines. 2006-09-07 Adrian Robert * src/nsfns.m (ns-yes-or-no-p): Fixed function prototype. 2006-08-27 Adrian Robert * lisp/composite.el, loaddefs.el: Do not rely on emacs-basic-display being set when initializing global-auto-compose-mode, as it will not be when running in CANNOT_DUMP situation. * nextstep/compile: Check for 'info' under 'share' (put there in some gnustep builds). * nextstep/GNUstep/Images/emacs-orange-64.tiff: Make smaller. * nextstep/GNUstep/preferences.gorm: Updated for variable name change. * nsterm.m (EmacsPrefsController -setValuesFromPanel): Fixed bug in setting ExpandSpace. 2006-08-01 Adrian Robert * nsterm.m (ns_xlfd_to_fontname): Be more robust against malformed XLFD input. (ns_get_color): Return calibrated RGB versions of named colors. (syms_of_nsterm): Update documentation for modifier key variables. * etc/Emacs.clr: Add new colors from recent X11 rgb.txt files. (Courtesy of Peter Dyballa .) 2006-06-09 Adrian Robert * fontset.c (load_font_get_repertory): Avert a crash by checking whether get_font_repertory_func is defined. * nsterm.m (ns_draw_window_cursor): Adjust to changes in core. (ns_find_ccl_program): New function copied verbatim from xterm.c. (-keyDown) Accept alt(=Qnone)-fnKey as fnKey, not mapped characters. 2006-06-08 Adrian Robert * Version NS 9.0-pre3 released: major feature enhancements and bug fixes. 2006-06-07 Adrian Robert * nsselect.m (ns_string_from_pasteboard): Convert line endings (EOL) on incoming text. 2006-06-06 Adrian Robert * nsterm.m (-performDragOperation:): Correct coordinate calculation. * ns-win.el (ns-face-at-pos): Correct coordinate calculation. (all): Cleaned up / organized file. 2006-06-05 Adrian Robert * ns-win.el (ns-working-text-face, ns-working-overlay, ns-working-overlay-len): New variables supporting keyboard composition. (ns-insert-working-text, ns-delete-working-text): New functions supporting keyboard composition. * nsterm.m (-keyDown: -insertText:, -deleteWorkingText, -setMarkedText:selectedRange): New/updated methods supporting keyboard composition. (ns_working_text): New variable supporting keyboard composition. 2006-06-03 Adrian Robert * ns-win.el (ns-set-background-alpha) * nsfns.m (Fns_set_alpha): Add user function ns-set-background-alpha for setting window transparency, backed by ns-set-alpha. 2006-06-02 Adrian Robert * nsterm.m (ns_dumpglyphs): Further hackery to work around box borders. (-windowShouldZoom): New delegate method implementation needed on OS X to move window to origin on zoom. (ns_set_vertical_scroll_bar): Realize that window->total_lines is a lisp integer. 2006-06-01 Adrian Robert * nsterm.m ([EmacsView -keyDown]): Differentiate Backspace, Delete, and KP-Delete; also, report Ctrl-(code < 0x20) keys by code conversion, rather than solely by modifier flags. 2006-05-30 Adrian Robert * nsterm.m (ns_term_init): Set a Windows menu in NSApp so dock menu shows window list. 2006-05-29 Adrian Robert * nsterm.m (ns_draw_window_cursor): Check in right place for need to draw in fringe. (ns_load_font): Set rbearings a bit better so italic overhangs rendered more or less correctly. 2006-05-28 Adrian Robert * nsfns.m, nsterm.m, nsmenu.m: Finished toolbar support. * nsfns.m, nsterm.h, nsmenu.m: Tooltip support. * fontset.c (face_for_char): Shortcircuit a codepath, uneeded under NS, that was causing crashes when displaying non-ASCII characters. * nsterm.m (ns_define_frame_cursor): Act so cursor correctly updates when leaving window. 2006-04-22 Adrian Robert * Version NS 9.0-pre2a released: Stopgap release to sync w/latest unicode-2 CVS. XPM + partial toolbar support included. 2006-04-22 Adrian Robert * nsfns.m, nsterm.m, nsmenu.m: Toolbar support (incomplete). 2006-03-22 Adrian Robert * nsimage.m, image.c: XPM support. 2005-12-15 Adrian Robert * lread.c (init_lread): Stamp out path warning under NS. 2005-12-13 Adrian Robert * nsterm.m (ns_init_paths): Fixed bug where .app-internal lisp load path was being set even when it did not exist. 2005-11-11 Adrian Robert * nsterm.h: Set selection color when system default not used to emacs default LightGoldenRod2. (Can be changed by customizing 'region' face.) * man/ns-emacs.texi: Added a node describing Preferences Panel usage written by Adam Ratcliffe . * nsterm.m ([EmacsPrefsController -runHelp]): Go to this prefs node specifically; also, update display. 2005-11-11 Adrian Robert * Version NS 9.0-pre2 released: bugfixes and minor feature enhancements. * nextstep/compile, **/*.in: Revamped build process to place greater load on configure, less on C/CPPFLAGS env variables. For GNUstep, only the GNUSTEP_SYSTEM_ROOT variable must be set, and the compile script attempts to get this from /etc/GNUstep/GNUstep.conf. 2005-11-10 Adrian Robert * frame.c (syms_of_frame): Default scrollbar to right side under Cocoa. 2005-11-09 Adrian Robert * nsterm.m: Support flexible remapping of Alt/Opt and Command keys. 2005-11-08 Adrian Robert * nsterm.m (ns_load_font): Improvement to 11/07 change: new height metrics calculation. Changed "ShrinkSpace" default to "ExpandSpace" to reflect its role. Updated prefs panel. * nexstep/compile: Added detection of failure and made configure invocation more robust. Based on suggestion by Peter Dyballa. 2005-11-07 Adrian Robert * nsimage.m ([EmacsImage prepareForStippling]): Only cache if both height and width less than max. * nsterm.m (ns_load_font()): Set font height in XFontStruct (which is used for frame line height) to be same as was being set in max_bounds. This makes (window-text-height) correct, as well as estimates made in nsterm.m during resizes. 2005-11-06 Adrian Robert * nsterm.m ([EmacsView windowDidDeminiaturize]): Check emacs_event, since can be invoked asynchronously.