aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan Djärv2011-12-04 14:25:16 +0100
committerJan Djärv2011-12-04 14:25:16 +0100
commita0c3fad023c0b5812db38d2f1bd41998d7c001b1 (patch)
treeefe5b9581aef9c5f5e52ce4d222b918f1138e103 /src
parentcdbbc22d1f23ad0a6a8e26a5fea5abd74f4386bc (diff)
downloademacs-a0c3fad023c0b5812db38d2f1bd41998d7c001b1.tar.gz
emacs-a0c3fad023c0b5812db38d2f1bd41998d7c001b1.zip
* nsfns.m (get_geometry_from_preferences): New function.
(Fx_create_frame): Call get_geometry_from_preferences. Fixes: debbugs:10103
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/nsfns.m35
2 files changed, 40 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index a1d5cc9d5bd..a707eaae9eb 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12011-12-04 Jan Djärv <jan.h.d@swipnet.se>
2
3 * nsfns.m (get_geometry_from_preferences): New function.
4 (Fx_create_frame): Call get_geometry_from_preferences (Bug#10103).
5
12011-12-04 Andreas Schwab <schwab@linux-m68k.org> 62011-12-04 Andreas Schwab <schwab@linux-m68k.org>
2 7
3 * emacs.c (Qkill_emacs): Define. 8 * emacs.c (Qkill_emacs): Define.
diff --git a/src/nsfns.m b/src/nsfns.m
index 280fee0b27b..482650fab2b 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -1076,7 +1076,41 @@ unwind_create_frame (Lisp_Object frame)
1076 return Qnil; 1076 return Qnil;
1077} 1077}
1078 1078
1079/*
1080 * Read geometry related parameters from preferences if not in PARMS.
1081 * Returns the union of parms and any preferences read.
1082 */
1083
1084static Lisp_Object
1085get_geometry_from_preferences (struct ns_display_info *dpyinfo,
1086 Lisp_Object parms)
1087{
1088 struct {
1089 const char *val;
1090 const char *cls;
1091 Lisp_Object tem;
1092 } r[] = {
1093 { "width", "Width", Qwidth },
1094 { "height", "Height", Qheight },
1095 { "left", "Left", Qleft },
1096 { "top", "Top", Qtop },
1097 };
1098
1099 int i;
1100 for (i = 0; i < sizeof (r)/sizeof (r[0]); ++i)
1101 {
1102 if (NILP (Fassq (r[i].tem, parms)))
1103 {
1104 Lisp_Object value
1105 = x_get_arg (dpyinfo, parms, r[i].tem, r[i].val, r[i].cls,
1106 RES_TYPE_NUMBER);
1107 if (! EQ (value, Qunbound))
1108 parms = Fcons (Fcons (r[i].tem, value), parms);
1109 }
1110 }
1079 1111
1112 return parms;
1113}
1080 1114
1081/* ========================================================================== 1115/* ==========================================================================
1082 1116
@@ -1285,6 +1319,7 @@ This function is an internal primitive--use `make-frame' instead. */)
1285 x_default_parameter (f, parms, Qtitle, Qnil, "title", "Title", 1319 x_default_parameter (f, parms, Qtitle, Qnil, "title", "Title",
1286 RES_TYPE_STRING); 1320 RES_TYPE_STRING);
1287 1321
1322 parms = get_geometry_from_preferences (dpyinfo, parms);
1288 window_prompting = x_figure_window_size (f, parms, 1); 1323 window_prompting = x_figure_window_size (f, parms, 1);
1289 1324
1290 tem = x_get_arg (dpyinfo, parms, Qunsplittable, 0, 0, RES_TYPE_BOOLEAN); 1325 tem = x_get_arg (dpyinfo, parms, Qunsplittable, 0, 0, RES_TYPE_BOOLEAN);