]> git.eshelyaron.com Git - emacs.git/commitdiff
(font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Mon, 29 May 2006 09:43:03 +0000 (09:43 +0000)
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Mon, 29 May 2006 09:43:03 +0000 (09:43 +0000)
(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.

src/macterm.c

index 9a2d6e2a35d024b9285e49e3383c8cd9f924075e..c86ad0ffde3fdb2d15cea9cc6de94f1acbc09cf1 100644 (file)
@@ -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));