]> code.delx.au - gnu-emacs/blobdiff - src/xfns.c
* xfns.c (x_set_icon_name): No-op if arg is non-nil and not a
[gnu-emacs] / src / xfns.c
index ede53262f5fc88fae6b4c1f2a8c7d02a57ac1aae..9b9ba48ba8287ba6f2b69dc14c5beea38130a741 100644 (file)
@@ -788,12 +788,9 @@ xg_set_icon (f, file)
     FRAME_PTR f;
     Lisp_Object file;
 {
-  struct gcpro gcpro1;
   int result = 0;
   Lisp_Object found;
 
-  GCPRO1 (found);
-
   found = x_find_image_file (file);
 
   if (! NILP (found))
@@ -819,7 +816,6 @@ xg_set_icon (f, file)
       UNBLOCK_INPUT;
     }
 
-  UNGCPRO;
   return result;
 }
 
@@ -1253,7 +1249,7 @@ x_set_icon_name (f, arg, oldval)
       if (STRINGP (oldval) && EQ (Fstring_equal (oldval, arg), Qt))
        return;
     }
-  else if (!STRINGP (oldval) && EQ (oldval, Qnil) == EQ (arg, Qnil))
+  else if (!NILP (arg) || NILP (oldval))
     return;
 
   f->icon_name = arg;
@@ -2821,12 +2817,15 @@ x_icon (f, parms)
   if (! EQ (icon_x, Qunbound))
     x_wm_set_icon_position (f, XINT (icon_x), XINT (icon_y));
 
+#if 0 /* x_get_arg removes the visibility parameter as a side effect,
+         but x_create_frame still needs it.  */
   /* Start up iconic or window? */
   x_wm_set_window_state
     (f, (EQ (x_get_arg (dpyinfo, parms, Qvisibility, 0, 0, RES_TYPE_SYMBOL),
             Qicon)
         ? IconicState
         : NormalState));
+#endif
 
   x_text_icon (f, (char *) SDATA ((!NILP (f->icon_name)
                                     ? f->icon_name
@@ -4637,6 +4636,7 @@ x_create_tip_frame (dpyinfo, parms, text)
 
   check_x ();
 
+  parms = Fcopy_alist (parms);
 
 #ifdef MULTI_KBOARD
   kb = dpyinfo->kboard;