summaryrefslogtreecommitdiff
path: root/src/frame.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/frame.c')
-rw-r--r--src/frame.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/frame.c b/src/frame.c
index 6b848ea2fef..c9061423193 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -3819,8 +3819,21 @@ x_get_arg (dpyinfo, alist, param, attribute, class, type)
register Lisp_Object tem;
tem = Fassq (param, alist);
- if (EQ (tem, Qnil))
+
+ if (!NILP (tem))
+ {
+ /* If we find this parm in ALIST, clear it out
+ so that it won't be "left over" at the end. */
+#ifdef HAVE_X_WINDOWS /* macfns.c and w32fns.c have not yet
+ been changed to cope with this. */
+ XSETCAR (tem, Qnil);
+#endif
+ }
+ else
tem = Fassq (param, Vdefault_frame_alist);
+
+ /* If it wasn't specified in ALIST or the Lisp-level defaults,
+ look in the X resources. */
if (EQ (tem, Qnil))
{
if (attribute)
@@ -3904,7 +3917,7 @@ x_frame_get_and_record_arg (f, alist, param, attribute, class, type)
value = x_get_arg (FRAME_X_DISPLAY_INFO (f), alist, param,
attribute, class, type);
- if (! NILP (value))
+ if (! NILP (value) && ! EQ (value, Qunbound))
store_frame_param (f, param, value);
return value;