From: YAMAMOTO Mitsuharu Date: Mon, 29 May 2006 09:43:03 +0000 (+0000) Subject: (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable. X-Git-Tag: emacs-pretest-22.0.90~2203 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b71c381c181bfd856ada810572697f7ec771fe26;p=emacs.git (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable. (mac_font_panel_visible_p, mac_show_hide_font_panel) [USE_MAC_FONT_PANEL]: New functions. [USE_MAC_FONT_PANEL] (mac_set_font_info_for_selection): Return immediately if font panel is not visible. --- diff --git a/src/macterm.c b/src/macterm.c index 9a2d6e2a35d..c86ad0ffde3 100644 --- a/src/macterm.c +++ b/src/macterm.c @@ -8338,6 +8338,25 @@ x_find_ccl_program (fontp) } #if USE_MAC_FONT_PANEL +/* The first call to font panel functions (FPIsFontPanelVisible, + SetFontInfoForSelection) is slow. This variable is used for + deferring such a call as much as possible. */ +static int font_panel_shown_p = 0; + +int +mac_font_panel_visible_p () +{ + return font_panel_shown_p && FPIsFontPanelVisible (); +} + +OSStatus +mac_show_hide_font_panel () +{ + font_panel_shown_p = 1; + + return FPShowHideFontPanel (); +} + OSStatus mac_set_font_info_for_selection (f, face_id, c) struct frame *f; @@ -8347,6 +8366,9 @@ mac_set_font_info_for_selection (f, face_id, c) EventTargetRef target = NULL; XFontStruct *font = NULL; + if (!mac_font_panel_visible_p ()) + return noErr; + if (f) { target = GetWindowEventTarget (FRAME_MAC_WINDOW (f));