1 | --- emacs-23.0.0_NS-9.0rc2a/src/image.c 2007-09-15 21:36:19.000000000 +0300 |
---|
2 | +++ src/image.c 2007-10-14 06:30:25.000000000 +0300 |
---|
3 | @@ -1583,6 +1583,9 @@ |
---|
4 | |
---|
5 | img->background_transparent |
---|
6 | = (four_corners_best (mask, img->corners, img->width, img->height) == PIX_MASK_RETAIN); |
---|
7 | +#ifdef HAVE_NS |
---|
8 | + ns_retain_object(img->background_transparent); |
---|
9 | +#endif |
---|
10 | |
---|
11 | if (free_mask) |
---|
12 | Destroy_Image (mask, prev); |
---|
13 | @@ -1625,16 +1628,21 @@ |
---|
14 | { |
---|
15 | Free_Pixmap (FRAME_X_DISPLAY (f), img->pixmap); |
---|
16 | img->pixmap = NO_PIXMAP; |
---|
17 | - img->background_valid = 0; |
---|
18 | #ifdef HAVE_NS |
---|
19 | - ns_release_object(img->background); |
---|
20 | + if (img->background_valid) |
---|
21 | + ns_release_object(img->background); |
---|
22 | #endif |
---|
23 | + img->background_valid = 0; |
---|
24 | } |
---|
25 | |
---|
26 | if (mask_p && img->mask) |
---|
27 | { |
---|
28 | Free_Pixmap (FRAME_X_DISPLAY (f), img->mask); |
---|
29 | img->mask = NO_PIXMAP; |
---|
30 | +#ifdef HAVE_NS |
---|
31 | + if (img->background_transparent_valid) |
---|
32 | + ns_release_object(img->background_transparent); |
---|
33 | +#endif |
---|
34 | img->background_transparent_valid = 0; |
---|
35 | } |
---|
36 | |
---|
37 | @@ -4688,20 +4696,21 @@ |
---|
38 | Lisp_Object color_val = |
---|
39 | (*get_color_table) (color_table, str, chars_per_pixel); |
---|
40 | |
---|
41 | - XPutPixel (ximg, x, y, |
---|
42 | #ifndef HAVE_NS |
---|
43 | + XPutPixel (ximg, x, y, |
---|
44 | (INTEGERP (color_val) ? XINT (color_val) |
---|
45 | + : FRAME_FOREGROUND_PIXEL (f))); |
---|
46 | #else |
---|
47 | - (STRINGP (color_val) ? *(void **)SDATA(color_val) |
---|
48 | + if (STRINGP (color_val)) |
---|
49 | + XPutPixel (ximg, x, y, *(void **)SDATA(color_val)); |
---|
50 | #endif |
---|
51 | - : FRAME_FOREGROUND_PIXEL (f))); |
---|
52 | #ifndef HAVE_NS |
---|
53 | XPutPixel (mask_img, x, y, |
---|
54 | (!EQ (color_val, Qt) ? PIX_MASK_DRAW |
---|
55 | : (have_mask = 1, PIX_MASK_RETAIN))); |
---|
56 | #else |
---|
57 | if (EQ(color_val, Qt)) |
---|
58 | - ns_set_alpha(ximg, x, y, 0); |
---|
59 | + ns_set_alpha(ximg, x, y, 0); |
---|
60 | #endif |
---|
61 | } |
---|
62 | if (y + 1 < height) |
---|
63 | @@ -5477,7 +5486,7 @@ |
---|
64 | Display *dpy = FRAME_X_DISPLAY (f); |
---|
65 | GC gc; |
---|
66 | |
---|
67 | -#ifndef HAVE_NS //PENDING: NS XPM support |
---|
68 | +#ifndef HAVE_NS //PENDING |
---|
69 | |
---|
70 | #ifdef MAC_OS |
---|
71 | #define MaskForeground(f) PIX_MASK_DRAW |
---|
72 | --- emacs-23.0.0_NS-9.0rc2a/src/frame.c 2007-08-21 01:57:48.000000000 +0300 |
---|
73 | +++ src/frame.c 2007-09-25 22:46:40.000000000 +0300 |
---|
74 | @@ -734,6 +734,11 @@ |
---|
75 | } |
---|
76 | #endif /* !WINDOWSNT */ |
---|
77 | |
---|
78 | +#ifdef COCOA |
---|
79 | + /* term gets no other notification of this */ |
---|
80 | + Fraise_frame(Qnil); |
---|
81 | +#endif |
---|
82 | + |
---|
83 | /* We want to make sure that the next event generates a frame-switch |
---|
84 | event to the appropriate frame. This seems kludgy to me, but |
---|
85 | before you take it out, make sure that evaluating something like |
---|
86 | --- emacs-23.0.0_NS-9.0rc2a/src/nsterm.h 2007-09-19 18:13:06.000000000 +0300 |
---|
87 | +++ src/nsterm.h 2007-10-13 22:47:25.000000000 +0300 |
---|
88 | @@ -78,7 +78,7 @@ |
---|
89 | - (void)keyDown:(NSEvent *)theEvent; |
---|
90 | - (void)mouseDown:(NSEvent *)theEvent; |
---|
91 | - (void)mouseUp:(NSEvent *)theEvent; |
---|
92 | -- setMiniwindowImage; |
---|
93 | +- setMiniwindowImage: (BOOL)setMini; |
---|
94 | |
---|
95 | // Emacs-side interface |
---|
96 | - initFrameFromEmacs: (struct frame *) f; |
---|
97 | @@ -136,6 +136,7 @@ |
---|
98 | NSMutableDictionary *identifierToItem; |
---|
99 | NSMutableArray *activeIdentifiers; |
---|
100 | NSArray *prevIdentifiers; |
---|
101 | + unsigned long enablement, prevEnablement; |
---|
102 | } |
---|
103 | - initForView: (EmacsView *)view withIdentifier: (NSString *)identifier; |
---|
104 | - (void) clearActive; |
---|
105 | @@ -369,8 +370,8 @@ |
---|
106 | no_highlight=0, |
---|
107 | filled_box, |
---|
108 | hollow_box, |
---|
109 | - bar, |
---|
110 | - line |
---|
111 | + underscore, |
---|
112 | + bar |
---|
113 | }; |
---|
114 | |
---|
115 | |
---|
116 | @@ -535,6 +536,7 @@ |
---|
117 | Lisp_Object icon_top; |
---|
118 | Lisp_Object icon_left; |
---|
119 | enum ns_cursor_types current_cursor, desired_cursor; |
---|
120 | + unsigned char last_inactive; |
---|
121 | |
---|
122 | /* The size of the extra width currently allotted for vertical |
---|
123 | scroll bars, in pixels. */ |
---|
124 | @@ -597,6 +599,7 @@ |
---|
125 | #define FRAME_NEW_CURSOR_COLOR(f) ((f)->output_data.ns->desired_cursor_color) |
---|
126 | #define FRAME_NEW_CURSOR(f) ((f)->output_data.ns->desired_cursor) |
---|
127 | #define FRAME_POINTER_TYPE(f) ((f)->output_data.ns->current_pointer) |
---|
128 | +#define FRAME_LAST_INACTIVE(f) ((f)->output_data.ns->last_inactive) |
---|
129 | |
---|
130 | #ifndef COMPILING_MULTI_TERM |
---|
131 | #define FRAME_FONT(f) ((f)->output_data.ns->font) |
---|
132 | --- emacs-23.0.0_NS-9.0rc2a/src/nsterm.m 2007-09-19 22:22:05.000000000 +0300 |
---|
133 | +++ src/nsterm.m 2007-10-14 21:27:38.000000000 +0300 |
---|
134 | @@ -20,10 +20,9 @@ |
---|
135 | |
---|
136 | Originally by Carl Edman |
---|
137 | Updated by Christian Limpach (chris@nice.ch) |
---|
138 | -OpenStep/Rhapsody port by Scott Bender (sbender@harmony-ds.com) |
---|
139 | +OpenStep/Rhapsody port by Scott Bender (sbender@harmony-ds.com) |
---|
140 | MacOSX/Aqua port by Christophe de Dinechin (descubes@earthlink.net) |
---|
141 | GNUstep port and post-20 update by Adrian Robert (arobert@cogsci.ucsd.edu) |
---|
142 | - |
---|
143 | */ |
---|
144 | |
---|
145 | #include <math.h> |
---|
146 | @@ -241,11 +240,10 @@ |
---|
147 | static int select_nfds; |
---|
148 | static NSAutoreleasePool *outerpool; |
---|
149 | static BOOL ns_shutdown_properly = NO; |
---|
150 | - |
---|
151 | static struct input_event *emacs_event = NULL; |
---|
152 | static struct input_event *q_event_ptr = NULL; |
---|
153 | static int n_emacs_events_pending = 0; |
---|
154 | - |
---|
155 | +static NSMutableArray *ns_pending_files; |
---|
156 | |
---|
157 | /* Convert modifiers in a NeXTSTEP event to emacs style modifiers. */ |
---|
158 | #define NS_FUNCTION_KEY_MASK 0x800000 |
---|
159 | @@ -348,8 +346,8 @@ |
---|
160 | if (!getenv("EMACSLOADPATH")) |
---|
161 | { |
---|
162 | NSArray *paths = [resourceDir stringsByAppendingPaths: |
---|
163 | - [NSArray arrayWithObjects: @"lisp", @"leim", |
---|
164 | - @"site-lisp",nil]]; |
---|
165 | + [NSArray arrayWithObjects: @"site-lisp", @"lisp", |
---|
166 | + @"leim",nil]]; |
---|
167 | NSEnumerator *pathEnum = [paths objectEnumerator]; |
---|
168 | resourcePaths = @""; |
---|
169 | while (resourcePath = [pathEnum nextObject]) |
---|
170 | @@ -982,7 +980,9 @@ |
---|
171 | // External: Show the window (X11 semantics) |
---|
172 | // ---------------------------------------------------------------------------- |
---|
173 | { |
---|
174 | - ns_raise_frame(f); |
---|
175 | + NSTRACE(x_make_frame_visible); |
---|
176 | + // not needed, as the only place that calls this (frame.c:Fraise_frame()) also calls raise_lower |
---|
177 | + // ns_raise_frame(f); |
---|
178 | } |
---|
179 | |
---|
180 | |
---|
181 | @@ -993,6 +993,7 @@ |
---|
182 | // ---------------------------------------------------------------------------- |
---|
183 | { |
---|
184 | NSView * view = FRAME_NS_VIEW(f); |
---|
185 | + NSTRACE(x_make_frame_invisible); |
---|
186 | check_ns(); |
---|
187 | [[view window] orderOut:NSApp]; |
---|
188 | } |
---|
189 | @@ -1006,6 +1007,7 @@ |
---|
190 | { |
---|
191 | NSView * view = FRAME_NS_VIEW(f); |
---|
192 | struct ns_display_info *dpyinfo = FRAME_NS_DISPLAY_INFO (f); |
---|
193 | + NSTRACE(x_iconify_frame); |
---|
194 | check_ns(); |
---|
195 | |
---|
196 | if (dpyinfo->ns_highlight_frame == f) |
---|
197 | @@ -1035,7 +1037,9 @@ |
---|
198 | { |
---|
199 | NSView *view = FRAME_NS_VIEW(f); |
---|
200 | struct ns_display_info *dpyinfo = FRAME_NS_DISPLAY_INFO (f); |
---|
201 | + NSTRACE(x_destroy_window); |
---|
202 | check_ns(); |
---|
203 | + |
---|
204 | [(EmacsView *)view setWindowClosing: YES]; // may not have been informed |
---|
205 | |
---|
206 | BLOCK_INPUT; |
---|
207 | @@ -1430,15 +1434,13 @@ |
---|
208 | { |
---|
209 | [[col colorUsingColorSpaceName:NSCalibratedWhiteColorSpace] |
---|
210 | getWhite:&gray alpha:&alpha]; |
---|
211 | - sprintf(buf,"GRAY%02.2x%02.2x", |
---|
212 | - (int)rint(gray*0xff), |
---|
213 | - (int)rint(alpha*0xff)); |
---|
214 | + sprintf(buf,"GRAY%02.2x%02.2x", lrint(gray*0xff), lrint(alpha*0xff)); |
---|
215 | UNBLOCK_INPUT; |
---|
216 | return build_string(buf); |
---|
217 | } |
---|
218 | |
---|
219 | - sprintf(buf,"ARGB%02.2x%02.2x%02.2x%02.2x",(int)rint(alpha*0xff), |
---|
220 | - (int)rint(red*0xff),(int)rint(green*0xff),(int)rint(blue*0xff)); |
---|
221 | + sprintf(buf,"ARGB%02.2x%02.2x%02.2x%02.2x",lrint(alpha*0xff), |
---|
222 | + lrint(red*0xff), lrint(green*0xff), lrint(blue*0xff)); |
---|
223 | |
---|
224 | UNBLOCK_INPUT; |
---|
225 | return build_string(buf); |
---|
226 | @@ -1588,20 +1590,28 @@ |
---|
227 | int xchar, ychar; |
---|
228 | Lisp_Object frame, tail; |
---|
229 | struct frame *f; |
---|
230 | - struct ns_display_info *dpyinfo = FRAME_NS_DISPLAY_INFO (*fp); |
---|
231 | + struct ns_display_info *dpyinfo; |
---|
232 | |
---|
233 | NSTRACE(ns_mouse_position); |
---|
234 | |
---|
235 | + if (*fp == NULL) |
---|
236 | + { |
---|
237 | + fprintf(stderr, "Warning: ns_mouse_position() called with null *fp.\n"); |
---|
238 | + return; |
---|
239 | + } |
---|
240 | + |
---|
241 | + dpyinfo = FRAME_NS_DISPLAY_INFO (*fp); |
---|
242 | + |
---|
243 | BLOCK_INPUT; |
---|
244 | |
---|
245 | - if (! NILP (last_mouse_scroll_bar) && insist == 0) |
---|
246 | + if (last_mouse_scroll_bar != nil && insist == 0) |
---|
247 | { |
---|
248 | //PENDING: we do not use this path at the moment because drag events will |
---|
249 | // go directly to the EmacsScroller. Leaving code in for now. |
---|
250 | [last_mouse_scroll_bar getMouseMotionPart: part window:bar_window |
---|
251 | x:x y:y]; |
---|
252 | if (time) *time = last_mouse_movement_time; |
---|
253 | - last_mouse_scroll_bar = Qnil; |
---|
254 | + last_mouse_scroll_bar = nil; |
---|
255 | } |
---|
256 | else |
---|
257 | { |
---|
258 | @@ -1610,7 +1620,7 @@ |
---|
259 | if (FRAME_NS_DISPLAY (XFRAME (frame)) == FRAME_NS_DISPLAY (*fp)) |
---|
260 | XFRAME (frame)->mouse_moved = 0; |
---|
261 | |
---|
262 | - last_mouse_scroll_bar = Qnil; |
---|
263 | + last_mouse_scroll_bar = nil; |
---|
264 | if (last_mouse_frame && FRAME_LIVE_P(last_mouse_frame)) |
---|
265 | f = last_mouse_frame; |
---|
266 | else |
---|
267 | @@ -1628,8 +1638,8 @@ |
---|
268 | if (bar_window) *bar_window = Qnil; |
---|
269 | if (part) *part = 0; //scroll_bar_handle; |
---|
270 | |
---|
271 | - if (x) XSETINT (*x, (int)rint(position.x)); |
---|
272 | - if (y) XSETINT (*y, (int)rint(position.y)); |
---|
273 | + if (x) XSETINT (*x, lrint(position.x)); |
---|
274 | + if (y) XSETINT (*y, lrint(position.y)); |
---|
275 | if (time) *time = last_mouse_movement_time; |
---|
276 | *fp = f; |
---|
277 | } |
---|
278 | @@ -2051,7 +2061,8 @@ |
---|
279 | struct frame *f = XFRAME (WINDOW_FRAME (w)); |
---|
280 | struct face *face = p->face; |
---|
281 | int rowY; |
---|
282 | - static EmacsImage **bimgs; |
---|
283 | + static EmacsImage **bimgs = NULL; |
---|
284 | + static int nBimgs = 0; |
---|
285 | // NS-specific: move internal border inside fringe |
---|
286 | int x = p->bx < 0 ? p->x : p->bx; |
---|
287 | int wd = p->bx < 0 ? p->wd : p->nx; |
---|
288 | @@ -2064,10 +2075,21 @@ |
---|
289 | int xAdjust = FRAME_INTERNAL_BORDER_WIDTH(f) * |
---|
290 | (fringeOnVeryLeft ? -1 : (fringeOnVeryRight ? 1 : 0)); |
---|
291 | |
---|
292 | - if (!bimgs) |
---|
293 | + // grow bimgs if needed |
---|
294 | + if (nBimgs < max_used_fringe_bitmap) |
---|
295 | { |
---|
296 | - bimgs = xmalloc(max_used_fringe_bitmap * sizeof (EmacsImage *)); |
---|
297 | - bzero(bimgs, max_used_fringe_bitmap * sizeof (EmacsImage *)); |
---|
298 | + EmacsImage **newBimgs = |
---|
299 | + xmalloc(max_used_fringe_bitmap * sizeof (EmacsImage *)); |
---|
300 | + bzero(newBimgs, max_used_fringe_bitmap * sizeof (EmacsImage *)); |
---|
301 | + |
---|
302 | + if (nBimgs) |
---|
303 | + { |
---|
304 | + bcopy(bimgs, newBimgs, nBimgs * sizeof (EmacsImage *)); |
---|
305 | + xfree(bimgs); |
---|
306 | + } |
---|
307 | + |
---|
308 | + bimgs = newBimgs; |
---|
309 | + nBimgs = max_used_fringe_bitmap; |
---|
310 | } |
---|
311 | |
---|
312 | /* Must clip because of partially visible lines. */ |
---|
313 | @@ -2143,16 +2165,17 @@ |
---|
314 | // External call (RIF): draw cursor |
---|
315 | // ---------------------------------------------------------------------------- |
---|
316 | { |
---|
317 | - NSRect r,s; |
---|
318 | + NSRect r, s; |
---|
319 | int fx, fy, h; |
---|
320 | struct frame *f = WINDOW_XFRAME (w); |
---|
321 | struct glyph *phys_cursor_glyph; |
---|
322 | int overspill; |
---|
323 | + unsigned char drawGlyph = 0, cursorType, oldCursorType; |
---|
324 | |
---|
325 | NSTRACE(dumpcursor); |
---|
326 | |
---|
327 | if (!on_p) |
---|
328 | - return; //PENDING: erase? |
---|
329 | + return; |
---|
330 | |
---|
331 | w->phys_cursor_type = cursor_type; |
---|
332 | w->phys_cursor_on_p = 1; |
---|
333 | @@ -2189,7 +2212,8 @@ |
---|
334 | r.size.width -= overspill; |
---|
335 | |
---|
336 | //PENDING: 23: use emacs stored f->cursor_type instead of ns-specific |
---|
337 | - FRAME_CURSOR(f) = FRAME_NEW_CURSOR(f); |
---|
338 | + oldCursorType = FRAME_CURSOR(f); |
---|
339 | + cursorType = FRAME_CURSOR(f) = FRAME_NEW_CURSOR(f); |
---|
340 | FRAME_CURSOR_COLOR(f) = FRAME_NEW_CURSOR_COLOR(f); |
---|
341 | |
---|
342 | //PENDING: only needed in rare cases with last-resort font in HELLO.. |
---|
343 | @@ -2197,41 +2221,64 @@ |
---|
344 | ns_clip_to_row(w, glyph_row, -1, NULL); |
---|
345 | // ns_focus(f, &r, 1); |
---|
346 | |
---|
347 | - // draw the cursor |
---|
348 | - // needed for bar and line cursors |
---|
349 | - [FRAME_BACKGROUND_COLOR(f) set]; |
---|
350 | - NSRectFill(r); |
---|
351 | - [FRAME_CURSOR_COLOR(f) set]; |
---|
352 | + if (FRAME_LAST_INACTIVE(f)) |
---|
353 | + { |
---|
354 | + // previously hollow box; clear entire area |
---|
355 | + [FRAME_BACKGROUND_COLOR(f) set]; |
---|
356 | + NSRectFill(r); |
---|
357 | + drawGlyph = 1; |
---|
358 | + FRAME_LAST_INACTIVE(f) = NO; |
---|
359 | + } |
---|
360 | + |
---|
361 | + // prepare to draw |
---|
362 | + if (cursorType == no_highlight || cursor_type == NO_CURSOR) |
---|
363 | + { |
---|
364 | + // clearing for blink: erase the cursor itself |
---|
365 | + [FRAME_BACKGROUND_COLOR(f) set]; |
---|
366 | + cursorType = oldCursorType; // just clear what we had before |
---|
367 | + } |
---|
368 | + else |
---|
369 | + [FRAME_CURSOR_COLOR(f) set]; |
---|
370 | + |
---|
371 | + if (!active_p) |
---|
372 | + { |
---|
373 | + // inactive window: ignore what we just set and use a hollow box |
---|
374 | + cursorType = hollow_box; |
---|
375 | + [FRAME_CURSOR_COLOR(f) set]; |
---|
376 | + } |
---|
377 | |
---|
378 | - switch (active_p ? FRAME_CURSOR(f) : hollow_box) |
---|
379 | + switch (cursorType) |
---|
380 | { |
---|
381 | case no_highlight: |
---|
382 | break; |
---|
383 | case filled_box: |
---|
384 | NSRectFill(r); |
---|
385 | + drawGlyph = 1; |
---|
386 | break; |
---|
387 | case hollow_box: |
---|
388 | NSRectFill(r); |
---|
389 | [FRAME_BACKGROUND_COLOR(f) set]; |
---|
390 | NSRectFill(NSInsetRect(r, 1, 1)); |
---|
391 | [FRAME_CURSOR_COLOR(f) set]; |
---|
392 | + drawGlyph = 1; |
---|
393 | break; |
---|
394 | - case bar: |
---|
395 | + case underscore: |
---|
396 | s = r; |
---|
397 | - s.origin.y += 0.75 * s.size.height; |
---|
398 | - s.size.height *= 0.25; |
---|
399 | + s.origin.y += lrint(0.75 * s.size.height); |
---|
400 | + s.size.height = lrint(s.size.height * 0.25); |
---|
401 | NSRectFill(s); |
---|
402 | break; |
---|
403 | - case line: |
---|
404 | + case bar: |
---|
405 | s = r; |
---|
406 | - s.size.width = 2; |
---|
407 | + s.size.width = 1; |
---|
408 | NSRectFill(s); |
---|
409 | break; |
---|
410 | } |
---|
411 | ns_unfocus(f); |
---|
412 | |
---|
413 | - // draw the character under the cursor |
---|
414 | - draw_phys_cursor_glyph (w, glyph_row, DRAW_CURSOR); |
---|
415 | + // if needed, draw the character under the cursor |
---|
416 | + if (drawGlyph) |
---|
417 | + draw_phys_cursor_glyph (w, glyph_row, DRAW_CURSOR); |
---|
418 | } |
---|
419 | |
---|
420 | |
---|
421 | @@ -2570,7 +2617,9 @@ |
---|
422 | |
---|
423 | bg_x = x; |
---|
424 | bg_y = s->slice.y == 0 ? s->y : s->y + box_line_vwidth; |
---|
425 | - bg_height = s->height - 2 * box_line_vwidth; |
---|
426 | + bg_height = s->height; |
---|
427 | + // other terms have this, but was causing problems w/tabbar mode |
---|
428 | + // - 2 * box_line_vwidth; |
---|
429 | |
---|
430 | if (s->slice.x == 0) x += s->img->hmargin; |
---|
431 | if (s->slice.y == 0) y += s->img->vmargin; |
---|
432 | @@ -2600,9 +2649,8 @@ |
---|
433 | br.size.height += br.origin.y; |
---|
434 | br.origin.y = 0; |
---|
435 | } |
---|
436 | - if (br.origin.x <= fibw+1) |
---|
437 | + if (br.origin.x <= fibw+1 + box_line_vwidth) |
---|
438 | { |
---|
439 | - br.size.height += 2*box_line_vwidth; |
---|
440 | br.size.width += br.origin.x; |
---|
441 | br.origin.x = 0; |
---|
442 | } |
---|
443 | @@ -2868,19 +2916,28 @@ |
---|
444 | [outerpool release]; |
---|
445 | outerpool = [[NSAutoreleasePool alloc] init]; |
---|
446 | |
---|
447 | - /* We must always send one NX_APPDEFINED event to ourself, otherwise |
---|
448 | - [NXApp run] will never exit. */ |
---|
449 | - send_appdefined = YES; |
---|
450 | - |
---|
451 | - if (!expected) |
---|
452 | + /* If we've got pending open-file requests, attend to the next one of those. */ |
---|
453 | + if (ns_pending_files && [ns_pending_files count] != 0 |
---|
454 | + && [NSApp openFile: [ns_pending_files objectAtIndex: 0]]) |
---|
455 | { |
---|
456 | - /* Post an application defined event on the event queue. When this is |
---|
457 | - received the [NXApp run] will return, thus having processed all |
---|
458 | - events which are currently queued, if any. */ |
---|
459 | - ns_send_appdefined (-1); |
---|
460 | + [ns_pending_files removeObjectAtIndex: 0]; |
---|
461 | } |
---|
462 | + else |
---|
463 | + { |
---|
464 | + /* Run and wait for events. We must always send one NX_APPDEFINED event |
---|
465 | + to ourself, otherwise [NXApp run] will never exit. */ |
---|
466 | + send_appdefined = YES; |
---|
467 | |
---|
468 | - [NSApp run]; |
---|
469 | + if (!expected) |
---|
470 | + { |
---|
471 | + /* Post an application defined event on the event queue. When this is |
---|
472 | + received the [NXApp run] will return, thus having processed all |
---|
473 | + events which are currently queued, if any. */ |
---|
474 | + ns_send_appdefined (-1); |
---|
475 | + } |
---|
476 | + |
---|
477 | + [NSApp run]; |
---|
478 | + } |
---|
479 | |
---|
480 | nevents = n_emacs_events_pending; |
---|
481 | n_emacs_events_pending = 0; |
---|
482 | @@ -2948,11 +3005,11 @@ |
---|
483 | if (!NUMBERP(ns_cursor_blink_rate)) |
---|
484 | ns_cursor_blink_rate = make_float(0.5); |
---|
485 | cursor_blink_entry = |
---|
486 | - [[NSTimer scheduledTimerWithTimeInterval: XFLOATINT(ns_cursor_blink_rate) |
---|
487 | - target: NSApp |
---|
488 | - selector: @selector(cursor_blink_handler:) |
---|
489 | - userInfo:0 |
---|
490 | - repeats:YES] |
---|
491 | + [[NSTimer scheduledTimerWithTimeInterval: XFLOATINT(ns_cursor_blink_rate) |
---|
492 | + target: NSApp |
---|
493 | + selector: @selector(cursor_blink_handler:) |
---|
494 | + userInfo:0 |
---|
495 | + repeats:YES] |
---|
496 | retain]; |
---|
497 | } |
---|
498 | else if (NILP(ns_cursor_blink_mode) && cursor_blink_entry) |
---|
499 | @@ -3464,11 +3521,17 @@ |
---|
500 | // Start app and create the main menu, window, view. |
---|
501 | // Needs to be here because ns_initialize_display_info() uses AppKit classes. |
---|
502 | // The view will then ask the NSApp to stop and return to Emacs. |
---|
503 | + ns_pending_files = [[NSMutableArray alloc] init]; |
---|
504 | [EmacsApp sharedApplication]; |
---|
505 | if (NSApp == nil) |
---|
506 | return NULL; |
---|
507 | [NSApp setDelegate: NSApp]; |
---|
508 | |
---|
509 | + // debugging: log all notifications |
---|
510 | +// [[NSNotificationCenter defaultCenter] addObserver: NSApp |
---|
511 | +// selector:@selector(logNotification:) |
---|
512 | +// name: nil object: nil]; |
---|
513 | + |
---|
514 | dpyinfo = (struct ns_display_info *)xmalloc(sizeof(struct ns_display_info)); |
---|
515 | bzero (dpyinfo, sizeof (struct ns_display_info)); |
---|
516 | |
---|
517 | @@ -3798,6 +3861,15 @@ |
---|
518 | |
---|
519 | @implementation EmacsApp |
---|
520 | |
---|
521 | +- (void)logNotification:(NSNotification *)notification |
---|
522 | +{ |
---|
523 | + char *name = [[notification name] UTF8String]; |
---|
524 | + if (!strstr(name, "Update") && !strstr(name, "NSMenu") |
---|
525 | + && !strstr(name, "WindowNumber")) |
---|
526 | + NSLog(@"notification: '%@'", [notification name]); |
---|
527 | +} |
---|
528 | + |
---|
529 | + |
---|
530 | - (void)sendEvent:(NSEvent *)theEvent |
---|
531 | // ---------------------------------------------------------------------------- |
---|
532 | // Events posted by ns_send_appdefined interrupt the run loop here |
---|
533 | @@ -3873,6 +3945,15 @@ |
---|
534 | NSTRACE(applicationDidFinishLaunching); |
---|
535 | ns_send_appdefined (-2); |
---|
536 | } |
---|
537 | +/*- (void)applicationWillFinishLaunching:(NSNotification *)notification |
---|
538 | +// ---------------------------------------------------------------------------- |
---|
539 | +// When application is loaded, terminate event loop in ns_term_init |
---|
540 | +// ---------------------------------------------------------------------------- |
---|
541 | +{ |
---|
542 | + NSTRACE(applicationWillFinishLaunching); |
---|
543 | +fprintf(stderr, "willfinishlaunching\n"); |
---|
544 | + ns_send_appdefined (-2); |
---|
545 | +}*/ |
---|
546 | |
---|
547 | |
---|
548 | - (void) terminate: (id)sender |
---|
549 | @@ -3886,10 +3967,8 @@ |
---|
550 | } |
---|
551 | |
---|
552 | |
---|
553 | -// Open a file (used by below) |
---|
554 | --(BOOL) openFile: (char *)fileName |
---|
555 | - fromLine: (int)startLine |
---|
556 | - toLine: (int)endLine |
---|
557 | +// Open a file (used by below, after going into queue read by ns_read_socket) |
---|
558 | +-(BOOL) openFile: (NSString *)fileName |
---|
559 | { |
---|
560 | struct frame *emacsframe = SELECTED_FRAME(); |
---|
561 | NSEvent *theEvent = [NSApp currentEvent]; |
---|
562 | @@ -3899,11 +3978,8 @@ |
---|
563 | |
---|
564 | emacs_event->kind = NON_ASCII_KEYSTROKE_EVENT; |
---|
565 | emacs_event->code = KEY_NS_OPEN_FILE_LINE; |
---|
566 | - ns_input_file = append2(ns_input_file, build_string(fileName)); |
---|
567 | - if (startLine == endLine) |
---|
568 | - ns_input_line = (startLine >= 0) ? make_number(startLine) : Qnil; |
---|
569 | - else |
---|
570 | - ns_input_line = Fcons(make_number(startLine), make_number(endLine)); |
---|
571 | + ns_input_file = append2(ns_input_file, build_string([fileName UTF8String])); |
---|
572 | + ns_input_line = Qnil; // can be start or cons start,end |
---|
573 | emacs_event->modifiers=0; |
---|
574 | EV_TRAILER(theEvent); |
---|
575 | |
---|
576 | @@ -3912,35 +3988,37 @@ |
---|
577 | |
---|
578 | |
---|
579 | // Notification from the Workspace to open a file |
---|
580 | -- (BOOL)application: sender openFile: (NSString *)fileName |
---|
581 | +- (BOOL)application: sender openFile: (NSString *)file |
---|
582 | { |
---|
583 | - return [self openFile: (char *) [fileName UTF8String] fromLine:-1 toLine:-1]; |
---|
584 | + [ns_pending_files addObject: file]; |
---|
585 | + return YES; |
---|
586 | } |
---|
587 | |
---|
588 | |
---|
589 | // Open a file as a temporary file |
---|
590 | - (BOOL)application:sender openTempFile:(NSString *)file |
---|
591 | { |
---|
592 | - return [self application: sender openFile: file]; |
---|
593 | + [ns_pending_files addObject: file]; |
---|
594 | + return YES; |
---|
595 | } |
---|
596 | |
---|
597 | |
---|
598 | // Notification from the Workspace to open a file noninteractively (?) |
---|
599 | -- (BOOL)application: sender openFileWithoutUI: (NSString *)fileName |
---|
600 | +- (BOOL)application: sender openFileWithoutUI: (NSString *)file |
---|
601 | { |
---|
602 | - return [self openFile: (char *) [fileName UTF8String] fromLine:-1 toLine:-1]; |
---|
603 | + [ns_pending_files addObject: file]; |
---|
604 | + return YES; |
---|
605 | } |
---|
606 | |
---|
607 | |
---|
608 | // Notification from the Workspace to open multiple files |
---|
609 | - (void)application: sender openFiles: (NSArray *)fileList |
---|
610 | { |
---|
611 | - NSEnumerator *filenames = [fileList objectEnumerator]; |
---|
612 | - NSString *fileName; |
---|
613 | - while ((fileName = [filenames nextObject]) != nil) |
---|
614 | - if ([self openFile: (char *)[fileName UTF8String] fromLine:-1 toLine:-1] |
---|
615 | - == NO) |
---|
616 | - return; |
---|
617 | + NSEnumerator *files = [fileList objectEnumerator]; |
---|
618 | + NSString *file; |
---|
619 | + while ((file = [files nextObject]) != nil) |
---|
620 | + [ns_pending_files addObject: file]; |
---|
621 | + return YES; |
---|
622 | } |
---|
623 | |
---|
624 | |
---|
625 | @@ -3980,7 +4058,7 @@ |
---|
626 | } |
---|
627 | else |
---|
628 | { |
---|
629 | - f->output_data.ns->desired_cursor=no_highlight; |
---|
630 | + f->output_data.ns->desired_cursor = no_highlight; |
---|
631 | } |
---|
632 | update_window_cursor (XWINDOW(FRAME_SELECTED_WINDOW(f)), 1); |
---|
633 | //x_update_cursor (f, 1); |
---|
634 | @@ -4058,8 +4136,8 @@ |
---|
635 | |
---|
636 | size = [newFont pointSize]; |
---|
637 | //PENDING: stick w/integer sizes for now. |
---|
638 | -// if (size == rint(size)) |
---|
639 | - ns_input_fontsize = make_number((int)rint(size)); |
---|
640 | +// if (size == lrint(size)) |
---|
641 | + ns_input_fontsize = make_number(lrint(size)); |
---|
642 | // else |
---|
643 | // ns_input_fontsize = make_float(size); |
---|
644 | ns_input_font= build_string([[newFont familyName/*fontName*/] UTF8String]); |
---|
645 | @@ -4489,8 +4567,8 @@ |
---|
646 | emacs_event->modifiers = EV_MODIFIERS (theEvent) |
---|
647 | | EV_UDMODIFIERS (theEvent); |
---|
648 | } |
---|
649 | - XSETINT (emacs_event->x, (int)rint(p.x)); |
---|
650 | - XSETINT (emacs_event->y, (int)rint(p.y)); |
---|
651 | + XSETINT (emacs_event->x, lrint(p.x)); |
---|
652 | + XSETINT (emacs_event->y, lrint(p.y)); |
---|
653 | EV_TRAILER (theEvent); |
---|
654 | } |
---|
655 | |
---|
656 | @@ -4706,7 +4784,7 @@ |
---|
657 | struct frame *old_focus = dpyinfo->ns_focus_frame; |
---|
658 | |
---|
659 | NSTRACE(windowDidBecomeKey); |
---|
660 | - |
---|
661 | + |
---|
662 | if (emacsframe != old_focus) |
---|
663 | dpyinfo->ns_focus_frame = emacsframe; |
---|
664 | ///last_mouse_frame = emacsframe;? |
---|
665 | @@ -4736,6 +4814,7 @@ |
---|
666 | { |
---|
667 | FRAME_NEW_CURSOR(emacsframe) = hollow_box; |
---|
668 | x_update_cursor(emacsframe, 1); |
---|
669 | + FRAME_LAST_INACTIVE(emacsframe) = YES; |
---|
670 | } |
---|
671 | |
---|
672 | if (dpyinfo->ns_highlight_frame == emacsframe) |
---|
673 | @@ -4761,7 +4840,6 @@ |
---|
674 | - (void)windowWillMiniaturize:sender |
---|
675 | { |
---|
676 | NSTRACE(windowWillMiniaturize); |
---|
677 | - [self setMiniwindowImage]; |
---|
678 | } |
---|
679 | |
---|
680 | |
---|
681 | @@ -5090,7 +5168,7 @@ |
---|
682 | |
---|
683 | NSTRACE(performDragOperation); |
---|
684 | position = [self convertPoint:[sender draggingLocation] fromView:nil]; |
---|
685 | - x = (int)rint(position.x); y = (int)rint(position.y); |
---|
686 | + x = lrint(position.x); y = lrint(position.y); |
---|
687 | |
---|
688 | pb = [sender draggingPasteboard]; |
---|
689 | type = [pb availableTypeFromArray:ns_drag_types]; |
---|
690 | @@ -5211,19 +5289,23 @@ |
---|
691 | } |
---|
692 | |
---|
693 | |
---|
694 | -- setMiniwindowImage |
---|
695 | +// setMini=YES means set from internal (gives a finder icon), NO means set nil |
---|
696 | +// (gives a miniaturized version of the window); currently we use the latter for |
---|
697 | +// frames whose active buffer doesn't correspond to any file (e.g., '*scratch*') |
---|
698 | +- setMiniwindowImage: (BOOL) setMini |
---|
699 | { |
---|
700 | id image = [[self window] miniwindowImage]; |
---|
701 | NSTRACE(setMiniwindowImage); |
---|
702 | |
---|
703 | - // NOTE: under Cocoa this always returns nil, documentation about |
---|
704 | - // "AppleDockIconEnabled" notwithstanding, however the set message |
---|
705 | + // NOTE: under Cocoa miniwindowImage always returns nil, documentation |
---|
706 | + // about "AppleDockIconEnabled" notwithstanding, however the set message |
---|
707 | // below has its effect nonetheless. |
---|
708 | if (image != emacsframe->output_data.ns->miniimage) |
---|
709 | { |
---|
710 | if (image && [image isKindOfClass: [EmacsImage class]]) |
---|
711 | [image release]; |
---|
712 | - [[self window] setMiniwindowImage: emacsframe->output_data.ns->miniimage]; |
---|
713 | + [[self window] setMiniwindowImage: |
---|
714 | + setMini ? emacsframe->output_data.ns->miniimage : nil]; |
---|
715 | } |
---|
716 | |
---|
717 | return self; |
---|
718 | @@ -5739,7 +5821,7 @@ |
---|
719 | [cursorBlinkSlider setFloatValue: prevBlinkRate]; |
---|
720 | [cursorTypeMatrix selectCellWithTag: (cursorType == filled_box ? 1 : |
---|
721 | (cursorType == bar ? 2 : |
---|
722 | - (cursorType == line ? 3 : 4)))]; |
---|
723 | + (cursorType == underscore ? 3 : 4)))]; |
---|
724 | selectItemWithTag(alternateModMenu, ns_lisp_to_mod(ns_alternate_modifier)); |
---|
725 | selectItemWithTag(commandModMenu, ns_lisp_to_mod(ns_command_modifier)); |
---|
726 | #ifdef COCOA |
---|
727 | @@ -5813,7 +5895,7 @@ |
---|
728 | FRAME_NEW_CURSOR(frame) = |
---|
729 | (cursorTag == 1 ? filled_box : |
---|
730 | (cursorTag == 2 ? bar : |
---|
731 | - (cursorTag == 3 ? line : hollow_box))); |
---|
732 | + (cursorTag == 3 ? underscore : hollow_box))); |
---|
733 | store_frame_param(frame, Qcursor_type, |
---|
734 | ns_cursor_type_to_lisp(FRAME_NEW_CURSOR(frame))); |
---|
735 | ns_alternate_modifier = ns_mod_to_lisp(altTag); |
---|
736 | --- emacs-23.0.0_NS-9.0rc2a/src/nsmenu.m 2007-09-17 04:10:30.000000000 +0300 |
---|
737 | +++ src/nsmenu.m 2007-10-15 20:58:50.000000000 +0300 |
---|
738 | @@ -743,12 +743,11 @@ |
---|
739 | static Lisp_Object |
---|
740 | ns_popup_menu(Lisp_Object position, Lisp_Object menu) |
---|
741 | { |
---|
742 | - // NOTE: this also gets called when a choice is made in the app main menu; |
---|
743 | - // the second part of ns-menu-path is sent back |
---|
744 | EmacsMenu *pmenu; |
---|
745 | struct frame *f; |
---|
746 | NSPoint p; |
---|
747 | Lisp_Object window, x, y, tem, keymap, title; |
---|
748 | + struct gcpro gcpro1; |
---|
749 | int specpdl_count = SPECPDL_INDEX (), specpdl_count2; |
---|
750 | char *error_name = NULL; |
---|
751 | int keymaps = 0; |
---|
752 | @@ -758,16 +757,14 @@ |
---|
753 | |
---|
754 | if (!NILP(position)) |
---|
755 | { |
---|
756 | - |
---|
757 | check_ns(); |
---|
758 | |
---|
759 | if (EQ (position, Qt) |
---|
760 | || (CONSP (position) && (EQ (XCAR (position), Qmenu_bar) |
---|
761 | || EQ (XCAR (position), Qtool_bar)))) |
---|
762 | - |
---|
763 | { |
---|
764 | /* Use the mouse's current position. */ |
---|
765 | - struct frame *new_f = 0; |
---|
766 | + struct frame *new_f = SELECTED_FRAME(); |
---|
767 | |
---|
768 | if (mouse_position_hook) |
---|
769 | (*mouse_position_hook) (&new_f, 0, 0, 0, &x, &y, 0); |
---|
770 | @@ -821,18 +818,21 @@ |
---|
771 | |
---|
772 | p.x += XINT(x); p.y += XINT(y); |
---|
773 | |
---|
774 | -// p = [FRAME_NS_VIEW(f) convertPoint: p toView: nil]; |
---|
775 | -// p = [[FRAME_NS_VIEW(f) window] convertBaseToScreen: p]; |
---|
776 | - |
---|
777 | XSETFRAME (Vmenu_updating_frame, f); |
---|
778 | } |
---|
779 | else |
---|
780 | - { |
---|
781 | - // no position given |
---|
782 | + { // no position given |
---|
783 | + //PENDING: if called during dump, we need to stop precomputation of |
---|
784 | + // key equivalents (see below) because the keydefs in ns-win.el have |
---|
785 | + // not been loaded yet. |
---|
786 | + if (noninteractive) |
---|
787 | + return Qnil; |
---|
788 | Vmenu_updating_frame = Qnil; |
---|
789 | } |
---|
790 | |
---|
791 | // now parse the lisp menus |
---|
792 | + title = Qnil; |
---|
793 | + GCPRO1 (title); |
---|
794 | |
---|
795 | /* Decode the menu items from what was specified. */ |
---|
796 | |
---|
797 | @@ -899,8 +899,8 @@ |
---|
798 | keymaps = 0; |
---|
799 | } |
---|
800 | |
---|
801 | - // OK, now if no position given, we're just supposed to discard all that |
---|
802 | - // work (except for whatever was cached during key equivalent computation) |
---|
803 | + // If no position given, that was a signal to just precompute and cache |
---|
804 | + // key equivalents, which was a side-effect of what we just did. |
---|
805 | if (NILP (position)) |
---|
806 | { |
---|
807 | discard_menu_items (); |
---|
808 | @@ -1169,15 +1169,8 @@ |
---|
809 | image = TOOLPROP (TOOL_BAR_ITEM_IMAGES); |
---|
810 | if (VECTORP (image)) |
---|
811 | { |
---|
812 | - if (enabled_p) |
---|
813 | - idx = (selected_p |
---|
814 | - ? TOOL_BAR_IMAGE_ENABLED_SELECTED |
---|
815 | - : TOOL_BAR_IMAGE_ENABLED_DESELECTED); |
---|
816 | - else |
---|
817 | - idx = (selected_p |
---|
818 | - ? TOOL_BAR_IMAGE_DISABLED_SELECTED |
---|
819 | - : TOOL_BAR_IMAGE_DISABLED_DESELECTED); |
---|
820 | - |
---|
821 | + // NS toolbar auto-computes disabled and selected images |
---|
822 | + idx = TOOL_BAR_IMAGE_ENABLED_SELECTED; |
---|
823 | xassert (ASIZE (image) >= idx); |
---|
824 | image = AREF (image, idx); |
---|
825 | } |
---|
826 | @@ -1257,6 +1250,7 @@ |
---|
827 | [self setDelegate: self]; |
---|
828 | identifierToItem = [[NSMutableDictionary alloc] initWithCapacity: 10]; |
---|
829 | activeIdentifiers = [[NSMutableArray alloc] initWithCapacity: 8]; |
---|
830 | + prevEnablement = enablement = 0L; |
---|
831 | return self; |
---|
832 | } |
---|
833 | |
---|
834 | @@ -1273,11 +1267,14 @@ |
---|
835 | [prevIdentifiers release]; |
---|
836 | prevIdentifiers = [activeIdentifiers copy]; |
---|
837 | [activeIdentifiers removeAllObjects]; |
---|
838 | + prevEnablement = enablement; |
---|
839 | + enablement = 0L; |
---|
840 | } |
---|
841 | |
---|
842 | - (BOOL) changed |
---|
843 | { |
---|
844 | - return [activeIdentifiers isEqualToArray: prevIdentifiers] ? NO : YES; |
---|
845 | + return [activeIdentifiers isEqualToArray: prevIdentifiers] && |
---|
846 | + enablement == prevEnablement ? NO : YES; |
---|
847 | } |
---|
848 | |
---|
849 | - (void) addDisplayItemWithImage: (EmacsImage *)img idx: (int)idx |
---|
850 | @@ -1305,6 +1302,7 @@ |
---|
851 | // 3) update state |
---|
852 | [identifierToItem setObject: item forKey: identifier]; |
---|
853 | [activeIdentifiers addObject: identifier]; |
---|
854 | + enablement = (enablement << 1) | (enabled == YES); |
---|
855 | } |
---|
856 | |
---|
857 | // This overrides super's implementation, which automatically sets |
---|
858 | --- emacs-23.0.0_NS-9.0rc2a/src/nsfns.m 2007-09-17 16:35:23.000000000 +0300 |
---|
859 | +++ src/nsfns.m 2007-10-14 21:22:54.000000000 +0300 |
---|
860 | @@ -755,6 +755,8 @@ |
---|
861 | id image=nil; |
---|
862 | Lisp_Object chain, elt; |
---|
863 | NSAutoreleasePool *pool; |
---|
864 | + BOOL setMini = YES; |
---|
865 | + |
---|
866 | NSTRACE(ns_implicitly_set_icon_type); |
---|
867 | |
---|
868 | BLOCK_INPUT; |
---|
869 | @@ -803,11 +805,14 @@ |
---|
870 | } |
---|
871 | |
---|
872 | if (image == nil) |
---|
873 | - image = [[[NSWorkspace sharedWorkspace] iconForFileType:@"text"] retain]; |
---|
874 | + { |
---|
875 | + image = [[[NSWorkspace sharedWorkspace] iconForFileType:@"text"] retain]; |
---|
876 | + setMini = NO; |
---|
877 | + } |
---|
878 | |
---|
879 | [f->output_data.ns->miniimage release]; |
---|
880 | - f->output_data.ns->miniimage=image; |
---|
881 | - [view setMiniwindowImage]; |
---|
882 | + f->output_data.ns->miniimage = image; |
---|
883 | + [view setMiniwindowImage: setMini]; |
---|
884 | [pool release]; |
---|
885 | UNBLOCK_INPUT; |
---|
886 | } |
---|
887 | @@ -818,6 +823,8 @@ |
---|
888 | { |
---|
889 | EmacsView *view = FRAME_NS_VIEW(f); |
---|
890 | id image = nil; |
---|
891 | + BOOL setMini = YES; |
---|
892 | + |
---|
893 | NSTRACE(ns_set_icon_type); |
---|
894 | |
---|
895 | if (!NILP (arg) && SYMBOLP (arg)) |
---|
896 | @@ -840,10 +847,14 @@ |
---|
897 | image=[NSImage imageNamed:[NSString stringWithUTF8String: |
---|
898 | XSTRING(arg)->data]]; |
---|
899 | |
---|
900 | - if (image==nil) image=[NSImage imageNamed:@"text"]; |
---|
901 | + if (image == nil) |
---|
902 | + { |
---|
903 | + image = [NSImage imageNamed:@"text"]; |
---|
904 | + setMini = NO; |
---|
905 | + } |
---|
906 | |
---|
907 | - f->output_data.ns->miniimage=image; |
---|
908 | - [view setMiniwindowImage]; |
---|
909 | + f->output_data.ns->miniimage = image; |
---|
910 | + [view setMiniwindowImage: setMini]; |
---|
911 | } |
---|
912 | |
---|
913 | |
---|
914 | @@ -867,11 +878,11 @@ |
---|
915 | else if (XTYPE(arg) == Lisp_Symbol) |
---|
916 | str=XSTRING(XSYMBOL(arg)->xname)->data; |
---|
917 | else return -1; |
---|
918 | - if (!strcmp(str,"bar")) return bar; |
---|
919 | - if (!strcmp(str,"box")) return filled_box; |
---|
920 | - if (!strcmp(str,"hollow")) return hollow_box; |
---|
921 | - if (!strcmp(str,"line")) return line; |
---|
922 | - if (!strcmp(str,"no")) return no_highlight; |
---|
923 | + if (!strcmp(str,"box")) return filled_box; |
---|
924 | + if (!strcmp(str,"hollow")) return hollow_box; |
---|
925 | + if (!strcmp(str,"underscore")) return underscore; |
---|
926 | + if (!strcmp(str,"bar")) return bar; |
---|
927 | + if (!strcmp(str,"no")) return no_highlight; |
---|
928 | return -1; |
---|
929 | } |
---|
930 | |
---|
931 | @@ -881,12 +892,12 @@ |
---|
932 | { |
---|
933 | switch (arg) |
---|
934 | { |
---|
935 | - case bar: return intern("bar"); |
---|
936 | case filled_box: return Qbox; |
---|
937 | case hollow_box: return intern("hollow"); |
---|
938 | - case line: return intern("line"); |
---|
939 | + case underscore: return intern("underscore"); |
---|
940 | + case bar: return intern("bar"); |
---|
941 | case no_highlight: |
---|
942 | - default: return intern("no"); |
---|
943 | + default: return intern("no"); |
---|
944 | } |
---|
945 | } |
---|
946 | |
---|
947 | @@ -904,8 +915,8 @@ |
---|
948 | else |
---|
949 | { |
---|
950 | store_frame_param(f,Qcursor_type,oldval); |
---|
951 | - error ("the `cursor-type' frame parameter should be either `no', `bar', \ |
---|
952 | -`box', `hollow' or `line'."); |
---|
953 | + error ("the `cursor-type' frame parameter should be either `no', `box', \ |
---|
954 | +`hollow', `underscore' or `bar'."); |
---|
955 | } |
---|
956 | |
---|
957 | update_mode_lines++; |
---|
958 | @@ -2227,10 +2238,10 @@ |
---|
959 | |
---|
960 | [[col colorUsingColorSpaceName:NSCalibratedRGBColorSpace] |
---|
961 | getRed:&red green:&green blue:&blue alpha:&alpha]; |
---|
962 | - rgba[0] = make_number ((int) rint(red*65280)); |
---|
963 | - rgba[1] = make_number ((int) rint(green*65280)); |
---|
964 | - rgba[2] = make_number ((int) rint(blue*65280)); |
---|
965 | - rgba[3] = make_number ((int) rint(alpha*65280)); |
---|
966 | + rgba[0] = make_number (lrint(red*65280)); |
---|
967 | + rgba[1] = make_number (lrint(green*65280)); |
---|
968 | + rgba[2] = make_number (lrint(blue*65280)); |
---|
969 | + rgba[3] = make_number (lrint(alpha*65280)); |
---|
970 | |
---|
971 | return Flist (4, rgba); |
---|
972 | } |
---|
973 | --- emacs-23.0.0_NS-9.0rc2a/src/nsimage.m 2007-09-19 18:16:53.000000000 +0300 |
---|
974 | +++ src/nsimage.m 2007-10-13 23:35:59.000000000 +0300 |
---|
975 | @@ -316,6 +316,10 @@ |
---|
976 | } |
---|
977 | |
---|
978 | [self addRepresentation: bmRep]; |
---|
979 | + |
---|
980 | + bzero(planes[0], w*h); |
---|
981 | + bzero(planes[1], w*h); |
---|
982 | + bzero(planes[2], w*h); |
---|
983 | [self setXBMColor: [NSColor blackColor]]; |
---|
984 | return self; |
---|
985 | } |
---|
986 | @@ -342,15 +346,28 @@ |
---|
987 | [rgbColor getRed: &r green: &g blue: &b alpha: &a]; |
---|
988 | |
---|
989 | [bmRep getBitmapDataPlanes: planes]; |
---|
990 | - memset(planes[0], r*0xff, len); |
---|
991 | - memset(planes[1], g*0xff, len); |
---|
992 | - memset(planes[2], b*0xff, len); |
---|
993 | + |
---|
994 | + // we used to just do this, but Cocoa seems to have a bug when rendering |
---|
995 | + // an alpha-masked image onto a dark background where it bloats the mask |
---|
996 | +// memset(planes[0..2], r,g,b*0xff, len); |
---|
997 | + { |
---|
998 | + int i, len = s.width*s.height; |
---|
999 | + int rr = r * 0xff, gg = g * 0xff, bb = b * 0xff; |
---|
1000 | + for (i=0; i<len; i++) |
---|
1001 | + if (planes[3][i] != 0) |
---|
1002 | + { |
---|
1003 | + planes[0][i] = rr; |
---|
1004 | + planes[1][i] = gg; |
---|
1005 | + planes[2][i] = bb; |
---|
1006 | + } |
---|
1007 | + } |
---|
1008 | } |
---|
1009 | |
---|
1010 | |
---|
1011 | - initForXPMWithDepth: (int)depth width: (int)width height: (int)height |
---|
1012 | { |
---|
1013 | NSSize s = {width, height}; |
---|
1014 | + int i; |
---|
1015 | |
---|
1016 | [self initWithSize: s]; |
---|
1017 | |
---|
1018 | @@ -363,6 +380,8 @@ |
---|
1019 | bytesPerRow: width bitsPerPixel: 0]; |
---|
1020 | |
---|
1021 | [bmRep getBitmapDataPlanes: pixmapData]; |
---|
1022 | + for (i=0; i<4; i++) |
---|
1023 | + bzero(pixmapData[i], width*height); |
---|
1024 | [self addRepresentation: bmRep]; |
---|
1025 | return self; |
---|
1026 | } |
---|
1027 | --- emacs-23.0.0_NS-9.0rc2a/lisp/frame.el 2007-08-21 01:56:18.000000000 +0300 |
---|
1028 | +++ lisp/frame.el 2007-09-23 03:38:59.000000000 +0300 |
---|
1029 | @@ -706,7 +706,7 @@ |
---|
1030 | (nreverse frame-initial-geometry-arguments)) |
---|
1031 | (cdr param-list)) |
---|
1032 | |
---|
1033 | -(defcustom focus-follows-mouse (not (eq window-system 'mac)) |
---|
1034 | +(defcustom focus-follows-mouse (not (memq window-system '(mac ns))) |
---|
1035 | "*Non-nil if window system changes focus when you move the mouse. |
---|
1036 | You should set this variable to tell Emacs how your window manager |
---|
1037 | handles focus, since there is no way in general for Emacs to find out |
---|
1038 | --- emacs-23.0.0_NS-9.0rc2a/man/ns-emacs.texi 2007-09-11 14:43:46.000000000 +0300 |
---|
1039 | +++ man/ns-emacs.texi 2007-09-25 00:57:31.000000000 +0300 |
---|
1040 | @@ -405,9 +405,9 @@ |
---|
1041 | @item |
---|
1042 | Box - the cursor is displayed as a box |
---|
1043 | @item |
---|
1044 | -Bar - the cursor is displayed as a horizontal bar |
---|
1045 | +Underscore - the cursor is displayed as a horizontal bar |
---|
1046 | @item |
---|
1047 | -Line - the cursor is displayed as a vertical bar |
---|
1048 | +Bar - the cursor is displayed as a vertical bar |
---|
1049 | @item |
---|
1050 | Hollow - the cursor is displayed as a box with an outline but no fill |
---|
1051 | @end itemize |
---|
1052 | @@ -540,7 +540,7 @@ |
---|
1053 | |
---|
1054 | @item CursorType |
---|
1055 | Name of the default cursor type for Emacs. Allowed values are |
---|
1056 | -@samp{bar}, @samp{box}, @samp{hollow}, @samp{line} and @samp{no}. |
---|
1057 | +@samp{box}, @samp{hollow}, @samp{underscore}, @samp{bar}, @samp{line} and @samp{no}. |
---|
1058 | |
---|
1059 | @example |
---|
1060 | defaults write Emacs CursorType box |
---|
1061 | --- emacs-23.0.0_NS-9.0rc2a/nextstep/Cocoa/Info.plist 2007-09-20 14:20:38.000000000 +0300 |
---|
1062 | +++ nextstep/Cocoa/Info.plist 2007-09-25 23:57:10.000000000 +0300 |
---|
1063 | @@ -105,6 +105,10 @@ |
---|
1064 | </array> |
---|
1065 | <key>CFBundleTypeName</key> |
---|
1066 | <string>Any</string> |
---|
1067 | + <key>CFBundleTypeOSTypes</key> |
---|
1068 | + <array> |
---|
1069 | + <string>****</string> |
---|
1070 | + </array> |
---|
1071 | <key>CFBundleTypeRole</key> |
---|
1072 | <string>Editor</string> |
---|
1073 | </dict> |
---|
1074 | diff -Naur emacs-23.0.0_NS-9.0rc2a/nextstep/Cocoa/preferences.nib/keyedobjects.nib emacs/nextstep/Cocoa/preferences.nib/keyedobjects.nib |
---|
1075 | --- emacs-23.0.0_NS-9.0rc2a/nextstep/Cocoa/preferences.nib/keyedobjects.nib 2007-09-11 06:34:28.000000000 +0300 |
---|
1076 | +++ nextstep/Cocoa/preferences.nib/keyedobjects.nib 2007-09-25 23:08:20.000000000 +0300 |
---|
1077 | @@ -1,35 +1,42 @@ |
---|
1078 | bplist00Ô |
---|
1079 | Y$archiverX$versionT$topX$objects_NSKeyedArchiver Ñ ]IB.objectdata¯"156<=AE\drxy ¤¥¨©®´»¼ÅÆÇËÐ×ØãäåìíõöÆ÷ü |
---|
1080 | Æ !)*+0167<EFZ\abehinuv~
£ª«³´¶·¼½ÂÃÈÉÎåæçèë $)*,012:;EFGKMPSV]^fgklqruz{~)¤1¥:«´µ¼½ÂÉÊÑÒÙÚáâéêñòùú |
---|
1081 | -$&),34;<CDKLW[`a1bhinp: ¬µ¶º¿ÃÄÈÊÍÑÚÛäåæçîïóúû |
---|
1082 | - #%9>?ÏDEIMNOQT]fNgqNr|N}NN¢£«¬³´¿ÁÊ|NÎÐ×>NàNéNòùú |
---|
1083 | - qN$&.>N7|N@NINRYZabijqryz
fNqN¨>N±|NºNÃNÌÕÙ)Þ1ß:åçèéêëîïôõúû |
---|
1084 | \¥ê/01234 |
---|
1085 | 567896²:;<6°=>? |
---|
1086 | 5@ABACBDEFG5H5 |
---|
1087 | IJ |
---|
1088 | 6KL1MNOPQRSTMMMUVWAAXYZ1[^a¿ !"#$%&'()*+,-.B/01 |
---|
1089 | -23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUÞVWXYZ[\]^_`abcdefghijklmnopqrsvy|U$nullß |
---|
1090 | !"#$%&'()*+,-./0_NSObjectsValues_NSAccessibilityConnectors_NSClassesValuesZNSOidsKeys[NSNamesKeys]NSClassesKeys_NSAccessibilityOidsValues\NSOidsValues_NSVisibleWindowsV$class]NSConnections]NSNamesValues]NSObjectsKeys_NSAccessibilityOidsKeys[NSFramework]NSFontManagerYNSNextOidVNSRootzÀÁ{¿ Â!|yØÒ234[NSClassName_EmacsPrefsControllerÒ789:X$classesZ$classname¢:;^NSCustomObjectXNSObject_IBCocoaFrameworkÒ>?@ZNS.objects Ò78BC£CD;\NSMutableSetUNSSetÒ>F[¯GHIJKLMNOPQRSTUVWXYZ *179;EMT[]_amoqsuwmÔ]^_`abc]NSDestinationWNSLabelXNSSource |
---|
1091 | -×efghijkkmnopq_NSNextResponder[NSSuperviewWNSFrameYNSEnabledXNSvFlagsVNSCell |
---|
1092 | Ôsegt.vwZNSSubviewsggl_{{168, 372}, {265, 18}}Ýz{|}~
c_NSKeyEquivalent_NSAlternateImageYNSSupportZNSContents]NSControlView^NSButtonFlags2_NSPeriodicInterval]NSButtonFlags_NSPeriodicDelay[NSCellFlags_NSAlternateContents\NSCellFlags2 |
---|
1093 | -H<QÿÈÿÿÿÿþ\Smooth fontsÔVNSSizeVNSNameXNSfFlags"AP\LucidaGrandeÒ78¢;VNSFontÒ¡¢£[NSImageNameXNSSwitchÒ78¦§¢§;_NSButtonImageSourcePÒ78ª«¥«¬j;\NSButtonCell]%NSButtonCell\NSActionCellÒ78¯°¥°±²³;XNSButtonYNSControlVNSView[NSResponder×efghijkk·nopº _{{168, 350}, {265, 18}}Ýz{|}~
À`Ãþ_!Use Quickdraw (lighter) smoothing[nextKeyViewÒ78ÈÉ£ÉÊ;_NSNibOutletConnector^NSNibConnectorÔ]^_ÌÍbÏ$)×efghijkkÓnopÖ !_{{286, 12}, {80, 32}}Ýz{|}~
ÙÜÏÞßÃâ#"ÿÿÿÿ@ÿVCancelQ×efghijkkènopë% &_{{366, 12}, {80, 32}}Ýz{|}~
îñÌÞßÃâ('$ROKQ |
---|
1094 | Ô]^_Ïùbû0+×efghijkkÿnop, -_{{20, 17}, {21, 23}}Ýz{|}~
û |
---|
1095 | +$&),34;<CDKLW[`a1bhinp¡®¶·»ÀÄÅÉËÎÒÛÜåæçèïðôûü!$&:?@ÐEFJNOPRU^gOhrOs}O~OO£¤¬´µÀÂË}OÏÑØ?OáOêOóúû |
---|
1096 | +!rO%'/?O8}OAOJOSZ[bcjkrsz{gO rO©?O²}O»OÄOÍÖÚ)ß1à:æèéêëìïðõöûü |
---|
1097 | ]¦ë01234356789:;33<=>?@AB7CDEE²FGHIJBEKLGBMNO°PEQRBSTUVW7XYZ[799\_bÀ !"#$%&'()*+,-./0Þ123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ |
---|
1098 | +[\]^_`abBcdefghijklmnopqrstwz}U$nullß |
---|
1099 | !"#$%&'()*+,-./0_NSObjectsValues_NSAccessibilityConnectors_NSClassesValuesZNSOidsKeys[NSNamesKeys]NSClassesKeys_NSAccessibilityOidsValues\NSOidsValues_NSVisibleWindowsV$class]NSConnections]NSNamesValues]NSObjectsKeys_NSAccessibilityOidsKeys[NSFramework]NSFontManagerYNSNextOidVNSRootzÀÁ{¿ Â!|yØÒ234[NSClassName_EmacsPrefsControllerÒ789:X$classesZ$classname¢:;^NSCustomObjectXNSObject_IBCocoaFrameworkÒ>?@ZNS.objects Ò78BC£CD;\NSMutableSetUNSSetÒ>F[¯GHIJKLMNOPQRSTUVWXYZ *179;EMT[]_amoqsuwmÔ]^_`abc]NSDestinationWNSLabelXNSSource |
---|
1100 | +×efghijkkmnopq_NSNextResponder[NSSuperviewWNSFrameYNSEnabledXNSvFlagsVNSCell |
---|
1101 | Ôsegt.vwZNSSubviewsggl_{{168, 395}, {265, 18}}Ýz{|}~
c_NSKeyEquivalent_NSAlternateImageYNSSupportZNSContents]NSControlView^NSButtonFlags2_NSPeriodicInterval]NSButtonFlags_NSPeriodicDelay[NSCellFlags_NSAlternateContents\NSCellFlags2 |
---|
1102 | +H<QÿÈÿÿÿÿþ\Smooth fontsÔVNSSizeVNSNameXNSfFlags"AP\LucidaGrandeÒ78¢;VNSFontÒ¡¢£[NSImageNameXNSSwitchÒ78¦§¢§;_NSButtonImageSourcePÒ78ª«¥«¬j;\NSButtonCell]%NSButtonCell\NSActionCellÒ78¯°¥°±²³;XNSButtonYNSControlVNSView[NSResponder×efghijkk·nopº _{{168, 373}, {265, 18}}Ýz{|}~
À`Ãþ_!Use Quickdraw (lighter) smoothing[nextKeyViewÒ78ÈÉ£ÉÊ;_NSNibOutletConnector^NSNibConnectorÔ]^_ÌÍbÏ$)×efghijkkÓnopÖ !_{{286, 12}, {80, 32}}Ýz{|}~
ÙÜÏÞßÃâ#"ÿÿÿÿ@ÿVCancelQ×efghijkkènopë% &_{{366, 12}, {80, 32}}Ýz{|}~
îñÌÞßÃâ('$ROKQ |
---|
1103 | Ô]^_Ïùbû0+×efghijkkÿnop, -_{{20, 17}, {21, 23}}Ýz{|}~
û |
---|
1104 | ßÃâ.+!Ò¨YNS.string/Ò78£;_NSMutableStringXNSStringÔ]^_b026×efghijkknop3 4_{{236, 237}, {198, 18}}Ýz{|}~
%52_Use System Highlight Color_useSysHiliteCheckÔ]^_`-b08_useQuickdrawCheckÔ]^_c3b0 |
---|
1105 | -:_smoothFontsCheckÔ]^_89b0<DØefghi=jkk@noBCDUNSTag= C>_{{74, 232}, {135, 17}}ßGH|}~IJKLM=N
OPQ8SnUVWOCÃXY_NSTickMarkPosition]NSAltIncValue_NSNumberOfTickMarks_NSAllowsTickMarkValuesOnlyZNSMaxValueWNSValueZNSMinValueZNSVertical#@?< #@#?àBÒ¨/Ô]^`"A@AYHelveticaÒ78cd¤dj;\NSSliderCellÒ78fg¥g±²³;XNSSlider_cursorBlinkSliderÔ]^_0klmKLF×efghijkkqnoptG H_{{32, 390}, {130, 32}}Ýz{|}~
wzmÞßÃâJIF_Default Font...Ò¨/_setDefaultFont:Ò78£Ê;_NSNibControlConnectorÔ]^_0lSLN×efghijkknopO P_{{50, 358}, {94, 32}}Ýz{|}~
ÞßÃâRQNYColors...Ò¨/ZsetColors:Ô]^_0 l¢ZLU×efghijkk¦nop©V W_{{88, 12}, {148, 32}}Ýz{|}~
¬¯¢ÞßÃâYXU_Reset to DefaultsÒ¨/_resetToDefaults:Ô]^_0¹lÏ\LWcancel:Ô]^_0¿lÌ^L$Sok:Ô]^_0Ålû`L+XrunHelp:Ô]^_ÊËb0blÜÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàkâãä_NSWindowStyleMask_NSWindowBackingYNSMinSize]NSWindowTitle]NSWindowClass\NSWindowRect\NSScreenRectYNSMaxSize\NSWindowViewYNSWTFlags[NSViewClassidechjÿÿÿÿðxkf_{{194, 370}, {452, 474}}_Emacs PreferencesXNSWindowÒéTView/Ò>ì[¯#í`cûÏÌôõ¢÷8ùúûüýþÿm |
---|
1106 | +:_smoothFontsCheckÔ]^_89b0<DØefghi=jkk@noBCDUNSTag= C>_{{74, 232}, {135, 17}}ßGH|}~IJKLM=N
OPQ8SnUVWOCÃXY_NSTickMarkPosition]NSAltIncValue_NSNumberOfTickMarks_NSAllowsTickMarkValuesOnlyZNSMaxValueWNSValueZNSMinValueZNSVertical#@?< #@#?àBÒ¨/Ô]^`"A@AYHelveticaÒ78cd¤dj;\NSSliderCellÒ78fg¥g±²³;XNSSlider_cursorBlinkSliderÔ]^_0klmKLF×efghijkkqnoptG H_{{32, 413}, {130, 32}}Ýz{|}~
wzmÞßÃâJIF_Default Font...Ò¨/_setDefaultFont:Ò78£Ê;_NSNibControlConnectorÔ]^_0lSLN×efghijkknopO P_{{50, 381}, {94, 32}}Ýz{|}~
ÞßÃâRQNYColors...Ò¨/ZsetColors:Ô]^_0 l¢ZLU×efghijkk¦nop©V W_{{88, 12}, {148, 32}}Ýz{|}~
¬¯¢ÞßÃâYXU_Reset to DefaultsÒ¨/_resetToDefaults:Ô]^_0¹lÏ\LWcancel:Ô]^_0¿lÌ^L$Sok:Ô]^_0Ålû`L+XrunHelp:Ô]^_ÊËb0blÜÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàkâãä_NSWindowStyleMask_NSWindowBackingYNSMinSize]NSWindowTitle]NSWindowClass\NSWindowRect\NSScreenRectYNSMaxSize\NSWindowViewYNSWTFlags[NSViewClassidechjÿÿÿÿðxkf_{{194, 347}, {452, 497}}_Emacs PreferencesXNSWindowÒéTView/Ò>ì[¯#í`cûÏÌôõ¢÷8ùúûüýþÿm |
---|
1107 | |
---|
1108 | h |
---|
1109 | -+2$zU<¡¥©³·FN»Åäè#'=AE^mÛsefgkkÚX\NSBorderType_NSTitlePosition[NSTitleCellYNSOffsets]NSTransparentYNSBoxTypeipnoyÒ>![¡"jmÔefgíí'whhkl_{{2, 2}, {125, 1}}Ò78+²£²³;Ò78-.£./;^NSMutableArrayWNSArray_{{20, 337}, {420, 5}}V{0, 0}×34|}
5689Ã_NSBackgroundColor[NSTextColorrwqxSBoxÕ<=>?@ABCDWNSColor[NSColorName\NSColorSpace]NSCatalogNameutsvVSystem_textBackgroundColorÓH>IÚDWNSWhiteB1vÒ78L<¢<;ÓH>NÚDM0 0.80000001vÒ78QR¤Rj;_NSTextFieldCellÒ78TU¤U²³;UNSBox×efghijkkYno[\{ |_{{17, 309}, {129, 17}}Ø34|}~
_`abô9Ãe~}zx@XDisplay:Ôhj_LucidaGrande-BoldÕ<=>?mnBCDsv\controlColorÓH>sÚDK0.66666669vÕ<=>?vwBCD
sv_controlTextColorÓH>|ÚDB0vÒ78¦±²³;[NSTextField\%NSTextField×efghijkk
no[ _{{17, 445}, {129, 17}}Ø34|}~
_`aõ9Ãe~x_Text Rendering:ÛsefgkkÚXyÒ>[¡mÔefg÷÷¢wl_{{20, 191}, {420, 5}}×34|}
5§©9ÃrxÓH>NÚDv×efghijkk°no[³ _{{69, 211}, {28, 13}}Ø34|}~
_`¸¹ù9ÃexSOffÔ¾Á"A ×efghijkkÅno[È _{{126, 211}, {32, 13}}Ø34|}~
_`¸Îú9ÃexU1 sec×efghijkkÕno[Ø _{{187, 211}, {32, 13}}Ø34|}~
_`¸Þû9Ãe xU2 sec×efghijkkåno[è¢ £_{{86, 256}, {114, 17}}Ø34|}~
_`îü9Ãe¤¡x_Cursor Blink Rate×efghijkkõno[ø¦ §_{{267, 445}, {147, 17}}Ø34|}~
_`þý9Ãe¨¥x_Expand Line Spacing×efghijkkno[ª «_{{260, 402}, {32, 13}}Ø34|}~
_`¸þ9Ãe¬©xT-1.0Øefghi=jkknoBÞ® C¯_{{267, 421}, {135, 17}}ßGH|}~IJKLM=N
OÿX OW"ÞÃXY±°#?ðB#¿ðÒ¨/Ô]'`²Ò*_Helvetica-Oblique/×efghijkk/no[2´ µ_{{325, 402}, {32, 13}}Ø34|}~
_`¸89Ãe¶³xS0.0×efghijkk?no[B¸ ¹_{{386, 402}, {29, 13}}Ø34|}~
_`¸H9Ãeº·xS1.0ÜsefgMNkkQRSXUÞ]NSContentView¼Á¿À½yÒ>X[¡U½mÔefg^w»»¾l_{{3, 3}, {319, 30}}_{{97, 282}, {325, 48}}×34|}
5def9ÃrÄÃÂx[Cursor TypeÔjm"A0ÓH>NÚDvßgqrs=tuehvfwxyz3i{|Þ}C~knk@_o[NSCellClassYNSNumRowsZNSCellSizeYNSNumColsWNSCells[NSProtoCell^NSSelectedCell_NSCellBackgroundColor]NSMatrixFlags_NSIntercellSpacingÆàÞÇ áÈãuD¨ß_{{122, 292}, {276, 18}}Ò>[¤ÈÍÚÜmÞz{|}~=
ÞÌÊÉÅÒ¡£Ë]NSRadioButtonÒ¨/ßz{¡|}~=
£¥§©Ã]NSNormalImageÊÏÎÅKSBarÕ<®¯°±²³´VNSReps\NSImageFlagsÐØÙÑ ÀX{18, 18}Ò>·[¡¸ÒmÒ>»¾¢¼½ÓÔ×ÒÀÁÂ_NSTIFFRepresentationÕÖOÊMM*<'''É+++ð555ð###É <uPPPਨ¨ÿÛÛÛÿùùùÿúúúÿÚÚÚÿªªªÿTTTàuyuuu÷ÃÃÃÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÔÿ|||÷%%%yFjjjæµµµÿíííÿþþþÿþþþÿþþþÿýýýÿýýýÿýýýÿ÷÷÷ÿÄÄÄÿwwwæF |
---|
1110 | ++2$zU<¡¥©³·FN»Åäè#'=AE^mÛsefgkkÚX\NSBorderType_NSTitlePosition[NSTitleCellYNSOffsets]NSTransparentYNSBoxTypeipnoyÒ>![¡"jmÔefgíí'whhkl_{{2, 2}, {125, 1}}Ò78+²£²³;Ò78-.£./;^NSMutableArrayWNSArray_{{20, 360}, {420, 5}}V{0, 0}×34|}
5689Ã_NSBackgroundColor[NSTextColorrwqxSBoxÕ<=>?@ABCDWNSColor[NSColorName\NSColorSpace]NSCatalogNameutsvVSystem_textBackgroundColorÓH>IÚDWNSWhiteB1vÒ78L<¢<;ÓH>NÚDM0 0.80000001vÒ78QR¤Rj;_NSTextFieldCellÒ78TU¤U²³;UNSBox×efghijkkYno[\{ |_{{17, 332}, {129, 17}}Ø34|}~
_`abô9Ãe~}zx@XDisplay:Ôhj_LucidaGrande-BoldÕ<=>?mnBCDsv\controlColorÓH>sÚDK0.66666669vÕ<=>?vwBCD
sv_controlTextColorÓH>|ÚDB0vÒ78¦±²³;[NSTextField\%NSTextField×efghijkk
no[ _{{17, 468}, {129, 17}}Ø34|}~
_`aõ9Ãe~x_Text Rendering:ÛsefgkkÚXyÒ>[¡mÔefg÷÷¢wl_{{20, 191}, {420, 5}}×34|}
5§©9ÃrxÓH>NÚDv×efghijkk°no[³ _{{69, 211}, {28, 13}}Ø34|}~
_`¸¹ù9ÃexSOffÔ¾Á"A ×efghijkkÅno[È _{{126, 211}, {32, 13}}Ø34|}~
_`¸Îú9ÃexU1 sec×efghijkkÕno[Ø _{{187, 211}, {32, 13}}Ø34|}~
_`¸Þû9Ãe xU2 sec×efghijkkåno[è¢ £_{{86, 256}, {114, 17}}Ø34|}~
_`îü9Ãe¤¡x_Cursor Blink Rate×efghijkkõno[ø¦ §_{{267, 468}, {147, 17}}Ø34|}~
_`þý9Ãe¨¥x_Expand Line Spacing×efghijkkno[ª «_{{260, 425}, {32, 13}}Ø34|}~
_`¸þ9Ãe¬©xT-1.0Øefghi=jkknoBÞ® C¯_{{267, 444}, {135, 17}}ßGH|}~IJKLM=N
OÿX OW"ÞÃXY±°#?ðB#¿ðÒ¨/Ô]'`²Ò*_Helvetica-Oblique/×efghijkk/no[2´ µ_{{325, 425}, {32, 13}}Ø34|}~
_`¸89Ãe¶³xS0.0×efghijkk?no[B¸ ¹_{{386, 425}, {29, 13}}Ø34|}~
_`¸H9Ãeº·xS1.0ÜsefgMNkkQRSXUÞ]NSContentView¼Á¿À½yÒ>X[¡U½mÔefg^w»»¾l_{{3, 3}, {375, 30}}_{{53, 279}, {381, 48}}×34|}
5def9ÃrÄÃÂx[Cursor TypeÔjm"A0ÓH>NÚDvßgqrs=tuehvfwxyz3i{|Þ}C~knk@_o[NSCellClassYNSNumRowsZNSCellSizeYNSNumColsWNSCells[NSProtoCell^NSSelectedCell_NSCellBackgroundColor]NSMatrixFlags_NSIntercellSpacingÆàÞÇ áÈãuD¨ß_{{66, 289}, {388, 18}}Ò>[¤ÈÍÚÜmÞz{|}~=
ÞÌÊÉÅZFilled BoxÒ¡£Ë]NSRadioButtonÒ¨/ßz{¢|}~=
¤¦¨ªÃ]NSNormalImageÊÏÎÅK\Vertical BarÕ<¯°±²³´µVNSReps\NSImageFlagsÐØÙÑ ÀX{18, 18}Ò>¸[¡¹ÒmÒ>¼¿¢½¾ÓÔ×ÒÁÂÃ_NSTIFFRepresentationÕÖOÊMM*<'''É+++ð555ð###É <uPPPਨ¨ÿÛÛÛÿùùùÿúúúÿÚÚÚÿªªªÿTTTàuyuuu÷ÃÃÃÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÔÿ|||÷%%%yFjjjæµµµÿíííÿþþþÿþþþÿþþþÿýýýÿýýýÿýýýÿ÷÷÷ÿÄÄÄÿwwwæF |
---|
1111 | BBB¡ÿÆÆÆÿëëëÿòòòÿõõõÿõõõÿóóóÿõõõÿòòòÿîîîÿÒÒÒÿ¯¯¯ÿJJJ¡ |
---|
1112 | xxxÝ¿¿¿ÿÏÏÏÿÝÝÝÿêêêÿïïïÿïïïÿðððÿíííÿíííÿâââÿÎÎÎÿÅÅÅÿ|||Ý$¤¤¤øÎÎÎÿÙÙÙÿàààÿâââÿåååÿæææÿçççÿåååÿâââÿÞÞÞÿÚÚÚÿÐÐÐÿ¬¬¬ø$.°°°úÖÖÖÿÞÞÞÿäääÿéééÿëëëÿìììÿéééÿëëëÿçççÿäääÿàààÿÙÙÙÿ³³³ú..ìàààÿåååÿêêêÿîîîÿðððÿðððÿñññÿðððÿîîîÿêêêÿæææÿáááÿì.$nnnÏåååÿéééÿïïïÿòòòÿöööÿúúúÿùùùÿ÷÷÷ÿöööÿñññÿëëëÿäääÿkkkÏ$...ÂÂÂúìììÿóóóÿùùùÿþþþÿþþþÿþþþÿþþþÿûûûÿõõõÿðððÿÂÂÂú,,, |
---|
1113 | C___Òäääþùùùÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿæææþ___ÒC |
---|
1114 | ebbbÜÒÒÒýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕýdddÜee333Âð¿¿¿üíííÿíííÿ¿¿¿üð333ÂeCw³³wC |
---|
1115 | $..$ |
---|
1116 | - |
---|
1117 | ºRSÂÒ78ÅÆ£ÆÇ;_NSBitmapImageRepZNSImageRepÒ78É/¢/;ÓH>ËÚDD0 0vÒ78ÎÏ£ÏÐ;WNSImageX%NSImageßz{¡|}~=
£¥Ö©ÚÃÊÏÛÅTLineßz{¡|}~=
£¥à©CÃÊÏÝÅVHollowX{66, 18}V{4, 2}Û{|}z
ê©ë£ÃÊâH8QÿURadioÒ78ðñ¦ñò±²³;XNSMatrixY%NSMatrix×efghijkköno[ùå æ_{{17, 164}, {107, 17}}Ø34|}~
_`aÿ9Ãe~çäxZModifiers:×efghijkkno é ê_{{103, 133}, {130, 26}}ß{ |
---|
1118 |
~z|ÞÚ£nn©ÞVNSMenuZNSMenuItem_NSSelectedIndex_NSPreferredEdge]NSAltersState_NSUsesItemFromMenu_NSArrowPositionëÿÿÿÿAþ@@ÿîí |
---|
1119 | - èì Ô`Ò¨/Ü&'()*+,-=.01Þ23 67â8]NSMnemonicLoc_NSKeyEquivModMaskWNSStateWNSTitleYNSOnImageZNSKeyEquivXNSTarget\NSMixedImageXNSActionîÿÿÿïðêô÷öÓ):;<=[NSMenuItemsø ùTMetaÓ@2ABC^NSResourceNameòóñ_NSMenuCheckmarkÒ78FG£GH;_NSCustomResource_%NSCustomResourceÓ@2JBCõóñ_NSMenuMixedState__popUpItemAction:Ò78P |
---|
1120 | ¢ |
---|
1121 | ;ÒRZOtherViews/Ò>U[¦VWYZ[úýímÚ&')*+,-.01_3 67eîûðêô÷üTNoneÛ&')*+,-=.01i3 67opîþðêô÷ÿWControlÛ&')*+,-=.01t3 67z{îðêô÷WCommandÛ&')*+,-=.013 67
îðêô÷UHyperÛ&')*+,-=.013 67eîðêô÷SAltÒ78¢;Ò78§«¬j;_NSPopUpButtonCell^NSMenuItemCellÒ78¦°±²³;]NSPopUpButton×efghijkkno[¡ |
---|
1122 | _{{128, 165}, {94, 17}}Ø34|}~
_`§9êx@[Alt/Opt Key×efghijkk¯no² _{{269, 133}, {130, 26}}ß{ |
---|
1123 |
~z|Þ¶·ÞÚ£n ¼n©Þë |
---|
1124 | - Ò¨/Ü&'()*+,-=.¶01ÞÃ3²67zÉðô÷Ó):Ë<Í ÒR/Ò>Ñ[¤Ò·ÔÕ mÛ&')*+,-=.¶01Ù3²67âßðô÷Û&')*+,-=.¶01â3²67
èðô÷Û&')*+,-=.¶01ë3²67eñ!ðô÷"×efghijkkõno[ø$ %_{{284, 165}, {110, 17}}Ø34|}~
_`þ |
---|
1125 | -9ê&#x[Command Key×efghijkkno( )_{{103, 73}, {130, 26}}ß{ |
---|
1126 |
~z|Þ |
---|
1127 | Ú£nn©Þë,+ |
---|
1128 | - '* Ò¨/Ü&'()*+,-=.01Þ367o,-ð)ô÷.Ó):!<#/ 0ÒR/Ò>'[¥ |
---|
1129 | )*+,+147:mÛ&')*+,-=.010367â6,2ð)ô÷3Û&')*+,-=.019367z?,5ð)ô÷6Û&')*+,-=.01B367
H,8ð)ô÷9Û&')*+,-=.01K367eQ,;ð)ô÷<×efghijkkUno[X> ?_{{128, 105}, {94, 17}}Ø34|}~
_`^9ê@=x[Control Key×efghijkkeno[hB C_{{264, 105}, {151, 17}}Ø34|}~
_`n |
---|
1130 | 9êDAx_Function Key (laptops)×efghijkkunoxF G_{{269, 73}, {130, 26}}ß{ |
---|
1131 |
~z|Þ|}Ú£nn©ÞëJI |
---|
1132 | - EH Ò¨/Û&'()*+,-.|01Þ3x67JKðGô÷LÓ):<M NÒR/Ò>[¦}IORUX[mÛ&')*+,-=.|01¡3x67o§JPðGô÷QÛ&')*+,-=.|01ª3x67â°JSðGô÷TÛ&')*+,-=.|01³3x67z¹JVðGô÷WÛ&')*+,-=.|01¼3x67
ÂJYðGô÷ZÛ&')*+,-=.|01Å3x67eËJ\ðGô÷]ÛsefgÍkkÚÐÑÒX_dbcyÒ>Ö[¡×`mÔefgÜw^^al_{{20, 59}, {420, 5}}×34|}
5áã9ÃrfexÓH>NÚDv_{{1, 9}, {452, 474}}_{{0, 0}, {1440, 878}}Z{213, 129}_{3.40282e+38, 3.40282e+38}Ò78ìí¢í;_NSWindowTemplate[prefsWindowÔ]^_ñb0Ån_cursorTypeMatrixÔ]^_ÿ÷b0p_expandSpaceSliderÔ]^_ýb0èr_alternateModMenuÔ]^_ b0t^commandModMenuÔ]^_ b0Ev_functionModMenuÔ]^_b0'x^controlModMenuÒ>¾¯Fü÷)Ô|û |
---|
1133 | "ùý¶¢Ê·8Zk[*ÕWÿmõ+}ûÌ`U |
---|
1134 | YúÏcÒVôí |
---|
1135 | -, þס'Èè21JAU,j¥U³b<^4 OýFÅÜ7EXI+$íîä½+N=Í· |
---|
1136 | -ÚúRzh#:[»©`×Ò>]¾¯Fkk÷kkk¶kk|íkkk kk0¶kÊk¶|kkkkk||kkkkkkkkkk¶|kkk|kkkÅ,EJ'hîbî,JîÅ,JJîè»,îÅÅîJ,J^×Ò>¦¾¯Bü0÷)Ô|û |
---|
1137 | "ùý¶¢Ê8·Z[*ÕWÿmõ+}ûÌ`U |
---|
1138 | YúÏcÒVôí |
---|
1139 | -, þס'è21JAU,j¥U³b<^4 OýFÅ7EXI+$íîä½+N=· |
---|
1140 | -úRzh#:[»©`×Ò>뾯Bìíîïðñòóôõö÷øùúûüýþÿ |
---|
1141 | - |
---|
1142 | !"#$%&'()*+,-}~
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾×\NSTextField2\File's OwnerWNSView1ZNSBox11111^NSPopUpButton2[NSButton421\NSMenuItem21YPopUpList_NSTextField1111111111_NSTextField2121[NSMenuItem3_NSTextField11111111]NSTextField21]NSTextField23_NSTextField1111111114VWindow[NSSlider211[NSBox111111[NSMenuItem2]NSMenuItem211[NSMenuItem4\NSSlider2113YNSButton1ZNSMatrix11]NSTextField25_NSPopUpButton11ZNSButton51YNSButton2[NSButton411^NSTextField221[NSMenuItem1YNSButton3^NSMenuItem2111_NSTextField111111111ZNSButton11^NSTextField213_NSTextField11111111113ZNSButton44^NSTextField211WNSBox12^NSTextField212WNSBox11^NSPopUpButton1_NSTextField111111114Ò>\¾ ×Ò>_¾ ×Ò>b¾¯[c×Mý8"Ô|Ym`}kÌ¢Hí÷IÊõ*XW |
---|
1143 | üù,KNVþR |
---|
1144 | O[W)GS+Z0¶YP |
---|
1145 | -JUÕúÏTûVQÿUô ·LÒZû |
---|
1146 | -·`;¥<jNJè[³2FI$Uh,*Xb4sqAÍU¡:^=7EEîo©]+Mäý1 '_7ÜRuT#Ú1½ aí+È»ú[mzOÅ9w×Ò>À¾¯[ÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ |
---|
1147 | - |
---|
1148 | ÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ |
---|
1149 | - |
---|
1150 | ×#×}n:ºË°Ï)Ò"Î1mf4ÃjÍ·8ÁÀТÑroÆÖÉʱ¯~Å0´¶Ç-^ÂÄ¡µÌ¹Ô¿¤§¼p.³(£¨²«2Ó¥¸¾½ÕqÒ>t[ mÒ>w¾ ×Ò>z¾ ×Ò78}~¢~;^NSIBObjectData#,1:LQVdf®´ÿ-?JVd §µÃÑë÷"%(+.0358;>@BDFO[]_v§°ÃÌ×ØÚãê÷ý13579;=?ACEGIKMPSVY\_ar¶ÈÔÜæïöøúüý "$')Cx§²ÀÏäò & 3 5 7 9 ; = ? A F H J S U W d u | ¥ ® ³ º Ã Ï Ñ Ó Ü å ê |
---|
1151 | + |
---|
1152 | ºRSÂÒ78ÆÇ£ÇÈ;_NSBitmapImageRepZNSImageRepÒ78Ê/¢/;ÓH>ÌÚDD0 0vÒ78ÏУÐÑ;WNSImageX%NSImageßz{¢|}~=
¤¦×ªÚÃÊÏÛÅZUnderscoreßz{¢|}~=
¤¦áªCÃÊÏÝÅVHollowX{94, 18}V{4, 2}Û{|}z
ëªì¤ÃÊâH8QÿURadioÒ78ñò¦òó±²³;XNSMatrixY%NSMatrix×efghijkk÷no[úå æ_{{17, 164}, {107, 17}}Ø34|}~
_`a9Ãe~çäxZModifiers:×efghijkkno |
---|
1153 | +é ê_{{103, 133}, {130, 26}}ß{ |
---|
1154 |
~z|ÞÚ¤nnªÞVNSMenuZNSMenuItem_NSSelectedIndex_NSPreferredEdge]NSAltersState_NSUsesItemFromMenu_NSArrowPositionëÿÿÿÿAþ@@ÿîí |
---|
1155 | + èì Ô`Ò¨/Ü |
---|
1156 | '()*+,-.=/12Þ34 |
---|
1157 | +78â9]NSMnemonicLoc_NSKeyEquivModMaskWNSStateWNSTitleYNSOnImageZNSKeyEquivXNSTarget\NSMixedImageXNSActionîÿÿÿïðêô÷öÓ*;<=>[NSMenuItemsø ùTMetaÓA2BCD^NSResourceNameòóñ_NSMenuCheckmarkÒ78GH£HI;_NSCustomResource_%NSCustomResourceÓA2KCDõóñ_NSMenuMixedState__popUpItemAction:Ò78Q¢;ÒSZOtherViews/Ò>V[¦WXZ[\úýímÚ |
---|
1158 | '(*+,-./12`4 |
---|
1159 | +78fîûðêô÷üTNoneÛ |
---|
1160 | '(*+,-.=/12j4 |
---|
1161 | +78pqîþðêô÷ÿWControlÛ |
---|
1162 | '(*+,-.=/12u4 |
---|
1163 | +78{|îðêô÷WCommandÛ |
---|
1164 | '(*+,-.=/124 |
---|
1165 | +78îðêô÷UHyperÛ |
---|
1166 | '(*+,-.=/124 |
---|
1167 | +78eîðêô÷SAltÒ78 |
---|
1168 | ¢ |
---|
1169 | ;Ò78§«¬j;_NSPopUpButtonCell^NSMenuItemCellÒ78¦°±²³;]NSPopUpButton×efghijkkno[¢ |
---|
1170 | _{{128, 165}, {94, 17}}Ø34|}~
_`¨9ëx@[Alt/Opt Key×efghijkk°no ³ _{{269, 133}, {130, 26}}ß{ |
---|
1171 |
~z|Þ·¸ÞÚ¤n ½nªÞë |
---|
1172 | + Ò¨/Ü |
---|
1173 | '()*+,-.=/·12ÞÄ4³78{Êðô÷Ó*;Ì=Î ÒS/Ò>Ò[¤Ó¸ÕÖ mÛ |
---|
1174 | '(*+,-.=/·12Ú4³78âàðô÷Û |
---|
1175 | '(*+,-.=/·12ã4³78éðô÷Û |
---|
1176 | '(*+,-.=/·12ì4³78eò!ðô÷"×efghijkköno[ù$ %_{{284, 165}, {110, 17}}Ø34|}~
_`ÿ |
---|
1177 | +9ë&#x[Command Key×efghijkkno ( )_{{103, 73}, {130, 26}}ß{ |
---|
1178 |
~z|Þ |
---|
1179 | Ú¤nnªÞë,+ |
---|
1180 | + '* Ò¨/Ü |
---|
1181 | '()*+,-.=/ |
---|
1182 | 12Þ4 78p ,-ð)ô÷.Ó*;"=$/ 0ÒS/Ò>([¥*+,-+147:mÛ |
---|
1183 | '(*+,-.=/ |
---|
1184 | 1214 78â7,2ð)ô÷3Û |
---|
1185 | '(*+,-.=/ |
---|
1186 | 12:4 78{@,5ð)ô÷6Û |
---|
1187 | '(*+,-.=/ |
---|
1188 | 12C4 78I,8ð)ô÷9Û |
---|
1189 | '(*+,-.=/ |
---|
1190 | 12L4 78eR,;ð)ô÷<×efghijkkVno[Y> ?_{{128, 105}, {94, 17}}Ø34|}~
_`_9ë@=x[Control Key×efghijkkfno[iB C_{{264, 105}, {151, 17}}Ø34|}~
_`o |
---|
1191 | 9ëDAx_Function Key (laptops)×efghijkkvno yF G_{{269, 73}, {130, 26}}ß{ |
---|
1192 |
~z|Þ}~Ú¤nnªÞëJI |
---|
1193 | + EH Ò¨/Û |
---|
1194 | '()*+,-./}12Þ4y78JKðGô÷LÓ*;=M NÒS/Ò>[¦~IORUX[mÛ |
---|
1195 | '(*+,-.=/}12¢4y78p¨JPðGô÷QÛ |
---|
1196 | '(*+,-.=/}12«4y78â±JSðGô÷TÛ |
---|
1197 | '(*+,-.=/}12´4y78{ºJVðGô÷WÛ |
---|
1198 | '(*+,-.=/}12½4y78ÃJYðGô÷ZÛ |
---|
1199 | '(*+,-.=/}12Æ4y78eÌJ\ðGô÷]ÛsefgÎkkÚÑÒÓX_dbcyÒ>×[¡Ø`mÔefgÝw^^al_{{20, 59}, {420, 5}}×34|}
5âä9ÃrfexÓH>NÚDv_{{1, 9}, {452, 497}}_{{0, 0}, {1440, 878}}Z{213, 129}_{3.40282e+38, 3.40282e+38}Ò78íî¢î;_NSWindowTemplate[prefsWindowÔ]^_òb0Ån_cursorTypeMatrixÔ]^_ÿøb0p_expandSpaceSliderÔ]^_þb0èr_alternateModMenuÔ]^_ b0t^commandModMenuÔ]^_ |
---|
1200 | +b0Ev_functionModMenuÔ]^_b0'x^controlModMenuÒ>¿¯FÿUÏ,Ì~Wõ 8[Õô*c |
---|
1201 | · |
---|
1202 | +-¸"`Xù÷Öúû+}ü¢û\ |
---|
1203 | ÊmýíZþÓkؽ7EX$ÈINú<^zä1» |
---|
1204 | +AèR#Ú:[jý'î 4Jí³U¡U+·,bF2¥hÜ+=Å©Í`O×Ò>^¿¯Fkk |
---|
1205 | k}k}kk÷kk·kkk |
---|
1206 | kkkk }kk |
---|
1207 | }·íkkkk·kk |
---|
1208 | k}kkkk0kkkk |
---|
1209 | kkk·Ê}»,JÅJîî,JÅ,Jhîè,EîJî'Å,îbÅ^J×Ò>§¿¯BÿÏ,Ì~Wõ 8[Õô*c |
---|
1210 | · |
---|
1211 | +-¸"`Xù÷Öúû+}ü¢û\0 |
---|
1212 | ÊmýíZþÓØUO7EX$INú<^zä1» |
---|
1213 | +AèR#:[jý'î 4Jí³U¡U+·,bF2¥h+=Å©`½×Ò>쿯Bíîïðñòóôõö÷øùúûüýþÿ |
---|
1214 | + |
---|
1215 | !"#$%&'()*+,-.}~
¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾×[NSMenuItem4\NSSlider2113ZNSButton11\NSMenuItem21_NSPopUpButton11YNSButton2YNSButton3[NSMenuItem1]NSTextField25WNSView1^NSPopUpButton1[NSSlider211[NSBox111111^NSTextField211^NSTextField221WNSBox11ZNSButton44_NSTextField2121YPopUpList]NSTextField21^NSTextField212[NSMenuItem2[NSButton411]NSMenuItem211_NSTextField11111111^NSPopUpButton2ZNSBox11111_NSTextField111111111_NSTextField1111111111_NSTextField1111111114[NSMenuItem3\NSTextField2ZNSButton51\File's Owner_NSTextField11111111113VWindowYNSButton1[NSButton421]NSTextField23WNSBox12^NSTextField213ZNSMatrix11^NSMenuItem2111_NSTextField111111114Ò>]¿ ×Ò>`¿ ×Ò>c¿¯[R*ÓmôP Z}ÿýK~0Yû |
---|
1216 | ÌLUØ"WSõ-\X[ùcÖ8J,Zûü |
---|
1217 | Ê+XV |
---|
1218 | +TÕHíþ¢÷·GMkÏUNWIQ`ú¸O]1^FzTÈ2ÍwJ[¥7I³uA$9½X`jq_:UsE= |
---|
1219 | + <17Ü·î+¡,b4ýo#aRÚh©Uí ;NmÅO+èäE»ú*['M×Ò>Á¿¯[ÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ |
---|
1220 | + |
---|
1221 | ÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ |
---|
1222 | + |
---|
1223 | ×ÇÖ½2¸£)¢ÕËÏ}-ÎÔq·Ð1§Í×:À8Æ´ÑÁµÊÉo#¼nÄÒ¡±(rö¯¿Ìºf¤~m4³¹^.«¥ÓÅ°0¨²j"p¾Ò>u[ mÒ>x¿ ×Ò>{¿ ×Ò78~¢;^NSIBObjectData#,1:LQVdf®´ÿ-?JVd §µÃÑë÷"%(+.0358;>@BDFO[]_v§°ÃÌ×ØÚãê÷ý13579;=?ACEGIKMPSVY\_ar¶ÈÔÜæïöøúüý "$')Cx§²ÀÏäò & 3 5 7 9 ; = ? A F H J S U W d u | ¥ ® ³ º Ã Ï Ñ Ó Ü å ê |
---|
1224 | |
---|
1225 | |
---|
1226 | |
---|
1227 | @@ -62,10 +69,10 @@ |
---|
1228 | ÿ%1:AXgxz|~¡£¤¦¨Àõ÷ùûýÿ |
---|
1229 | 9;=?@BD\¢¤µ·¹»½ÚÜÞàáãåü |
---|
1230 | 1 |
---|
1231 | 3 |
---|
1232 | 5 |
---|
1233 | 7 |
---|
1234 | 9 |
---|
1235 | ; |
---|
1236 | = |
---|
1237 | ? |
---|
1238 | A |
---|
1239 | J |
---|
1240 | T |
---|
1241 | V |
---|
1242 | _ |
---|
1243 | f |
---|
1244 | x |
---|
1245 | |
---|
1246 | |
---|
1247 | |
---|
1248 | |
---|
1249 | |
---|
1250 | |
---|
1251 | · |
---|
1252 | ¹ |
---|
1253 | » |
---|
1254 | ½ |
---|
1255 | ¾ |
---|
1256 | À |
---|
1257 | Â |
---|
1258 | Ü<Pacegi}©º¼¾ÀÂãéëíïðòôöNcq¤¯·ÂÍÖØÚÜÞßèñóôù *3<IR]fz°²´¶·¹»Ô |
---|
1259 | )24FOVn
¤¦¨ª«¯Çüþ |
---|
1260 | *;=?AC`bdfgik¸º¼¾ÀÂÄÆÚãåø |
---|
1261 | *,.026GIKMOXiknpr£·ÉÓáïü *68;=?ADGIRUWr¨ñóõ÷ùûýÿ |
---|
1262 | !#%'*-0369<?An{£±»½¿ÁÃÅÇÈÊÓÖØÚëíïñó!(7?W^{¡£¥©¾ÆÒßíïñóõ÷þ!),.7<IWYbk}²´¶¸¹»½Ö÷ùûýÿ"$&)=RTVXZgt²¿ÂÄÍÚæó4UWY[]_as ¢¤¦¨ª¬¯¸»½¿ÐÒÔÖØð |
---|
1263 | $&CEGIJLNf¨¯±´ÑÓÕ×ØÚÜõ "(EGIKLNPi¹»½¿ÀÂÄÝþ |
---|
1264 | -;=?ABDF`
£ÀÂÄÆÇÉËä |
---|
1265 | 79;=>@B\¡£¤¯¸¹ÂÄÕ×Ùâöø 9Z\^`bdfj«ÌÎÐÒÔÖØÜ |
---|
1266 | !#%'(*,58:<MOQSUk¡£¥§©«·ÈÍÏÑÔáã 2 > H S ] e q ¦ » ½ ¿ Á Ã Å Æ È Ê Ì Î Ð Õ × Ù Û õ þ!! !! |
---|
1267 | !!!J!L!N!P!R!T!V!X!a!c!e!s!|!~!½!Ë!Í!Ð!Ò!Ô!Ö!Ø!Ú!Ü!Þ!à!ä!ù"" |
---|
1268 | """"""#","/"1"3"<"A"C"E"G"P"g"i"k(9(B(I(\(g(p(u((((((¡(ª(é(ë(í(ï(ñ(ó(õ(÷(ù(þ)=)?)A)C)E)G)I)K)M)T)])d))))))) )¦)¯)¼)Å)Ï)ì)î)ð)ò)ó)õ)÷**1*3*5*7*9*;*=*H*e*g*i*k*l*o*q**Ú*á*ì*þ+++3+E+G+P+U+W+Y+[+^+c+d+f+h+j+k+|+~++++¼+Ê+Þ+æ+î+ø,,,,",$,),.,0,2,4,6,8,:,<,I,U,W,Z,\,a,n,},,,,,,¥,¸,Ì,Ù,Û,Ý,ß,ò-----(-*-3-@-B-D-F-I-L-O-Q-z-|-~--------¼-¾-À-Â-Ä-Æ-È-Ê-Ï-Ñ-Ù.... |
---|
1269 | .......%.R.T.W.Y.[.]._.a.f.i.o...¡.£.¥.§.©.«.®.².».À.É.Ø.ì.û////</>/@/C/D/F/I/b//
///////¢/¿/Á/Ã/Æ/Ç/Ê/Í/ç06080;0>0@0C0D0G0J0L0M0V0X0000000000ª00°0³0¼0¾0Ç0Ð0Ó0Ö0Ù0Ü0Þ1111111111L1O1R1T1V1Y1[1]1`111111111¡1¾1À1Â1Å1Æ1È1Ë1å222 |
---|
1270 | -22222 2=2?2A2D2E2H2K2d2¯2±2´2·2¹2¼2½2À2Ã2Å2Æ2Ï2Ñ3333 |
---|
1271 | -333333#3&3)3,35373@3K3N3Q3T3W3Z3\3333333333Ê3Í3Ð3Ò3Ô3×3Ù3Û3Þ4444444444L4O4R4T4V4Y4[4]4`4}4444
444£4Ä4Æ4È4Ê4Í4Ð4Ò4Þ4û4ý4ÿ55555"5C5E5G5I5L5O5Q5j55555555®5ù5û5þ66666 |
---|
1272 | -6 |
---|
1273 | 66666H6K6N6P6R6U6W6Y6\6i6l6o6r6{6}6666666¢6¥6§6Ô6×6Ú6Ü6Þ6á6ã6å6è777777"7$7&7)7V7Y7\7^7`7c7e7g7j77777¡7¤7¦7¨7«7Ø7Û7Þ7à7â7å7ç7é7ì8888 8#8&8)8*8,85888;8=8N8Q8T8W8Y8p8888888¦8¨8¿8×8â8ÿ99 |
---|
1274 | 9 9,9=9?9B9D9F9Y9j9l9o9q9s999999¡9´9Å9È9Ë9Í9Ï9Þ9ï9ò9õ9÷9ù::::":$:&:5:>:Í:Ï:Ò:Ô:Ö:Ø:Ú:Ü:ß:â:å:ç:ê:í:ð:ò:ô:÷:ù:ü:þ;;;;; |
---|
1275 | -;;;;;;;;;!;#;%;';*;-;0;3;5;7;9;;;=;?;A;D;F;I;K;M;P;R;T;V;Y;[;];`;b;d;g;j;m;o;r;t;w;y;<<<<<<<<<"<%<(<*<,</<2<4<6<8<:<=<?<A<C<F<H<J<L<N<P<S<V<Y<[<]<_<a<c<e<h<j<m<p<r<t<v<x<z<|<~<<<
<<<<<<<<<<<<<¡<¤<§<©<«<<°<²<»=B=D=F=H=J=M=O=Q=T=W=Z=\=_=b=e=g=i=l=n=q=s=u=w=y=|===
===========¡=¤=¦=¨=ª=¬=®=°=²=µ=·=º=¼=¾=Á=Ã=Å=È=Ê=Í=Ï=Ñ=Ô=×=Ú=Ü=ß=á=ä=æ=ï>v>y>|>>>
>>>>>>>>> >£>¦>©>¬>¯>²>µ>¸>»>¾>Á>Ä>Ç>Ê>Í>Ð>Ó>Ö>Ù>Ü>ß>â>å>è>ë>î>ñ>ô>÷>ú>ý???? ????????!?$?'?*?-?0?3?6?9?<?>?K?X?`?k?z????µ?Ç?Ó?é?÷@@@$@0@<@H@V@b@o@y@@@¤@¯@¹@Å@Ô@à@ê@ùAAA*ACANA]AeAtA|AA¢A«A¬A®A·A¸AºAÃB|B~BBB
BBBBBBBBBBBB¡B£B¦B¨BªB¬B®B°B²BµB·BºB½B¿BÁBÄBÇBÊBÍBÏBÒBÔBÖBÙBÜBßBáBäBæBèBëBíBïBòBôBöBùBûBþCCCCC |
---|
1276 | -CCCCCCCCC!C#C%C(C*C,C.C0C2C4C6C8C:C<C?CACDCFCICLCNCQCTCVCXCaDDD D#D&D)D,D/D2D5D8D;D>DADDDGDJDMDPDSDVDYD\D_DbDeDhDkDnDqDtDwDzD}DDDDDDDDDDDD¡D¤D§DªDD°D³D¶D¹D¼D¿DÂDÅDÈDËDÎDÑDÔD×DÚDÝDàDãDæDéDìDïDòDõDøDûDþEEEE |
---|
1277 | -E |
---|
1278 | EEEEEEE"E%E(E+E-E/E1E3E5E7E9E;E=E?EAECEEEGEIEKEMEOEQESEUEWEYE[E]E_EaEcEeEgEiEkEmEoEqEsEuEwEyE{E}EEEE
EEEEEEEEEEEEEE¡E£E¥E§E©E«EE¯E±E³EµE·E¹E»E½E¿EÁEÃEÅEÇEÉEËEÍEÏEÑEÓEÕE×EÙEâEãEåEîEïEñEúEûEýFFF |
---|
1279 | \ No newline at end of file |
---|
1280 | +;=?ABDF`
£ÀÂÄÆÇÉËä |
---|
1281 | 79;=>@B\¡£¤¯¸¹ÂÄÕ×Ùâöø 9Z\^`bdfj«ÌÎÐÒÔÖØÜ |
---|
1282 | !#%'(*,58:<MOQSUk¡£¥§©«·ÈÍÏÑÔáã 2 > H S ] e q ¦ » ½ ¿ Á Ã Å Æ È Ê Ì Î Ð Õ × Ù Û ô ý!!! |
---|
1283 | +!!!!I!K!M!O!Q!S!U!W!b!k!m!o!}!!!Ç!Õ!×!Ú!Ü!Þ!à!â!ä!æ!è!ê!÷""" """$"&"("-"6"?"B"D"F"O"T"V"X"Z"c"z"|"~(L(U(\(o(z((((((¥(¬(´(½(ü(þ)))))) |
---|
1284 | +)))V)X)Z)\)^)`)b)d)f)m)v)})ª)¬)®)°)µ)·)¹)¿)È)Õ)Þ)è*** *****)*J*L*N*P*R*T*V*a*~****
***¤*ó*ú+++)+7+L+^+`+i+n+p+r+t+w+|+}++++++++¢+¤+Õ+ã+÷+ÿ,,,,%,2,;,=,B,G,I,K,M,O,Q,S,U,b,n,p,s,u,z,,,,,,®,·,¾,Ñ,å,ò,ô,ö,ø---(---6-A-C-L-Y-[-]-_-b-e-h-j--------¡-£-¨-Õ-×-Ù-Û-Ý-ß-á-ã-è-ê-ò..!.$.&.(.*.,...3.6.>.k.m.p.r.t.v.x.z....µ.·.º.¼.¾.À.Â.Ä.Ç.Ë.Ô.Ù.â.ñ////*/8/U/W/Y/\/]/_/b/{/// /¢/¥/¨/ª/¯/»/Ø/Ú/Ü/ß/à/ã/æ00O0Q0T0W0Y0\0]0`0c0e0f0o0q0¢0¥0¨0ª0¬0¯0±0³0¶0Ã0Æ0É0Ì0Õ0×0à0é0ì0ï0ò0õ0÷1$1'1*1,1.111315181e1h1k1m1o1r1t1v1y1¦1©1¬1®1°1³1µ1·1º1×1Ù1Û1Þ1ß1á1ä1þ22!2#2%2(2+2-292V2X2Z2]2^2a2d2}2È2Ê2Í2Ð2Ò2Õ2Ö2Ù2Ü2Þ2ß2è2ê333!3#3%3(3*3,3/3<3?3B3E3N3P3Y3d3g3j3m3p3s3u3¢3¥3¨3ª3¬3¯3±3³3¶3ã3æ3é3ë3í3ð3ò3ô3÷4$4'4*4,4.414345484e4h4k4m4o4r4t4v4y444444 4£4¼4Ý4ß4á4ã4æ4é4ë4÷5555555!5;5\5^5`5b5e5h5j55 5¢5¤5§5¨5«5®5Ç6666666 6#6&6(6)62646a6d6g6i6k6n6p6r6u66
666666¬6¯6²6µ6¸6»6¾6À6í6ð6ó6õ6÷6ú6ü6þ77.717476787;7=7?7B7o7r7u7w7y7|7~777°7³7¶7¸7º7½7¿7Á7Ä7ñ7ô7÷7ù7û7þ888828587898<8?8B8C8E8N8Q8T8V8g8j8m8p8r88¦8¨8«88°8²8¿8Á8Ø8ð8û99!9&999E9V9X9[9]9_9r99
9999 9±9³9¶9¸9º9Í9Þ9á9ä9æ9è9÷::::::$:5:8:;:=:?:N:W:æ:è:ê:ì:ï:ò:õ:÷:ù:ü:þ;;;;; ;;;;;;;;; ;";%;(;+;.;0;3;6;9;;;=;?;A;D;F;H;K;M;O;R;U;W;Y;\;^;`;b;e;g;j;l;n;p;r;t;v;y;|;~;;;;;;;;;<*<,<.<0<3<5<8<:<<<?<A<C<E<G<I<K<M<P<R<T<V<Y<[<]<_<a<d<g<i<k<m<p<s<v<x<z<|<~<<<<<<<<<<<<<<< <¢<¥<§<©<«<<¯<±<´<¶<¸<º<¼<¿<Á<Ã<Æ<É<Ë<Ô=[=^=`=b=e=h=k=m=p=r=t=v=x={=}==============¢=¥=¨=«==¯=±=³=¶=¸=º=½=¿=Á=Ä=Ç=É=Ë=Î=Ð=Ò=Ô=×=Ù=Û=Þ=à=â=ä=æ=è=ë=î=ð=ó=õ=ø=û=ý=ÿ>>>>>>>>¡>¤>§>ª>>°>³>¶>¹>¼>¿>Â>Å>È>Ë>Î>Ñ>Ô>×>Ú>Ý>à>ã>æ>é>ì>ï>ò>õ>ø>û>þ???? |
---|
1285 | +? |
---|
1286 | ???????"?%?(?+?.?1?4?7?:?=?@?C?F?I?L?O?R?U?W?c?p?{???¤?®?º?È?Ð?ß?ë?÷@@@@(@:@D@R@a@m@y@@@¬@·@Î@æ@þA |
---|
1287 | +AA"A/AHAOAYAeAsA{AAA¤A»AÄAÅAÇAÐAÑAÓAÜBBBBB B¢B¤B¦B©B«BB¯B²BµB¸BºB¼B¾BÀBÃBÅBÇBÊBÌBÏBÒBÔBÖBØBÛBÞBàBãBåBçBêBíBðBóBöBùBüBþCCCCC |
---|
1288 | +C |
---|
1289 | CCCCCCCCC!C$C'C)C,C/C1C3C5C7C9C;C=C@CBCDCFCHCJCMCOCRCUCWCYC[C]C_CaCcCeCgCjCmCoCqCzD3D6D9D<D?DBDEDHDKDNDQDTDWDZD]D`DcDfDiDlDoDrDuDxD{D~DDDDDDDDDDDD¢D¥D¨D«D®D±D´D·DºD½DÀDÃDÆDÉDÌDÏDÒDÕDØDÛDÞDáDäDçDêDíDðDóDöDùDüDÿEEEEEEEEEEE E#E&E)E,E/E2E5E8E;E>EAEDEFEHEJELENEPERETEVEXEZE\E^E`EbEdEfEhEjElEnEpErEtEvExEzE|E~EEEEEEEEEEEEEEEEE E¢E¤E¦E¨EªE¬E®E°E²E´E¶E¸EºE¼E¾EÀEÂEÄEÆEÈEÊEÌEÎEÐEÒEÔEÖEØEÚEÜEÞEàEâEäEæEèEêEìEîEðEòEûEüEþFFF |
---|
1290 | +FFFFF$F3 |
---|
1291 | \ No newline at end of file |
---|
1292 | --- emacs-23.0.0_NS-9.0rc2a/nextstep/compile 2007-09-18 17:20:43.000000000 +0300 |
---|
1293 | +++ nextstep/compile 2007-10-14 07:45:34.000000000 +0300 |
---|
1294 | @@ -22,15 +22,22 @@ |
---|
1295 | |
---|
1296 | # Set up path and config variables. |
---|
1297 | |
---|
1298 | -if [ $# -gt 0 ]; then |
---|
1299 | - if [ $# -ne 2 ] || [ $1 != "--shared-lisp" ]; then |
---|
1300 | - echo "Usage: $0 [--shared-lisp 'install_root']" |
---|
1301 | - exit |
---|
1302 | - fi |
---|
1303 | - PREFIX=${2} |
---|
1304 | -else |
---|
1305 | - PREFIX="" |
---|
1306 | -fi |
---|
1307 | +PREFIX="" |
---|
1308 | +while [ $# -gt 0 ]; do |
---|
1309 | + case "$1" in |
---|
1310 | + --shared-lisp=*) |
---|
1311 | + PREFIX=`echo "$1" | sed s/--shared-lisp=//` |
---|
1312 | + shift |
---|
1313 | + ;; |
---|
1314 | + --enable-local-lisp-path=*) |
---|
1315 | + locallisppath=`echo "$1" | sed s/--enable-local-lisp-path=//` |
---|
1316 | + shift |
---|
1317 | + ;; |
---|
1318 | + *) |
---|
1319 | + echo "Usage: $0 [--shared-lisp='install_root' --enable-local-lisp-path='some path(s)']" |
---|
1320 | + exit |
---|
1321 | + esac |
---|
1322 | +done |
---|
1323 | |
---|
1324 | DISTDIR=`pwd`/.. |
---|
1325 | |
---|
1326 | @@ -116,6 +123,15 @@ |
---|
1327 | fi |
---|
1328 | fi |
---|
1329 | |
---|
1330 | +# Pete's addition for local lisp load-path |
---|
1331 | + echo "Local lisp path is being enabled" |
---|
1332 | + (cd src; mv epaths.h epaths.h-orig; \ |
---|
1333 | + printf "s,\(#define PATH_LOADSEARCH \"\),\\\1%s:,\n" "${locallisppath}" > locallisppath.sed; \ |
---|
1334 | + cat epaths.h-orig | sed -f locallisppath.sed > epaths.h; rm locallisppath.sed) |
---|
1335 | + |
---|
1336 | +# Clean up to avoid DOC-xxx and emacs-xxx out-of-controlness |
---|
1337 | +rm -f ../etc/DOC-* ../src/emacs-* |
---|
1338 | + |
---|
1339 | # Go (installs binaries to ./build/Emacs.app, lisp to there or PREFIX) |
---|
1340 | echo "make install" |
---|
1341 | $MAKE |
---|
1342 | @@ -175,3 +191,7 @@ |
---|
1343 | # cp ispell-3.3.01/bin/ispell* ${BINDIR}/libexec |
---|
1344 | # cp -R ispell-3.3.01/lib ${BINDIR}/libexec |
---|
1345 | #fi |
---|
1346 | + |
---|
1347 | +echo "" |
---|
1348 | +echo "Build successful." |
---|
1349 | +echo "" |
---|
1350 | --- emacs-23.0.0_NS-9.0rc2a/nextstep/ChangeLog 2007-09-20 14:27:27.000000000 +0300 |
---|
1351 | +++ nextstep/ChangeLog 2007-10-14 21:01:50.000000000 +0300 |
---|
1352 | @@ -1,3 +1,60 @@ |
---|
1353 | +2007-10-14 Adrian Robert <Adrian.B.Robert@gmail.com> |
---|
1354 | + * nsmenu.m (ns_popup_menu): Set frame in call to mouse_position_hook. |
---|
1355 | + * nsterm.m (ns_mouse_position): Check for null frame. |
---|
1356 | + |
---|
1357 | +2007-10-14 Adrian Robert <Adrian.B.Robert@gmail.com> |
---|
1358 | + * nsmenu.m (EmacsToolbar-changed): Report changed on enablement state |
---|
1359 | + change. |
---|
1360 | + |
---|
1361 | +2007-10-13 Adrian Robert <Adrian.B.Robert@gmail.com> |
---|
1362 | + * image.c (xpm_load_image): Work around an apparent bug in NSImage |
---|
1363 | + alpha management (avoids blocky appearance of startup image on black bg). |
---|
1364 | + * nsimage.m (-setXBMColor:): Only set color for non-alpha-masked pixels. |
---|
1365 | + Shouldn't have to do this, but... (Fixes "fat" rendering w/colored or |
---|
1366 | + dark fringe backgrounds). |
---|
1367 | + * nsterm.m (ns_dumpglyphs_image): Fix minor glitch w/background drawing. |
---|
1368 | + (-setMiniwindowImage:): Add argument to set to optionally set nil (for |
---|
1369 | + miniaturized version of window). |
---|
1370 | + * nsfns.m (ns_implicitly_set_icon_type): Use it. |
---|
1371 | + |
---|
1372 | +2007-10-12 Adrian Robert <Adrian.B.Robert@gmail.com> |
---|
1373 | + * lisp/ns-menu-bar.el: Cut down to minimal code, eliminating most |
---|
1374 | + remaining redundancy with menu-bar.el, and move the remnant to |
---|
1375 | + ns-win.el. |
---|
1376 | + |
---|
1377 | +2007-10-10 Adrian Robert <Adrian.B.Robert@gmail.com> |
---|
1378 | + * Patch 20071010_rc2a released. |
---|
1379 | + |
---|
1380 | +2007-10-10 Peter Dyballa <dyballa@gmx.de> |
---|
1381 | + * nextstep/compile: Add --local-lisp-path=<dir> option to prepend a |
---|
1382 | + path to epaths.h to search for lisp before other directories. |
---|
1383 | + |
---|
1384 | +2007-10-10 Seiji Zenitani <zenitani@mac.com> |
---|
1385 | + * nsterm.m (ns_init_paths): Switch order from lisp, leim, site-lisp to |
---|
1386 | + site-lisp, lisp, leim. |
---|
1387 | + * ns-win.el (ns-utf8-nfd-post-read-conversion etc.): Define coding |
---|
1388 | + system utf-nfd to handle decomposed (normal form D) UTF-8 in MacOSX |
---|
1389 | + filenames. Based on initial contribution by Carsten Bormann. (This |
---|
1390 | + change went into rc2 but was not noted in the ChanngeLog there.) |
---|
1391 | + |
---|
1392 | +2007-09-26 Adrian Robert <Adrian.B.Robert@gmail.com> |
---|
1393 | + * nsterm.m (ns_pending_files, -openFile:, ns_read_socket): Handle |
---|
1394 | + openFile requests by storing to a queue and acting on later when |
---|
1395 | + events can be processed. |
---|
1396 | + |
---|
1397 | +2007-09-25 Adrian Robert <Adrian.B.Robert@gmail.com> |
---|
1398 | + * nsterm.m (ns_draw_window_cursor, EmacsView-windowDidResignKey): |
---|
1399 | + Be more clever about drawing background (to avoid flicker with |
---|
1400 | + blinking cursor). Also, rename cursor type line -> bar, bar -> |
---|
1401 | + underscore. |
---|
1402 | + * frame.c (do_switch_frame): Explicitly call Fraise_frame() on |
---|
1403 | + for_deletion case (to fully focus the frame). |
---|
1404 | + * nsterm.m (x_make_frame_visible): Make into a no-op (unneeded). |
---|
1405 | + |
---|
1406 | +2007-09-21 Adrian Robert <Adrian.B.Robert@gmail.com> |
---|
1407 | + * nsterm.m (ns_draw_fringe_bitmap): Expand bitmap images cache as needed. |
---|
1408 | + * image.c: Be more careful about retain/release on image backgrounds. |
---|
1409 | + |
---|
1410 | 2007-09-20 Adrian Robert <Adrian.B.Robert@gmail.com> |
---|
1411 | * Version 9.0-rc2a released. |
---|
1412 | |
---|