mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-25 23:10:47 -08:00
NS cleanup: change 'PENDING' to 'FIXME'/'TODO'/'XXX'
This commit is contained in:
parent
365bac35a5
commit
df2142db9f
5 changed files with 91 additions and 85 deletions
|
|
@ -1,3 +1,10 @@
|
|||
2008-07-22 Adrian Robert <Adrian.B.Robert@gmail.com>
|
||||
|
||||
* nsgui.h:
|
||||
* nsfont.m:
|
||||
* nsmenu.m:
|
||||
* nsterm.m: Change PENDINGS to FIXME / TODO / XXX.
|
||||
|
||||
2008-07-22 Adrian Robert <Adrian.B.Robert@gmail.com>
|
||||
|
||||
* nsterm.m (syms_of_nsterm): Remove debugging println.
|
||||
|
|
|
|||
34
src/nsfont.m
34
src/nsfont.m
|
|
@ -96,8 +96,8 @@ nsfont_get_family (Lisp_Object font_spec)
|
|||
char *tmp = strdup (SDATA (SYMBOL_NAME (tem)));
|
||||
NSString *family;
|
||||
nsfont_unescape_name (tmp);
|
||||
/* PENDING: this seems to be needed only for font names that are
|
||||
hard-coded into emacs, like 'helvetica' for splash screen */
|
||||
/* TODO: this seems to be needed only for font names that are
|
||||
hard-coded into emacs, like 'helvetica' for splash screen */
|
||||
if (tmp)
|
||||
tmp[0] = toupper (tmp[0]);
|
||||
family = [NSString stringWithUTF8String: tmp];
|
||||
|
|
@ -108,7 +108,7 @@ nsfont_get_family (Lisp_Object font_spec)
|
|||
|
||||
|
||||
/* Converts FONT_WEIGHT, FONT_SLANT, FONT_WIDTH to NSFont traits. */
|
||||
/* PENDING (20080601): The font backend's strategy for handling font
|
||||
/* TODO (20080601): The font backend's strategy for handling font
|
||||
styles continues to evolve. When/if this stabilizes, we
|
||||
can change the code here to be more sophisticated and accurate.
|
||||
For now, we rely on "normal/plain" style being numeric 100. */
|
||||
|
|
@ -413,7 +413,7 @@ nsfont_match (Lisp_Object frame, Lisp_Object font_spec)
|
|||
if (fontNames && [fontNames count] > 0)
|
||||
{
|
||||
NSString *fontName = [fontNames objectAtIndex: 0];
|
||||
/*PENDING: is there a more efficient way to get family name? */
|
||||
/* XXX: is there a more efficient way to get family name? */
|
||||
NSFont *font = [NSFont fontWithName: fontName size: 0];
|
||||
if (font != nil)
|
||||
{
|
||||
|
|
@ -453,7 +453,7 @@ nsfont_list_family (Lisp_Object frame)
|
|||
NSString *family;
|
||||
while (family = [families nextObject])
|
||||
list = Fcons (intern ([family UTF8String]), list);
|
||||
/*PENDING: escape the name? */
|
||||
/* FIXME: escape the name? */
|
||||
|
||||
if (NSFONT_TRACE)
|
||||
fprintf (stderr, "nsfont: list families returning %d entries\n",
|
||||
|
|
@ -519,7 +519,7 @@ nsfont_open (FRAME_PTR f, Lisp_Object font_entity, int pixel_size)
|
|||
font_info = (struct nsfont_info *) XFONT_OBJECT (font_object);
|
||||
font = (struct font *)font_info;
|
||||
if (!font)
|
||||
return Qnil; /*PENDING: this copies w32, but causes a segfault */
|
||||
return Qnil; /* FIXME: this copies w32, but causes a segfault */
|
||||
|
||||
if (NSFONT_TRACE)
|
||||
{
|
||||
|
|
@ -627,7 +627,7 @@ BLOCK_INPUT;
|
|||
font->relative_compose = 0;
|
||||
font->font_encoder = NULL;
|
||||
|
||||
/*PENDING: does anything care about this? */
|
||||
/* TODO: does anything care about this? */
|
||||
font->props[FONT_FORMAT_INDEX] = Qns;
|
||||
font->props[FONT_FILE_INDEX] = Qnil;
|
||||
|
||||
|
|
@ -723,7 +723,7 @@ BLOCK_INPUT;
|
|||
/* set up metrics portion of font struct */
|
||||
font->ascent = [sfont ascender];
|
||||
font->descent = -[sfont descender];
|
||||
font->min_width = [sfont widthOfString: @"|"]; /* PENDING */
|
||||
font->min_width = [sfont widthOfString: @"|"]; /* FIXME */
|
||||
font->space_width = lrint (nsfont_char_width (sfont, ' '));
|
||||
font->average_width = lrint (font_info->width);
|
||||
font->max_width = lrint (font_info->max_bounds.width);
|
||||
|
|
@ -748,9 +748,9 @@ nsfont_close (FRAME_PTR f, struct font *font)
|
|||
struct nsfont_info *font_info = (struct nsfont_info *)font;
|
||||
int i;
|
||||
|
||||
/* PENDING: this occurs apparently due to same failure to detect same font
|
||||
that causes need for cache in nsfont_open ()
|
||||
(came after unicode-2 -> trunk) */
|
||||
/* FIXME: this occurs apparently due to same failure to detect same font
|
||||
that causes need for cache in nsfont_open ()
|
||||
(came after unicode-2 -> trunk) */
|
||||
if (!font_info)
|
||||
return;
|
||||
|
||||
|
|
@ -820,8 +820,8 @@ nsfont_text_extents (struct font *font, unsigned int *code, int nglyphs,
|
|||
for (i =0; i<nglyphs; i++)
|
||||
{
|
||||
/* get metrics for this glyph, filling cache if need be */
|
||||
/* PENDING: get metrics for whole string from an NSLayoutManager
|
||||
(if not too slow) */
|
||||
/* TODO: get metrics for whole string from an NSLayoutManager
|
||||
(if not too slow) */
|
||||
high = (code[i] & 0xFF00) >> 8;
|
||||
low = code[i] & 0x00FF;
|
||||
if (!font_info->metrics[high])
|
||||
|
|
@ -903,7 +903,7 @@ nsfont_draw (struct glyph_string *s, int from, int to, int x, int y,
|
|||
int cwidth, twidth = 0;
|
||||
int hi, lo;
|
||||
char isComposite = 0; /* s->first_glyph->type == COMPOSITE_GLYPH; */
|
||||
/* PENDING: composition: no vertical displacement is considered. */
|
||||
/* FIXME: composition: no vertical displacement is considered. */
|
||||
t+= s->gidx; /* advance into composition */
|
||||
for (i =0; i<s->nchars - s->gidx; i++, t++)
|
||||
{
|
||||
|
|
@ -915,7 +915,7 @@ nsfont_draw (struct glyph_string *s, int from, int to, int x, int y,
|
|||
}
|
||||
else
|
||||
{
|
||||
if (!font->metrics[hi]) /*PENDING: why/how can we need this now? */
|
||||
if (!font->metrics[hi]) /* FIXME: why/how can we need this now? */
|
||||
ns_glyph_metrics (font, hi);
|
||||
cwidth = font->metrics[hi][lo].width;
|
||||
}
|
||||
|
|
@ -987,7 +987,7 @@ nsfont_draw (struct glyph_string *s, int from, int to, int x, int y,
|
|||
col = (NS_FACE_FOREGROUND (face) != nil
|
||||
? ns_lookup_indexed_color (NS_FACE_FOREGROUND (face), s->f)
|
||||
: FRAME_FOREGROUND_COLOR (s->f));
|
||||
/*PENDING: find another way to pass this */
|
||||
/* FIXME: find another way to pass this */
|
||||
bgCol = (ns_tmp_flags != NS_DUMPGLYPH_FOREGROUND ? nil
|
||||
: (NS_FACE_BACKGROUND (face) != 0
|
||||
? ns_lookup_indexed_color (NS_FACE_BACKGROUND (face), s->f)
|
||||
|
|
@ -1320,7 +1320,7 @@ ns_uni_to_glyphs (struct nsfont_info *font_info, unsigned char block)
|
|||
g = unichars[i];
|
||||
#else
|
||||
g = glyphStorage->cglyphs[i];
|
||||
/*PENDING: is this a good check? maybe need to use coveredChars.. */
|
||||
/* TODO: is this a good check? maybe need to use coveredChars.. */
|
||||
if (g > numGlyphs)
|
||||
g = 0xFFFF; /* hopefully unused... */
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -78,8 +78,8 @@ typedef unichar XChar2b;
|
|||
#define FACE_DEFAULT (~0)
|
||||
|
||||
|
||||
/* PENDING: xfaces requires these structures, but the question is are we
|
||||
forced to use them? */
|
||||
/* XXX: xfaces requires these structures, but the question is are we
|
||||
forced to use them? */
|
||||
typedef struct _XGCValues
|
||||
{
|
||||
#ifdef __OBJC__
|
||||
|
|
|
|||
32
src/nsmenu.m
32
src/nsmenu.m
|
|
@ -78,7 +78,7 @@ EmacsMenu *mainMenu, *svcsMenu;
|
|||
========================================================================== */
|
||||
|
||||
|
||||
/*23: PENDING: not currently used, but should normalize with other terms. */
|
||||
/*23: FIXME: not currently used, but should normalize with other terms. */
|
||||
void
|
||||
x_activate_menubar (struct frame *f)
|
||||
{
|
||||
|
|
@ -197,9 +197,9 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu)
|
|||
}
|
||||
set_buffer_internal_1 (XBUFFER (buffer));
|
||||
|
||||
/* PENDING: for some reason this is not needed in other terms,
|
||||
but some menu updates call Info-extract-pointer which causes
|
||||
abort-on-error if waiting-for-input. Needs further investigation. */
|
||||
/* TODO: for some reason this is not needed in other terms,
|
||||
but some menu updates call Info-extract-pointer which causes
|
||||
abort-on-error if waiting-for-input. Needs further investigation. */
|
||||
owfi = waiting_for_input;
|
||||
waiting_for_input = 0;
|
||||
|
||||
|
|
@ -239,10 +239,10 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu)
|
|||
if (NILP (string))
|
||||
break;
|
||||
|
||||
/* PENDING: we'd like to only parse the needed submenu, but this
|
||||
was causing crashes in the _common parsing code.. need to make
|
||||
sure proper initialization done.. */
|
||||
/* if (submenu && strcmp (submenuTitle, SDATA (string)))
|
||||
/* FIXME: we'd like to only parse the needed submenu, but this
|
||||
was causing crashes in the _common parsing code.. need to make
|
||||
sure proper initialization done.. */
|
||||
/* if (submenu && strcmp (submenuTitle, SDATA (string)))
|
||||
continue; */
|
||||
|
||||
submenu_start[i] = menu_items_used;
|
||||
|
|
@ -298,16 +298,16 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu)
|
|||
set_buffer_internal_1 (prev);
|
||||
|
||||
/* Compare the new menu items with previous, and leave off if no change */
|
||||
/* PENDING: following other terms here, but seems like this should be
|
||||
done before parse stage 2 above, since its results aren't used */
|
||||
/* FIXME: following other terms here, but seems like this should be
|
||||
done before parse stage 2 above, since its results aren't used */
|
||||
if (previous_menu_items_used
|
||||
&& (!submenu || (submenu && submenu == last_submenu))
|
||||
&& menu_items_used == previous_menu_items_used)
|
||||
{
|
||||
for (i = 0; i < previous_menu_items_used; i++)
|
||||
/* PENDING: this ALWAYS fails on Buffers menu items.. something
|
||||
about their strings causes them to change every time, so we
|
||||
double-check failures */
|
||||
/* FIXME: this ALWAYS fails on Buffers menu items.. something
|
||||
about their strings causes them to change every time, so we
|
||||
double-check failures */
|
||||
if (!EQ (previous_items[i], XVECTOR (menu_items)->contents[i]))
|
||||
if (!(STRINGP (previous_items[i])
|
||||
&& STRINGP (XVECTOR (menu_items)->contents[i])
|
||||
|
|
@ -333,7 +333,7 @@ ns_update_menubar (struct frame *f, int deep_p, EmacsMenu *submenu)
|
|||
}
|
||||
}
|
||||
/* The menu items are different, so store them in the frame */
|
||||
/* PENDING: this is not correct for single-submenu case */
|
||||
/* FIXME: this is not correct for single-submenu case */
|
||||
f->menu_bar_vector = menu_items;
|
||||
f->menu_bar_items_used = menu_items_used;
|
||||
|
||||
|
|
@ -830,7 +830,7 @@ ns_popup_menu (Lisp_Object position, Lisp_Object menu)
|
|||
}
|
||||
else
|
||||
{ /* no position given */
|
||||
/* PENDING: if called during dump, we need to stop precomputation of
|
||||
/* FIXME: if called during dump, we need to stop precomputation of
|
||||
key equivalents (see below) because the keydefs in ns-win.el have
|
||||
not been loaded yet. */
|
||||
if (noninteractive)
|
||||
|
|
@ -934,7 +934,7 @@ ns_popup_menu (Lisp_Object position, Lisp_Object menu)
|
|||
specpdl_count2 = SPECPDL_INDEX ();
|
||||
|
||||
#if 0
|
||||
/*PENDING: a couple of one-line differences prevent reuse */
|
||||
/* FIXME: a couple of one-line differences prevent reuse */
|
||||
wv = digest_single_submenu (0, menu_items_used, Qnil);
|
||||
#else
|
||||
{
|
||||
|
|
|
|||
99
src/nsterm.m
99
src/nsterm.m
|
|
@ -140,7 +140,7 @@ Lisp_Object ns_input_color, ns_input_text, ns_working_text;
|
|||
Lisp_Object ns_input_spi_name, ns_input_spi_arg;
|
||||
Lisp_Object Vx_toolkit_scroll_bars;
|
||||
static Lisp_Object Qmodifier_value;
|
||||
/*PENDING: unsure why these defined in term files, anyway we need in keymap.c */
|
||||
/* TODO: unsure why these defined in term files, anyway we need in keymap.c */
|
||||
Lisp_Object Qalt, Qcontrol, Qhyper, Qmeta, Qsuper;
|
||||
extern Lisp_Object Qcursor_color, Qcursor_type, Qns;
|
||||
|
||||
|
|
@ -215,8 +215,8 @@ static int ns_window_num =0;
|
|||
static NSRect uRect;
|
||||
static BOOL gsaved = NO;
|
||||
BOOL ns_in_resize = NO;
|
||||
int ns_tmp_flags; /*PENDING */
|
||||
struct nsfont_info *ns_tmp_font; /*PENDING */
|
||||
int ns_tmp_flags; /* FIXME */
|
||||
struct nsfont_info *ns_tmp_font; /* FIXME */
|
||||
/*static int debug_lock = 0; */
|
||||
|
||||
#ifdef NS_IMPL_COCOA
|
||||
|
|
@ -297,13 +297,13 @@ static BOOL inNsSelect = 0;
|
|||
ns_send_appdefined (-1); \
|
||||
}
|
||||
|
||||
/*PENDING: get rid of need for these forward declarations */
|
||||
/* TODO: get rid of need for these forward declarations */
|
||||
static void ns_condemn_scroll_bars (struct frame *f),
|
||||
ns_judge_scroll_bars (struct frame *f);
|
||||
|
||||
/* unused variables needed for compatibility reasons */
|
||||
int x_use_underline_position_properties, x_underline_at_descent_line;
|
||||
/* PENDING: figure out what to do with underline_minimum_offset. */
|
||||
/* FIXME: figure out what to do with underline_minimum_offset. */
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
|
|
@ -413,7 +413,6 @@ ns_init_paths ()
|
|||
}
|
||||
}
|
||||
|
||||
/*PENDING: append to INFOPATH... */
|
||||
if (!getenv ("INFOPATH"))
|
||||
{
|
||||
resourcePath = [resourceDir stringByAppendingPathComponent: @"info"];
|
||||
|
|
@ -847,7 +846,7 @@ ns_ring_bell ()
|
|||
r.origin.y += (r.size.height - dim.y) / 2;
|
||||
r.size.width = dim.x;
|
||||
r.size.height = dim.y;
|
||||
/* PENDING: cacheImageInRect under GNUSTEP does not account for
|
||||
/* XXX: cacheImageInRect under GNUSTEP does not account for
|
||||
offset in x_set_window_size, so overestimate (4 fine on Cocoa) */
|
||||
surr = NSInsetRect (r, -10, -10);
|
||||
ns_focus (frame, &surr, 1);
|
||||
|
|
@ -987,7 +986,7 @@ x_make_frame_visible (struct frame *f)
|
|||
-------------------------------------------------------------------------- */
|
||||
{
|
||||
NSTRACE (x_make_frame_visible);
|
||||
/* PENDING: at some points in past this was not needed, as the only place that
|
||||
/* XXX: at some points in past this was not needed, as the only place that
|
||||
called this (frame.c:Fraise_frame ()) also called raise_lower;
|
||||
if this ends up the case again, comment this out again. */
|
||||
if (!FRAME_VISIBLE_P (f))
|
||||
|
|
@ -1158,8 +1157,8 @@ x_set_window_size (struct frame *f, int change_grav, int cols, int rows)
|
|||
|
||||
/* If we have a change in toolbar display, calculate height */
|
||||
if (tb)
|
||||
/* PENDING: GNUstep has not yet implemented the first method below, added
|
||||
in Panther, however the second is incorrect under Cocoa. */
|
||||
/* XXX: GNUstep has not yet implemented the first method below, added
|
||||
in Panther, however the second is incorrect under Cocoa. */
|
||||
#ifdef NS_IMPL_GNUSTEP
|
||||
FRAME_NS_TOOLBAR_HEIGHT (f)
|
||||
= NSHeight ([NSWindow frameRectForContentRect: NSMakeRect (0, 0, 0, 0)
|
||||
|
|
@ -1359,9 +1358,9 @@ ns_get_color (const char *name, NSColor **col)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* 23: PENDING: emacs seems to downcase everything before passing it here,
|
||||
which we can work around, except for GRAY, since gray##, where ## is
|
||||
decimal between 0 and 99, is also an X11 colorname. */
|
||||
/* 23: FIXME: emacs seems to downcase everything before passing it here,
|
||||
which we can work around, except for GRAY, since gray##, where ## is
|
||||
decimal between 0 and 99, is also an X11 colorname. */
|
||||
if (name[0] == '#') /* X11 format */
|
||||
{
|
||||
hex = name + 1;
|
||||
|
|
@ -1460,7 +1459,7 @@ ns_get_color (const char *name, NSColor **col)
|
|||
NSString *name;
|
||||
NSColorList *clist;
|
||||
#ifdef NS_IMPL_GNUSTEP
|
||||
/* PENDING: who is wrong, the requestor or the implementation? */
|
||||
/* XXX: who is wrong, the requestor or the implementation? */
|
||||
if ([nsname compare: @"Highlight" options: NSCaseInsensitiveSearch]
|
||||
== NSOrderedSame)
|
||||
nsname = @"highlightColor";
|
||||
|
|
@ -1638,7 +1637,7 @@ x_set_mouse_pixel_position (struct frame *f, int pix_x, int pix_y)
|
|||
NSTRACE (x_set_mouse_pixel_position);
|
||||
ns_raise_frame (f);
|
||||
#if 0
|
||||
/*PENDING: this does not work, and what about GNUstep? */
|
||||
/* FIXME: this does not work, and what about GNUstep? */
|
||||
#ifdef NS_IMPL_COCOA
|
||||
[FRAME_NS_VIEW (f) lockFocus];
|
||||
PSsetmouse ((float)pix_x, (float)pix_y);
|
||||
|
|
@ -1732,8 +1731,8 @@ ns_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
|
|||
|
||||
if (last_mouse_scroll_bar != nil && insist == 0)
|
||||
{
|
||||
/* PENDING: we do not use this path at the moment because drag events will
|
||||
go directly to the EmacsScroller. Leaving code in for now. */
|
||||
/* TODO: we do not use this path at the moment because drag events will
|
||||
go directly to the EmacsScroller. Leaving code in for now. */
|
||||
[last_mouse_scroll_bar getMouseMotionPart: (int *)part window: bar_window
|
||||
x: x y: y];
|
||||
if (time) *time = last_mouse_movement_time;
|
||||
|
|
@ -1754,7 +1753,7 @@ ns_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
|
|||
f = dpyinfo->x_focus_frame ? dpyinfo->x_focus_frame
|
||||
: SELECTED_FRAME ();
|
||||
|
||||
if (f && f->output_data.ns) /*PENDING: 2nd check no longer needed? */
|
||||
if (f && f->output_data.ns) /* TODO: 2nd check no longer needed? */
|
||||
{
|
||||
view = FRAME_NS_VIEW (*fp);
|
||||
|
||||
|
|
@ -2422,7 +2421,7 @@ show_hourglass (struct atimer *timer)
|
|||
|
||||
BLOCK_INPUT;
|
||||
|
||||
/*PENDING: add NSProgressIndicator to selected frame (see macfns.c) */
|
||||
/* TODO: add NSProgressIndicator to selected frame (see macfns.c) */
|
||||
|
||||
hourglass_shown_p = 1;
|
||||
UNBLOCK_INPUT;
|
||||
|
|
@ -2435,7 +2434,7 @@ hide_hourglass ()
|
|||
if (!hourglass_shown_p)
|
||||
return;
|
||||
|
||||
/*PENDING: remove NSProgressIndicator from all frames */
|
||||
/* TODO: remove NSProgressIndicator from all frames */
|
||||
|
||||
hourglass_shown_p = 0;
|
||||
UNBLOCK_INPUT;
|
||||
|
|
@ -2563,7 +2562,7 @@ ns_draw_relief (NSRect r, int thickness, char raised_p,
|
|||
if (newBaseCol == nil)
|
||||
newBaseCol = [NSColor grayColor];
|
||||
|
||||
if (newBaseCol != baseCol) /* PENDING: better check */
|
||||
if (newBaseCol != baseCol) /* TODO: better check */
|
||||
{
|
||||
[baseCol release];
|
||||
baseCol = [newBaseCol retain];
|
||||
|
|
@ -2843,7 +2842,7 @@ ns_draw_glyph_string (struct glyph_string *s)
|
|||
External (RIF): Main draw-text call.
|
||||
-------------------------------------------------------------------------- */
|
||||
{
|
||||
/*PENDING (optimize): focus for box and contents draw */
|
||||
/* TODO (optimize): focus for box and contents draw */
|
||||
NSRect r[2];
|
||||
int n;
|
||||
char box_drawn_p = 0;
|
||||
|
|
@ -2894,11 +2893,11 @@ ns_draw_glyph_string (struct glyph_string *s)
|
|||
- WINDOW_RIGHT_FRINGE_WIDTH (s->w)));
|
||||
r[0].size.width -= overrun;
|
||||
|
||||
/* PENDING: Try to work between problem where a stretch glyph on
|
||||
a partially-visible bottom row will clear part of the
|
||||
modeline, and another where list-buffers headers and similar
|
||||
rows erroneously have visible_height set to 0. Not sure
|
||||
where this is coming from as other terms seem not to show. */
|
||||
/* XXX: Try to work between problem where a stretch glyph on
|
||||
a partially-visible bottom row will clear part of the
|
||||
modeline, and another where list-buffers headers and similar
|
||||
rows erroneously have visible_height set to 0. Not sure
|
||||
where this is coming from as other terms seem not to show. */
|
||||
r[0].size.height = min (s->height, s->row->visible_height);
|
||||
}
|
||||
|
||||
|
|
@ -3089,7 +3088,7 @@ ns_read_socket (struct terminal *terminal, int expected,
|
|||
to ourself, otherwise [NXApp run] will never exit. */
|
||||
send_appdefined = YES;
|
||||
|
||||
/*PENDING: from termhooks.h: */
|
||||
/* TODO: from termhooks.h: */
|
||||
/* XXX Please note that a non-zero value of EXPECTED only means that
|
||||
there is available input on at least one of the currently opened
|
||||
terminal devices -- but not necessarily on this device.
|
||||
|
|
@ -3596,7 +3595,7 @@ static struct redisplay_interface ns_redisplay_interface =
|
|||
x_get_glyph_overhangs, /*23: generic OK */
|
||||
x_fix_overlapping_area, /*generic OK */
|
||||
ns_draw_fringe_bitmap, /*23 */
|
||||
0, /* define_fringe_bitmap */ /*PENDING: simplify ns_draw_fringe_bitmap? */
|
||||
0, /* define_fringe_bitmap */ /* FIXME: simplify ns_draw_fringe_bitmap */
|
||||
0, /* destroy_fringe_bitmap */
|
||||
ns_compute_glyph_string_overhangs, /*23 */
|
||||
ns_draw_glyph_string, /*23: interface to nsfont.m */
|
||||
|
|
@ -3611,7 +3610,7 @@ static struct redisplay_interface ns_redisplay_interface =
|
|||
static void
|
||||
ns_delete_display (struct ns_display_info *dpyinfo)
|
||||
{
|
||||
/*PENDING... */
|
||||
/* TODO... */
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -4050,7 +4049,7 @@ or shrunk (negative). Zero (the default) means standard line height.\n\
|
|||
Qcontrol = intern ("control");
|
||||
Fput (Qcontrol, Qmodifier_value, make_number (ctrl_modifier));
|
||||
|
||||
/*PENDING: move to common code */
|
||||
/* FIXME: move to common code */
|
||||
DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars,
|
||||
doc: /* If not nil, Emacs uses toolkit scroll bars. */);
|
||||
#ifdef USE_TOOLKIT_SCROLL_BARS
|
||||
|
|
@ -4083,8 +4082,8 @@ baseline level. The default value is nil. */);
|
|||
|
||||
/* Tell emacs about this window system. */
|
||||
Fprovide (intern ("ns-windowing"), Qnil);
|
||||
/* PENDING: try to move this back into lisp, ns-win.el loaded too late
|
||||
right now */
|
||||
/* TODO: try to move this back into lisp, ns-win.el loaded too late
|
||||
right now */
|
||||
{
|
||||
Lisp_Object args[3] = { intern ("ns-version-string"), build_string ("9.0"),
|
||||
build_string ("NS Window system port version number.") };
|
||||
|
|
@ -4279,7 +4278,7 @@ fprintf (stderr, "res = %d\n", EQ (res, Qt)); // FIXME
|
|||
return YES;
|
||||
}
|
||||
|
||||
/*PENDING: these may help w/IO switching btwn terminal and NSApp */
|
||||
/* TODO: these may help w/IO switching btwn terminal and NSApp */
|
||||
- (void)applicationDidBecomeActive: (NSNotification *)notification
|
||||
{
|
||||
}
|
||||
|
|
@ -4497,13 +4496,13 @@ extern void update_window_cursor (struct window *w, int on);
|
|||
/*#if defined (COCOA_EXPERIMENTAL_CTRL_G) */
|
||||
if (![[self window] isKeyWindow])
|
||||
{
|
||||
/* PENDING: Using NO_SOCK_SIGIO like Carbon causes a condition in which,
|
||||
when Emacs display updates a different frame from the current one,
|
||||
and temporarily selects it, then processes some interrupt-driven
|
||||
input (dispnew.c:3878), OS will send the event to the correct NSWindow,
|
||||
but for some reason that window has its first responder set to the
|
||||
NSView most recently updated (I guess), which is not the correct one.
|
||||
UPDATE: After multi-TTY merge this happens even w/o NO_SOCK_SIGIO */
|
||||
/* XXX: Using NO_SOCK_SIGIO like Carbon causes a condition in which,
|
||||
when Emacs display updates a different frame from the current one,
|
||||
and temporarily selects it, then processes some interrupt-driven
|
||||
input (dispnew.c:3878), OS will send the event to the correct NSWindow,
|
||||
but for some reason that window has its first responder set to the
|
||||
NSView most recently updated (I guess), which is not the correct one.
|
||||
UPDATE: After multi-TTY merge this happens even w/o NO_SOCK_SIGIO */
|
||||
if ([[theEvent window] isKindOfClass: [EmacsWindow class]])
|
||||
[[(EmacsView *)[theEvent window] delegate] keyDown: theEvent];
|
||||
return;
|
||||
|
|
@ -4558,7 +4557,7 @@ extern void update_window_cursor (struct window *w, int on);
|
|||
&& !fnKeysym
|
||||
&& [[theEvent characters] length] != 0)
|
||||
{
|
||||
/* PENDING: the code we get will be unshifted, so if we have
|
||||
/* XXX: the code we get will be unshifted, so if we have
|
||||
a shift modifier, must convert ourselves */
|
||||
if (!(flags & NSShiftKeyMask))
|
||||
code = [[theEvent characters] characterAtIndex: 0];
|
||||
|
|
@ -4667,7 +4666,7 @@ if (NS_KEYLOG) NSLog (@"insertText '%@'\tlen = %d", aString, len);
|
|||
for (i =0; i<len; i++)
|
||||
{
|
||||
code = [aString characterAtIndex: i];
|
||||
/* PENDING: still need this? */
|
||||
/* TODO: still need this? */
|
||||
if (code == 0x2DC)
|
||||
code = '~'; /* 0x7E */
|
||||
emacs_event->modifiers = 0;
|
||||
|
|
@ -4790,7 +4789,7 @@ if (NS_KEYLOG) NSLog (@"firstRectForCharRange request");
|
|||
return (long)self;
|
||||
}
|
||||
|
||||
/*PENDING: below here not yet implemented correctly, but may not be needed */
|
||||
/* TODO: below here not yet implemented correctly, but may not be needed */
|
||||
|
||||
- (void)doCommandBySelector: (SEL)aSelector
|
||||
{
|
||||
|
|
@ -5725,8 +5724,8 @@ if (NS_KEYLOG) NSLog (@"attributedSubstringFromRange request");
|
|||
|
||||
+ (float) scrollerWidth
|
||||
{
|
||||
/* PENDING: if we want to allow variable widths, this is the place to do it,
|
||||
however neither GNUstep nor Cocoa support it very well */
|
||||
/* TODO: if we want to allow variable widths, this is the place to do it,
|
||||
however neither GNUstep nor Cocoa support it very well */
|
||||
return [NSScroller scrollerWidth];
|
||||
}
|
||||
|
||||
|
|
@ -5869,8 +5868,8 @@ if (NS_KEYLOG) NSLog (@"attributedSubstringFromRange request");
|
|||
return self;
|
||||
}
|
||||
|
||||
/* PENDING: unused at moment (see ns_mouse_position) at the moment because
|
||||
drag events will go directly to the EmacsScroller. Leaving in for now. */
|
||||
/* FIXME: unused at moment (see ns_mouse_position) at the moment because
|
||||
drag events will go directly to the EmacsScroller. Leaving in for now. */
|
||||
-(void)getMouseMotionPart: (int *)part window: (Lisp_Object *)window
|
||||
x: (Lisp_Object *)x y: ( Lisp_Object *)y
|
||||
{
|
||||
|
|
@ -6180,7 +6179,7 @@ static void selectItemWithTag (NSPopUpButton *popup, int tag)
|
|||
if (expandSpace != prevExpandSpace)
|
||||
{
|
||||
ns_expand_space = make_float (expandSpace);
|
||||
/* PENDING: more needed: store needed metrics in nsfont_info, update
|
||||
/* TODO: more needed: store needed metrics in nsfont_info, update
|
||||
frame default font max_bounds and fontp, recompute faces */
|
||||
/* FRAME_LINE_HEIGHT (frame) *= (expandSpace / prevExpandSpace);
|
||||
x_set_window_size (frame, 0, frame->text_cols, frame->text_lines); */
|
||||
|
|
@ -6409,7 +6408,7 @@ ns_list_fonts (FRAME_PTR f, Lisp_Object pattern, int size, int maxnames)
|
|||
pattFam = patt;
|
||||
else
|
||||
pattFam = ns_xlfd_to_fontname (patt);
|
||||
/*PENDING: '*' at beginning matches literally.. */
|
||||
/* XXX: '*' at beginning matches literally.. */
|
||||
if (pattFam[0] == '*')
|
||||
pattFam[0] = '.';
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue