mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-23 10:34:07 +00:00
* nsfns.m (ns-read-file-name): BLOCK_INPUT while showing dialog. \n \n* nsmenu.m (pop_down_menu): Check popup_activated_flag. \n(ns_popup_dialog, EmacsDialogPanel-runDialogAt:): Let \npop_down_menu do the cleanup work as it is always called. (Bug#2154) \n \n* nsfont.m (nsfont_make_fontset_for_font): For now, don't try to \nset fontset font for 'mathematical-' sub-scripts. (Bug #2218)\n
This commit is contained in:
parent
5ae6e65f65
commit
ba301db329
@ -1,3 +1,14 @@
|
||||
2009-02-13 Adrian Robert <Adrian.B.Robert@gmail.com>
|
||||
|
||||
* nsfns.m (ns-read-file-name): BLOCK_INPUT while showing dialog.
|
||||
|
||||
* nsmenu.m (pop_down_menu): Check popup_activated_flag.
|
||||
(ns_popup_dialog, EmacsDialogPanel-runDialogAt:): Let
|
||||
pop_down_menu do the cleanup work as it is always called. (Bug#2154)
|
||||
|
||||
* nsfont.m (nsfont_make_fontset_for_font): For now, don't try to
|
||||
set fontset font for "mathematical-" sub-scripts. (Bug #2218)
|
||||
|
||||
2009-02-12 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* keyboard.c (adjust_point_for_property): Allow stopping betwen two
|
||||
|
12
src/nsfns.m
12
src/nsfns.m
@ -1449,7 +1449,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
|
||||
static id fileDelegate = nil;
|
||||
int ret;
|
||||
id panel;
|
||||
NSString *fname;
|
||||
Lisp_Object fname;
|
||||
|
||||
NSString *promptS = NILP (prompt) || !STRINGP (prompt) ? nil :
|
||||
[NSString stringWithUTF8String: SDATA (prompt)];
|
||||
@ -1482,6 +1482,7 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
|
||||
[panel setDelegate: fileDelegate];
|
||||
|
||||
panelOK = 0;
|
||||
BLOCK_INPUT;
|
||||
if (NILP (isLoad))
|
||||
{
|
||||
ret = [panel runModalForDirectory: dirS file: initS];
|
||||
@ -1494,11 +1495,13 @@ Turn the input menu (an NSMenu) into a lisp list for tracking on lisp side
|
||||
|
||||
ret = (ret == NSOKButton) || panelOK;
|
||||
|
||||
fname = [panel filename];
|
||||
|
||||
if (ret)
|
||||
fname = build_string ([[panel filename] UTF8String]);
|
||||
|
||||
[[FRAME_NS_VIEW (SELECTED_FRAME ()) window] makeKeyWindow];
|
||||
UNBLOCK_INPUT;
|
||||
|
||||
return ret ? build_string ([fname UTF8String]) : Qnil;
|
||||
return ret ? fname : Qnil;
|
||||
}
|
||||
|
||||
|
||||
@ -2644,6 +2647,7 @@ - (NSString *)panel: (id)sender userEnteredFilename: (NSString *)filename
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* ==========================================================================
|
||||
|
||||
Lisp interface declaration
|
||||
|
@ -1235,7 +1235,13 @@ void nsfont_make_fontset_for_font (Lisp_Object name, Lisp_Object font_object)
|
||||
font_info->name, family,
|
||||
SDATA (SYMBOL_NAME (scripts[i])));
|
||||
|
||||
Fset_fontset_font (name, scripts[i], famAndReg, Qnil, Qnil);
|
||||
/* TODO: Some of the "scripts" in script-representative-chars are
|
||||
actually only "sub-scripts" which are not fully defined. For
|
||||
these, calling set_fontset_font generates an abort. Try to
|
||||
guess which ones these are and avoid it. */
|
||||
if (strstr (SDATA (SYMBOL_NAME (scripts[i])), "mathematical-")
|
||||
!= SDATA (SYMBOL_NAME (scripts[i])))
|
||||
Fset_fontset_font (name, scripts[i], famAndReg, Qnil, Qnil);
|
||||
free (family);
|
||||
}
|
||||
else
|
||||
|
23
src/nsmenu.m
23
src/nsmenu.m
@ -1494,12 +1494,15 @@ - (NSRect) frame
|
||||
pop_down_menu (Lisp_Object arg)
|
||||
{
|
||||
struct Lisp_Save_Value *p = XSAVE_VALUE (arg);
|
||||
popup_activated_flag = 0;
|
||||
BLOCK_INPUT;
|
||||
[NSApp endModalSession: popupSession];
|
||||
[((EmacsDialogPanel *) (p->pointer)) close];
|
||||
[[FRAME_NS_VIEW (SELECTED_FRAME ()) window] makeKeyWindow];
|
||||
UNBLOCK_INPUT;
|
||||
if (popup_activated_flag)
|
||||
{
|
||||
popup_activated_flag = 0;
|
||||
BLOCK_INPUT;
|
||||
[NSApp endModalSession: popupSession];
|
||||
[((EmacsDialogPanel *) (p->pointer)) close];
|
||||
[[FRAME_NS_VIEW (SELECTED_FRAME ()) window] makeKeyWindow];
|
||||
UNBLOCK_INPUT;
|
||||
}
|
||||
return Qnil;
|
||||
}
|
||||
|
||||
@ -1565,12 +1568,8 @@ - (NSRect) frame
|
||||
record_unwind_protect (pop_down_menu, make_save_value (dialog, 0));
|
||||
popup_activated_flag = 1;
|
||||
tem = [dialog runDialogAt: p];
|
||||
popup_activated_flag = 0;
|
||||
unbind_to (specpdl_count, Qnil);
|
||||
unbind_to (specpdl_count, Qnil); /* calls pop_down_menu */
|
||||
}
|
||||
|
||||
[dialog close];
|
||||
[[FRAME_NS_VIEW (SELECTED_FRAME ()) window] makeKeyWindow];
|
||||
UNBLOCK_INPUT;
|
||||
|
||||
return tem;
|
||||
@ -1879,6 +1878,7 @@ - (Lisp_Object)runDialogAt: (NSPoint)p
|
||||
{
|
||||
int ret;
|
||||
|
||||
/* initiate a session that will be ended by pop_down_menu */
|
||||
popupSession = [NSApp beginModalSessionForWindow: self];
|
||||
while (popup_activated_flag
|
||||
&& (ret = [NSApp runModalSession: popupSession])
|
||||
@ -1889,7 +1889,6 @@ - (Lisp_Object)runDialogAt: (NSPoint)p
|
||||
timer_check (1);
|
||||
[NSThread sleepUntilDate: [NSDate dateWithTimeIntervalSinceNow: 0.1]];
|
||||
}
|
||||
[NSApp endModalSession: popupSession];
|
||||
|
||||
{ /* FIXME: BIG UGLY HACK!!! */
|
||||
Lisp_Object tmp;
|
||||
|
Loading…
Reference in New Issue
Block a user