]> git.eshelyaron.com Git - emacs.git/commitdiff
(mac_update_title_bar) [TARGET_API_MAC_CARBON]: Call
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Fri, 22 Dec 2006 08:27:36 +0000 (08:27 +0000)
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Fri, 22 Dec 2006 08:27:36 +0000 (08:27 +0000)
mac_update_proxy_icon also when buffer modification flag changed.
[TARGET_API_MAC_CARBON] (mac_update_proxy_icon): Don't update alias,
but compare FSRef/FSSpec of resolved alias.

src/ChangeLog
src/macfns.c

index 740f9b229cff2d16cee8ff1e32864bd3a6e3dc94..3428722beca5f5a6c5081a5c6d3ef5622e14e239 100644 (file)
@@ -1,3 +1,10 @@
+2006-12-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * macfns.c (mac_update_title_bar) [TARGET_API_MAC_CARBON]: Call
+       mac_update_proxy_icon also when buffer modification flag changed.
+       [TARGET_API_MAC_CARBON] (mac_update_proxy_icon): Don't update alias,
+       but compare FSRef/FSSpec of resolved alias.
+
 2006-12-21  Kim F. Storm  <storm@cua.dk>
 
        * w32.c (_sys_wait_accept): Fix handle leak.
index 521156a0de60920d921acbd116fd4ca20db934c6..21cff69dd4086bf9ed877fac4fd4f7077f2495b4 100644 (file)
@@ -1969,9 +1969,9 @@ mac_update_proxy_icon (f)
     {
       AEDesc desc;
 #ifdef MAC_OSX
-      FSRef fref;
+      FSRef fref, fref_proxy;
 #else
-      FSSpec fss;
+      FSSpec fss, fss_proxy;
 #endif
       Boolean changed;
       Lisp_Object encoded_file_name = ENCODE_FILE (file_name);
@@ -1997,10 +1997,19 @@ mac_update_proxy_icon (f)
        {
          if (alias)
            {
+             /* (FS)ResolveAlias never sets `changed' to true if
+                `alias' is minimal.  */
 #ifdef MAC_OSX
-             err = FSUpdateAlias (NULL, &fref, alias, &changed);
+             err = FSResolveAlias (NULL, alias, &fref_proxy, &changed);
+             if (err == noErr)
+               err = FSCompareFSRefs (&fref, &fref_proxy);
 #else
-             err = UpdateAlias (NULL, &fss, alias, &changed);
+             err = ResolveAlias (NULL, alias, &fss_proxy, &changed);
+             if (err == noErr)
+               err = !(fss.vRefNum == fss_proxy.vRefNum
+                       && fss.parID == fss_proxy.parID
+                       && EqualString (fss.name, fss_proxy.name,
+                                       false, true));
 #endif
            }
          if (err != noErr || alias == NULL)
@@ -2051,11 +2060,11 @@ mac_update_title_bar (f, save_match_data)
         confusing.  */
       || (!MINI_WINDOW_P (w)
          && (modified_p != !NILP (w->last_had_star))))
-    SetWindowModified (FRAME_MAC_WINDOW (f),
-                      !MINI_WINDOW_P (w) && modified_p);
-
-  if (windows_or_buffers_changed)
-    mac_update_proxy_icon (f);
+    {
+      SetWindowModified (FRAME_MAC_WINDOW (f),
+                        !MINI_WINDOW_P (w) && modified_p);
+      mac_update_proxy_icon (f);
+    }
 #endif
 }