Mercurial > emacs
changeset 75833:433bde797a0b
(Fx_focus_frame): Move current process to foreground if
it is not.
[TARGET_API_MAC_CARBON] (Fx_file_dialog): Replace #if MAC_OSX with
#ifdef MAC_OSX.
(Fmac_set_font_panel_visible_p) [USE_MAC_FONT_PANEL]: Rename from
Fmac_set_font_panel_visibility. All uses changed. Rename argument
VISIBLE to FLAG.
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
---|---|
date | Tue, 13 Feb 2007 08:28:31 +0000 |
parents | 31ee92df53cf |
children | 3734c13d5900 |
files | src/macfns.c |
diffstat | 1 files changed, 31 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/macfns.c Tue Feb 13 08:28:10 2007 +0000 +++ b/src/macfns.c Tue Feb 13 08:28:31 2007 +0000 @@ -2863,9 +2863,31 @@ (frame) Lisp_Object frame; { + OSErr err; + ProcessSerialNumber front_psn; + static const ProcessSerialNumber current_psn = {0, kCurrentProcess}; + Boolean front_p; struct frame *f = check_x_frame (frame); BLOCK_INPUT; + /* Move the current process to the foreground if it is not. Don't + call SetFrontProcess if the current process is already running in + the foreground so as not to change the z-order of windows. */ + err = GetFrontProcess (&front_psn); + if (err == noErr) + err = SameProcess (&front_psn, ¤t_psn, &front_p); + if (err == noErr) + if (!front_p) + { +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 + if (FrontNonFloatingWindow () == FRAME_MAC_WINDOW (f)) + SetFrontProcessWithOptions (¤t_psn, + kSetFrontProcessFrontWindowOnly); + else +#endif + SetFrontProcess (¤t_psn); + } + #ifdef MAC_OSX ActivateWindow (ActiveNonFloatingWindow (), false); ActivateWindow (FRAME_MAC_WINDOW (f), true); @@ -4513,7 +4535,7 @@ filename[len++] = '/'; CFStringGetCString(reply.saveFileName, filename+len, sizeof (filename) - len, -#if MAC_OSX +#ifdef MAC_OSX kCFStringEncodingUTF8 #else CFStringGetSystemEncoding () @@ -4575,22 +4597,22 @@ } #if USE_MAC_FONT_PANEL -DEFUN ("mac-set-font-panel-visibility", Fmac_set_font_panel_visibility, - Smac_set_font_panel_visibility, 1, 1, 0, - doc: /* Make the font panel visible if and only if VISIBLE is non-nil. +DEFUN ("mac-set-font-panel-visible-p", Fmac_set_font_panel_visible_p, + Smac_set_font_panel_visible_p, 1, 1, 0, + doc: /* Make the font panel visible if and only if FLAG is non-nil. This is for internal use only. Use `mac-font-panel-mode' instead. */) - (visible) - Lisp_Object visible; + (flag) + Lisp_Object flag; { OSStatus err = noErr; check_mac (); BLOCK_INPUT; - if (NILP (visible) != !mac_font_panel_visible_p ()) + if (NILP (flag) != !mac_font_panel_visible_p ()) { err = mac_show_hide_font_panel (); - if (err == noErr && !NILP (visible)) + if (err == noErr && !NILP (flag)) { Lisp_Object focus_frame = x_get_focus_frame (SELECTED_FRAME ()); struct frame *f = (NILP (focus_frame) ? SELECTED_FRAME () @@ -4860,7 +4882,7 @@ #endif defsubr (&Smac_clear_font_name_table); #if USE_MAC_FONT_PANEL - defsubr (&Smac_set_font_panel_visibility); + defsubr (&Smac_set_font_panel_visible_p); #endif #if USE_ATSUI defsubr (&Smac_atsu_font_face_attributes);