+2013-01-13 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsfont.m (ns_findfonts): Add block/unblock_input calls.
+ Remove check for fkeys count > zero, block/unblock fixes the real bug.
+ (nsfont_list_family): Add block/unblock_input calls.
+ (nsfont_open): Move block_input earlier. Add unblock_input before early
+ return.
+ (nsfont_draw): Add block/unblock_input calls.
+
2013-01-12 Dmitry Antipov <dmantipov@yandex.ru>
* indent.c (Fvertical_motion): Remove now-incorrect GCPROs
NSSet *cFamilies;
BOOL foundItal = NO;
+ block_input ();
if (NSFONT_TRACE)
{
fprintf (stderr, "nsfont: %s for fontspec:\n ",
if (isMatch)
[fkeys removeObject: NSFontFamilyAttribute];
- if ([fkeys count] > 0)
- matchingDescs = [fdesc matchingFontDescriptorsWithMandatoryKeys: fkeys];
- else
- matchingDescs = [NSMutableArray array];
+ matchingDescs = [fdesc matchingFontDescriptorsWithMandatoryKeys: fkeys];
if (NSFONT_TRACE)
NSLog(@"Got desc %@ and found %d matching fonts from it: ", fdesc,
[s1 release];
}
+ unblock_input ();
+
/* Return something if was a match and nothing found. */
if (isMatch)
return ns_fallback_entity ();
nsfont_list_family (Lisp_Object frame)
{
Lisp_Object list = Qnil;
- NSEnumerator *families =
- [[[NSFontManager sharedFontManager] availableFontFamilies]
- objectEnumerator];
+ NSEnumerator *families;
NSString *family;
+
+ block_input ();
+ families = [[[NSFontManager sharedFontManager] availableFontFamilies]
+ objectEnumerator];
while ((family = [families nextObject]))
list = Fcons (intern ([family UTF8String]), list);
/* FIXME: escape the name? */
fprintf (stderr, "nsfont: list families returning %"pI"d entries\n",
XINT (Flength (list)));
+ unblock_input ();
return list;
}
Lisp_Object font_object;
int fixLeopardBug;
+ block_input ();
+
if (NSFONT_TRACE)
{
fprintf (stderr, "nsfont: open size %d of fontentity:\n ", pixel_size);
font_info = (struct nsfont_info *) XFONT_OBJECT (font_object);
font = (struct font *) font_info;
if (!font)
- return Qnil; /* FIXME: other terms do, but return Qnil causes segfault */
+ {
+ unblock_input ();
+ return Qnil; /* FIXME: other terms do, but return Qnil causes segfault */
+ }
font_info->glyphs = xzalloc (0x100 * sizeof *font_info->glyphs);
font_info->metrics = xzalloc (0x100 * sizeof *font_info->metrics);
- block_input ();
-
/* for metrics */
#ifdef NS_IMPL_COCOA
sfont = [nsfont screenFontWithRenderingMode:
char isComposite = s->first_glyph->type == COMPOSITE_GLYPH;
int end = isComposite ? s->cmp_to : s->nchars;
+ block_input ();
/* Select face based on input flags */
switch (ns_tmp_flags)
{
/* Draw underline, overline, strike-through. */
ns_draw_text_decoration (s, face, col, r.size.width, r.origin.x);
+ unblock_input ();
return to-from;
}