aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKim F. Storm2003-05-24 21:57:45 +0000
committerKim F. Storm2003-05-24 21:57:45 +0000
commit5af5757be47b6b88c907f2abd132861e9af4cc9f (patch)
treed8cee752d2a4a3429d70059a170fe48803432d08 /src
parent7df0201613a0ddb3ce93cc389532df63eabaead0 (diff)
downloademacs-5af5757be47b6b88c907f2abd132861e9af4cc9f.tar.gz
emacs-5af5757be47b6b88c907f2abd132861e9af4cc9f.zip
Make (many) trivial substitutions for renamed and
new macros in dispextern.h, frame.h and window.h. (make_frame): Initialize left_fringe_width, right_fringe_width, fringe_cols, scroll_bar_actual_width, border_width, internal_border_width, column_width, line_height, x_pixels_diff, y_pixels_diff, want_fullscreen, size_hint_flags, and win_gravity members with values suitable for a non-window frames.
Diffstat (limited to 'src')
-rw-r--r--src/frame.c301
1 files changed, 148 insertions, 153 deletions
diff --git a/src/frame.c b/src/frame.c
index 580dae02d5e..dbaaac0c387 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -126,13 +126,13 @@ set_menu_bar_lines_1 (window, n)
126 struct window *w = XWINDOW (window); 126 struct window *w = XWINDOW (window);
127 127
128 XSETFASTINT (w->last_modified, 0); 128 XSETFASTINT (w->last_modified, 0);
129 XSETFASTINT (w->top, XFASTINT (w->top) + n); 129 XSETFASTINT (w->top_line, XFASTINT (w->top_line) + n);
130 XSETFASTINT (w->height, XFASTINT (w->height) - n); 130 XSETFASTINT (w->total_lines, XFASTINT (w->total_lines) - n);
131 131
132 if (INTEGERP (w->orig_top)) 132 if (INTEGERP (w->orig_top_line))
133 XSETFASTINT (w->orig_top, XFASTINT (w->orig_top) + n); 133 XSETFASTINT (w->orig_top_line, XFASTINT (w->orig_top_line) + n);
134 if (INTEGERP (w->orig_height)) 134 if (INTEGERP (w->orig_total_lines))
135 XSETFASTINT (w->orig_height, XFASTINT (w->orig_height) - n); 135 XSETFASTINT (w->orig_total_lines, XFASTINT (w->orig_total_lines) - n);
136 136
137 /* Handle just the top child in a vertical split. */ 137 /* Handle just the top child in a vertical split. */
138 if (!NILP (w->vchild)) 138 if (!NILP (w->vchild))
@@ -285,6 +285,17 @@ make_frame (mini_p)
285 f->tool_bar_items = Qnil; 285 f->tool_bar_items = Qnil;
286 f->desired_tool_bar_string = f->current_tool_bar_string = Qnil; 286 f->desired_tool_bar_string = f->current_tool_bar_string = Qnil;
287 f->n_tool_bar_items = 0; 287 f->n_tool_bar_items = 0;
288 f->left_fringe_width = f->right_fringe_width = 0;
289 f->fringe_cols = 0;
290 f->scroll_bar_actual_width = 0;
291 f->border_width = 0;
292 f->internal_border_width = 0;
293 f->column_width = 1; /* !FRAME_WINDOW_P value */
294 f->line_height = 1; /* !FRAME_WINDOW_P value */
295 f->x_pixels_diff = f->y_pixels_diff = 0;
296 f->want_fullscreen = FULLSCREEN_NONE;
297 f->size_hint_flags = 0;
298 f->win_gravity = 0;
288 299
289 root_window = make_window (); 300 root_window = make_window ();
290 if (mini_p) 301 if (mini_p)
@@ -309,17 +320,17 @@ make_frame (mini_p)
309 just so that there is "something there." 320 just so that there is "something there."
310 Correct size will be set up later with change_frame_size. */ 321 Correct size will be set up later with change_frame_size. */
311 322
312 SET_FRAME_WIDTH (f, 10); 323 SET_FRAME_COLS (f, 10);
313 f->height = 10; 324 FRAME_LINES (f) = 10;
314 325
315 XSETFASTINT (XWINDOW (root_window)->width, 10); 326 XSETFASTINT (XWINDOW (root_window)->total_cols, 10);
316 XSETFASTINT (XWINDOW (root_window)->height, (mini_p ? 9 : 10)); 327 XSETFASTINT (XWINDOW (root_window)->total_lines, (mini_p ? 9 : 10));
317 328
318 if (mini_p) 329 if (mini_p)
319 { 330 {
320 XSETFASTINT (XWINDOW (mini_window)->width, 10); 331 XSETFASTINT (XWINDOW (mini_window)->total_cols, 10);
321 XSETFASTINT (XWINDOW (mini_window)->top, 9); 332 XSETFASTINT (XWINDOW (mini_window)->top_line, 9);
322 XSETFASTINT (XWINDOW (mini_window)->height, 1); 333 XSETFASTINT (XWINDOW (mini_window)->total_lines, 1);
323 } 334 }
324 335
325 /* Choose a buffer for the frame's root window. */ 336 /* Choose a buffer for the frame's root window. */
@@ -339,7 +350,7 @@ make_frame (mini_p)
339 don't have the right size, glyph matrices aren't initialized 350 don't have the right size, glyph matrices aren't initialized
340 etc. Running Lisp functions at this point surely ends in a 351 etc. Running Lisp functions at this point surely ends in a
341 SEGV. */ 352 SEGV. */
342 set_window_buffer (root_window, buf, 0); 353 set_window_buffer (root_window, buf, 0, 0);
343 f->buffer_list = Fcons (buf, Qnil); 354 f->buffer_list = Fcons (buf, Qnil);
344 } 355 }
345 356
@@ -350,7 +361,7 @@ make_frame (mini_p)
350 (NILP (Vminibuffer_list) 361 (NILP (Vminibuffer_list)
351 ? get_minibuffer (0) 362 ? get_minibuffer (0)
352 : Fcar (Vminibuffer_list)), 363 : Fcar (Vminibuffer_list)),
353 0); 364 0, 0);
354 } 365 }
355 366
356 f->root_window = root_window; 367 f->root_window = root_window;
@@ -415,7 +426,7 @@ make_frame_without_minibuffer (mini_window, kb, display)
415 Fset_window_buffer (mini_window, 426 Fset_window_buffer (mini_window,
416 (NILP (Vminibuffer_list) 427 (NILP (Vminibuffer_list)
417 ? get_minibuffer (0) 428 ? get_minibuffer (0)
418 : Fcar (Vminibuffer_list))); 429 : Fcar (Vminibuffer_list)), Qnil);
419 return f; 430 return f;
420} 431}
421 432
@@ -453,7 +464,7 @@ make_minibuffer_frame ()
453 Fset_window_buffer (mini_window, 464 Fset_window_buffer (mini_window,
454 (NILP (Vminibuffer_list) 465 (NILP (Vminibuffer_list)
455 ? get_minibuffer (0) 466 ? get_minibuffer (0)
456 : Fcar (Vminibuffer_list))); 467 : Fcar (Vminibuffer_list)), Qnil);
457 return f; 468 return f;
458} 469}
459#endif /* HAVE_WINDOW_SYSTEM */ 470#endif /* HAVE_WINDOW_SYSTEM */
@@ -573,8 +584,8 @@ Note that changing the size of one terminal frame automatically affects all. */
573 584
574 f = make_terminal_frame (); 585 f = make_terminal_frame ();
575 586
576 change_frame_size (f, FRAME_HEIGHT (sf), 587 change_frame_size (f, FRAME_LINES (sf),
577 FRAME_WIDTH (sf), 0, 0, 0); 588 FRAME_COLS (sf), 0, 0, 0);
578 adjust_glyphs (f); 589 adjust_glyphs (f);
579 calculate_costs (f); 590 calculate_costs (f);
580 XSETFRAME (frame, f); 591 XSETFRAME (frame, f);
@@ -1228,7 +1239,7 @@ The functions are run with one arg, the frame to be deleted. */)
1228 if (EQ (f->minibuffer_window, minibuf_window)) 1239 if (EQ (f->minibuffer_window, minibuf_window))
1229 { 1240 {
1230 Fset_window_buffer (sf->minibuffer_window, 1241 Fset_window_buffer (sf->minibuffer_window,
1231 XWINDOW (minibuf_window)->buffer); 1242 XWINDOW (minibuf_window)->buffer, Qnil);
1232 minibuf_window = sf->minibuffer_window; 1243 minibuf_window = sf->minibuffer_window;
1233 1244
1234 /* If the dying minibuffer window was selected, 1245 /* If the dying minibuffer window was selected,
@@ -1603,7 +1614,7 @@ but if the second optional argument FORCE is non-nil, you may do so. */)
1603 { 1614 {
1604 struct frame *sf = XFRAME (selected_frame); 1615 struct frame *sf = XFRAME (selected_frame);
1605 Fset_window_buffer (sf->minibuffer_window, 1616 Fset_window_buffer (sf->minibuffer_window,
1606 XWINDOW (minibuf_window)->buffer); 1617 XWINDOW (minibuf_window)->buffer, Qnil);
1607 minibuf_window = sf->minibuffer_window; 1618 minibuf_window = sf->minibuffer_window;
1608 } 1619 }
1609 1620
@@ -1642,7 +1653,7 @@ If omitted, FRAME defaults to the currently selected frame. */)
1642 { 1653 {
1643 struct frame *sf = XFRAME (selected_frame); 1654 struct frame *sf = XFRAME (selected_frame);
1644 Fset_window_buffer (sf->minibuffer_window, 1655 Fset_window_buffer (sf->minibuffer_window,
1645 XWINDOW (minibuf_window)->buffer); 1656 XWINDOW (minibuf_window)->buffer, Qnil);
1646 minibuf_window = sf->minibuffer_window; 1657 minibuf_window = sf->minibuffer_window;
1647 } 1658 }
1648 1659
@@ -2080,9 +2091,9 @@ If FRAME is omitted, return information on the currently selected frame. */)
2080 :"tty")); 2091 :"tty"));
2081 } 2092 }
2082 store_in_alist (&alist, Qname, f->name); 2093 store_in_alist (&alist, Qname, f->name);
2083 height = (FRAME_NEW_HEIGHT (f) ? FRAME_NEW_HEIGHT (f) : FRAME_HEIGHT (f)); 2094 height = (f->new_text_lines ? f->new_text_lines : FRAME_LINES (f));
2084 store_in_alist (&alist, Qheight, make_number (height)); 2095 store_in_alist (&alist, Qheight, make_number (height));
2085 width = (FRAME_NEW_WIDTH (f) ? FRAME_NEW_WIDTH (f) : FRAME_WIDTH (f)); 2096 width = (f->new_text_cols ? f->new_text_cols : FRAME_COLS (f));
2086 store_in_alist (&alist, Qwidth, make_number (width)); 2097 store_in_alist (&alist, Qwidth, make_number (width));
2087 store_in_alist (&alist, Qmodeline, (FRAME_WANTS_MODELINE_P (f) ? Qt : Qnil)); 2098 store_in_alist (&alist, Qmodeline, (FRAME_WANTS_MODELINE_P (f) ? Qt : Qnil));
2088 store_in_alist (&alist, Qminibuffer, 2099 store_in_alist (&alist, Qminibuffer,
@@ -2336,7 +2347,7 @@ If FRAME is omitted, the selected frame is used. */)
2336 return make_number (x_pixel_height (f)); 2347 return make_number (x_pixel_height (f));
2337 else 2348 else
2338#endif 2349#endif
2339 return make_number (FRAME_HEIGHT (f)); 2350 return make_number (FRAME_LINES (f));
2340} 2351}
2341 2352
2342DEFUN ("frame-pixel-width", Fframe_pixel_width, 2353DEFUN ("frame-pixel-width", Fframe_pixel_width,
@@ -2359,7 +2370,7 @@ If FRAME is omitted, the selected frame is used. */)
2359 return make_number (x_pixel_width (f)); 2370 return make_number (x_pixel_width (f));
2360 else 2371 else
2361#endif 2372#endif
2362 return make_number (FRAME_WIDTH (f)); 2373 return make_number (FRAME_COLS (f));
2363} 2374}
2364 2375
2365DEFUN ("set-frame-height", Fset_frame_height, Sset_frame_height, 2, 3, 0, 2376DEFUN ("set-frame-height", Fset_frame_height, Sset_frame_height, 2, 3, 0,
@@ -2381,8 +2392,8 @@ but that the idea of the actual height of the frame should not be changed. */)
2381#ifdef HAVE_WINDOW_SYSTEM 2392#ifdef HAVE_WINDOW_SYSTEM
2382 if (FRAME_WINDOW_P (f)) 2393 if (FRAME_WINDOW_P (f))
2383 { 2394 {
2384 if (XINT (lines) != f->height) 2395 if (XINT (lines) != FRAME_LINES (f))
2385 x_set_window_size (f, 1, f->width, XINT (lines)); 2396 x_set_window_size (f, 1, FRAME_COLS (f), XINT (lines));
2386 do_pending_window_change (0); 2397 do_pending_window_change (0);
2387 } 2398 }
2388 else 2399 else
@@ -2409,8 +2420,8 @@ but that the idea of the actual width of the frame should not be changed. */)
2409#ifdef HAVE_WINDOW_SYSTEM 2420#ifdef HAVE_WINDOW_SYSTEM
2410 if (FRAME_WINDOW_P (f)) 2421 if (FRAME_WINDOW_P (f))
2411 { 2422 {
2412 if (XINT (cols) != f->width) 2423 if (XINT (cols) != FRAME_COLS (f))
2413 x_set_window_size (f, 1, XINT (cols), f->height); 2424 x_set_window_size (f, 1, XINT (cols), FRAME_LINES (f));
2414 do_pending_window_change (0); 2425 do_pending_window_change (0);
2415 } 2426 }
2416 else 2427 else
@@ -2435,8 +2446,9 @@ DEFUN ("set-frame-size", Fset_frame_size, Sset_frame_size, 3, 3, 0,
2435#ifdef HAVE_WINDOW_SYSTEM 2446#ifdef HAVE_WINDOW_SYSTEM
2436 if (FRAME_WINDOW_P (f)) 2447 if (FRAME_WINDOW_P (f))
2437 { 2448 {
2438 if (XINT (rows) != f->height || XINT (cols) != f->width 2449 if (XINT (rows) != FRAME_LINES (f)
2439 || FRAME_NEW_HEIGHT (f) || FRAME_NEW_WIDTH (f)) 2450 || XINT (cols) != FRAME_COLS (f)
2451 || f->new_text_lines || f->new_text_cols)
2440 x_set_window_size (f, 1, XINT (cols), XINT (rows)); 2452 x_set_window_size (f, 1, XINT (cols), XINT (rows));
2441 do_pending_window_change (0); 2453 do_pending_window_change (0);
2442 } 2454 }
@@ -2541,32 +2553,31 @@ x_fullscreen_adjust (f, width, height, top_pos, left_pos)
2541 int *top_pos; 2553 int *top_pos;
2542 int *left_pos; 2554 int *left_pos;
2543{ 2555{
2544 int newwidth = f->width, newheight = f->height; 2556 int newwidth = FRAME_COLS (f);
2557 int newheight = FRAME_LINES (f);
2545 2558
2546 *top_pos = FRAME_X_OUTPUT (f)->top_pos; 2559 *top_pos = f->top_pos;
2547 *left_pos = FRAME_X_OUTPUT (f)->left_pos; 2560 *left_pos = f->left_pos;
2548 2561
2549 if (FRAME_X_OUTPUT (f)->want_fullscreen & FULLSCREEN_HEIGHT) 2562 if (f->want_fullscreen & FULLSCREEN_HEIGHT)
2550 { 2563 {
2551 int ph; 2564 int ph;
2552 2565
2553 ph = FRAME_X_DISPLAY_INFO (f)->height; 2566 ph = FRAME_X_DISPLAY_INFO (f)->height;
2554 newheight = PIXEL_TO_CHAR_HEIGHT (f, ph); 2567 newheight = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, ph);
2555 ph = CHAR_TO_PIXEL_HEIGHT (f, newheight) 2568 ph = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, newheight) - f->y_pixels_diff;
2556 - FRAME_X_OUTPUT (f)->y_pixels_diff; 2569 newheight = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, ph);
2557 newheight = PIXEL_TO_CHAR_HEIGHT (f, ph);
2558 *top_pos = 0; 2570 *top_pos = 0;
2559 } 2571 }
2560 2572
2561 if (FRAME_X_OUTPUT (f)->want_fullscreen & FULLSCREEN_WIDTH) 2573 if (f->want_fullscreen & FULLSCREEN_WIDTH)
2562 { 2574 {
2563 int pw; 2575 int pw;
2564 2576
2565 pw = FRAME_X_DISPLAY_INFO (f)->width; 2577 pw = FRAME_X_DISPLAY_INFO (f)->width;
2566 newwidth = PIXEL_TO_CHAR_WIDTH (f, pw); 2578 newwidth = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, pw);
2567 pw = CHAR_TO_PIXEL_WIDTH (f, newwidth) 2579 pw = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, newwidth) - f->x_pixels_diff;
2568 - FRAME_X_OUTPUT (f)->x_pixels_diff; 2580 newwidth = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, pw);
2569 newwidth = PIXEL_TO_CHAR_WIDTH (f, pw);
2570 *left_pos = 0; 2581 *left_pos = 0;
2571 } 2582 }
2572 2583
@@ -2586,8 +2597,7 @@ x_fullscreen_move (f, new_top, new_left)
2586 int new_top; 2597 int new_top;
2587 int new_left; 2598 int new_left;
2588{ 2599{
2589 if (new_top != FRAME_X_OUTPUT (f)->top_pos 2600 if (new_top != f->top_pos || new_left != f->left_pos)
2590 || new_left != FRAME_X_OUTPUT (f)->left_pos)
2591 { 2601 {
2592 int move_x = new_left; 2602 int move_x = new_left;
2593 int move_y = new_top; 2603 int move_y = new_top;
@@ -2597,7 +2607,7 @@ x_fullscreen_move (f, new_top, new_left)
2597 move_y += FRAME_X_OUTPUT (f)->y_pixels_outer_diff; 2607 move_y += FRAME_X_OUTPUT (f)->y_pixels_outer_diff;
2598#endif 2608#endif
2599 2609
2600 FRAME_X_OUTPUT (f)->want_fullscreen |= FULLSCREEN_MOVE_WAIT; 2610 f->want_fullscreen |= FULLSCREEN_MOVE_WAIT;
2601 x_set_offset (f, move_x, move_y, 1); 2611 x_set_offset (f, move_x, move_y, 1);
2602 } 2612 }
2603} 2613}
@@ -2668,15 +2678,8 @@ x_set_frame_parameters (f, alist)
2668 icon_left = icon_top = Qunbound; 2678 icon_left = icon_top = Qunbound;
2669 2679
2670 /* Provide default values for HEIGHT and WIDTH. */ 2680 /* Provide default values for HEIGHT and WIDTH. */
2671 if (FRAME_NEW_WIDTH (f)) 2681 width = (f->new_text_cols ? f->new_text_cols : FRAME_COLS (f));
2672 width = FRAME_NEW_WIDTH (f); 2682 height = (f->new_text_lines ? f->new_text_lines : FRAME_LINES (f));
2673 else
2674 width = FRAME_WIDTH (f);
2675
2676 if (FRAME_NEW_HEIGHT (f))
2677 height = FRAME_NEW_HEIGHT (f);
2678 else
2679 height = FRAME_HEIGHT (f);
2680 2683
2681 /* Process foreground_color and background_color before anything else. 2684 /* Process foreground_color and background_color before anything else.
2682 They are independent of other properties, but other properties (e.g., 2685 They are independent of other properties, but other properties (e.g.,
@@ -2760,18 +2763,18 @@ x_set_frame_parameters (f, alist)
2760 if (EQ (left, Qunbound)) 2763 if (EQ (left, Qunbound))
2761 { 2764 {
2762 left_no_change = 1; 2765 left_no_change = 1;
2763 if (FRAME_X_OUTPUT (f)->left_pos < 0) 2766 if (f->left_pos < 0)
2764 left = Fcons (Qplus, Fcons (make_number (FRAME_X_OUTPUT (f)->left_pos), Qnil)); 2767 left = Fcons (Qplus, Fcons (make_number (f->left_pos), Qnil));
2765 else 2768 else
2766 XSETINT (left, FRAME_X_OUTPUT (f)->left_pos); 2769 XSETINT (left, f->left_pos);
2767 } 2770 }
2768 if (EQ (top, Qunbound)) 2771 if (EQ (top, Qunbound))
2769 { 2772 {
2770 top_no_change = 1; 2773 top_no_change = 1;
2771 if (FRAME_X_OUTPUT (f)->top_pos < 0) 2774 if (f->top_pos < 0)
2772 top = Fcons (Qplus, Fcons (make_number (FRAME_X_OUTPUT (f)->top_pos), Qnil)); 2775 top = Fcons (Qplus, Fcons (make_number (f->top_pos), Qnil));
2773 else 2776 else
2774 XSETINT (top, FRAME_X_OUTPUT (f)->top_pos); 2777 XSETINT (top, f->top_pos);
2775 } 2778 }
2776 2779
2777 /* If one of the icon positions was not set, preserve or default it. */ 2780 /* If one of the icon positions was not set, preserve or default it. */
@@ -2823,35 +2826,35 @@ x_set_frame_parameters (f, alist)
2823 2826
2824 XSETFRAME (frame, f); 2827 XSETFRAME (frame, f);
2825 2828
2826 if (width != FRAME_WIDTH (f) 2829 if (width != FRAME_COLS (f)
2827 || height != FRAME_HEIGHT (f) 2830 || height != FRAME_LINES (f)
2828 || FRAME_NEW_HEIGHT (f) || FRAME_NEW_WIDTH (f)) 2831 || f->new_text_lines || f->new_text_cols)
2829 Fset_frame_size (frame, make_number (width), make_number (height)); 2832 Fset_frame_size (frame, make_number (width), make_number (height));
2830 2833
2831 if ((!NILP (left) || !NILP (top)) 2834 if ((!NILP (left) || !NILP (top))
2832 && ! (left_no_change && top_no_change) 2835 && ! (left_no_change && top_no_change)
2833 && ! (NUMBERP (left) && XINT (left) == FRAME_X_OUTPUT (f)->left_pos 2836 && ! (NUMBERP (left) && XINT (left) == f->left_pos
2834 && NUMBERP (top) && XINT (top) == FRAME_X_OUTPUT (f)->top_pos)) 2837 && NUMBERP (top) && XINT (top) == f->top_pos))
2835 { 2838 {
2836 int leftpos = 0; 2839 int leftpos = 0;
2837 int toppos = 0; 2840 int toppos = 0;
2838 2841
2839 /* Record the signs. */ 2842 /* Record the signs. */
2840 FRAME_X_OUTPUT (f)->size_hint_flags &= ~ (XNegative | YNegative); 2843 f->size_hint_flags &= ~ (XNegative | YNegative);
2841 if (EQ (left, Qminus)) 2844 if (EQ (left, Qminus))
2842 FRAME_X_OUTPUT (f)->size_hint_flags |= XNegative; 2845 f->size_hint_flags |= XNegative;
2843 else if (INTEGERP (left)) 2846 else if (INTEGERP (left))
2844 { 2847 {
2845 leftpos = XINT (left); 2848 leftpos = XINT (left);
2846 if (leftpos < 0) 2849 if (leftpos < 0)
2847 FRAME_X_OUTPUT (f)->size_hint_flags |= XNegative; 2850 f->size_hint_flags |= XNegative;
2848 } 2851 }
2849 else if (CONSP (left) && EQ (XCAR (left), Qminus) 2852 else if (CONSP (left) && EQ (XCAR (left), Qminus)
2850 && CONSP (XCDR (left)) 2853 && CONSP (XCDR (left))
2851 && INTEGERP (XCAR (XCDR (left)))) 2854 && INTEGERP (XCAR (XCDR (left))))
2852 { 2855 {
2853 leftpos = - XINT (XCAR (XCDR (left))); 2856 leftpos = - XINT (XCAR (XCDR (left)));
2854 FRAME_X_OUTPUT (f)->size_hint_flags |= XNegative; 2857 f->size_hint_flags |= XNegative;
2855 } 2858 }
2856 else if (CONSP (left) && EQ (XCAR (left), Qplus) 2859 else if (CONSP (left) && EQ (XCAR (left), Qplus)
2857 && CONSP (XCDR (left)) 2860 && CONSP (XCDR (left))
@@ -2861,19 +2864,19 @@ x_set_frame_parameters (f, alist)
2861 } 2864 }
2862 2865
2863 if (EQ (top, Qminus)) 2866 if (EQ (top, Qminus))
2864 FRAME_X_OUTPUT (f)->size_hint_flags |= YNegative; 2867 f->size_hint_flags |= YNegative;
2865 else if (INTEGERP (top)) 2868 else if (INTEGERP (top))
2866 { 2869 {
2867 toppos = XINT (top); 2870 toppos = XINT (top);
2868 if (toppos < 0) 2871 if (toppos < 0)
2869 FRAME_X_OUTPUT (f)->size_hint_flags |= YNegative; 2872 f->size_hint_flags |= YNegative;
2870 } 2873 }
2871 else if (CONSP (top) && EQ (XCAR (top), Qminus) 2874 else if (CONSP (top) && EQ (XCAR (top), Qminus)
2872 && CONSP (XCDR (top)) 2875 && CONSP (XCDR (top))
2873 && INTEGERP (XCAR (XCDR (top)))) 2876 && INTEGERP (XCAR (XCDR (top))))
2874 { 2877 {
2875 toppos = - XINT (XCAR (XCDR (top))); 2878 toppos = - XINT (XCAR (XCDR (top)));
2876 FRAME_X_OUTPUT (f)->size_hint_flags |= YNegative; 2879 f->size_hint_flags |= YNegative;
2877 } 2880 }
2878 else if (CONSP (top) && EQ (XCAR (top), Qplus) 2881 else if (CONSP (top) && EQ (XCAR (top), Qplus)
2879 && CONSP (XCDR (top)) 2882 && CONSP (XCDR (top))
@@ -2884,10 +2887,10 @@ x_set_frame_parameters (f, alist)
2884 2887
2885 2888
2886 /* Store the numeric value of the position. */ 2889 /* Store the numeric value of the position. */
2887 FRAME_X_OUTPUT (f)->top_pos = toppos; 2890 f->top_pos = toppos;
2888 FRAME_X_OUTPUT (f)->left_pos = leftpos; 2891 f->left_pos = leftpos;
2889 2892
2890 FRAME_X_OUTPUT (f)->win_gravity = NorthWestGravity; 2893 f->win_gravity = NorthWestGravity;
2891 2894
2892 /* Actually set that position, and convert to absolute. */ 2895 /* Actually set that position, and convert to absolute. */
2893 x_set_offset (f, leftpos, toppos, -1); 2896 x_set_offset (f, leftpos, toppos, -1);
@@ -2918,31 +2921,31 @@ x_report_frame_params (f, alistptr)
2918 2921
2919 /* Represent negative positions (off the top or left screen edge) 2922 /* Represent negative positions (off the top or left screen edge)
2920 in a way that Fmodify_frame_parameters will understand correctly. */ 2923 in a way that Fmodify_frame_parameters will understand correctly. */
2921 XSETINT (tem, FRAME_X_OUTPUT (f)->left_pos); 2924 XSETINT (tem, f->left_pos);
2922 if (FRAME_X_OUTPUT (f)->left_pos >= 0) 2925 if (f->left_pos >= 0)
2923 store_in_alist (alistptr, Qleft, tem); 2926 store_in_alist (alistptr, Qleft, tem);
2924 else 2927 else
2925 store_in_alist (alistptr, Qleft, Fcons (Qplus, Fcons (tem, Qnil))); 2928 store_in_alist (alistptr, Qleft, Fcons (Qplus, Fcons (tem, Qnil)));
2926 2929
2927 XSETINT (tem, FRAME_X_OUTPUT (f)->top_pos); 2930 XSETINT (tem, f->top_pos);
2928 if (FRAME_X_OUTPUT (f)->top_pos >= 0) 2931 if (f->top_pos >= 0)
2929 store_in_alist (alistptr, Qtop, tem); 2932 store_in_alist (alistptr, Qtop, tem);
2930 else 2933 else
2931 store_in_alist (alistptr, Qtop, Fcons (Qplus, Fcons (tem, Qnil))); 2934 store_in_alist (alistptr, Qtop, Fcons (Qplus, Fcons (tem, Qnil)));
2932 2935
2933 store_in_alist (alistptr, Qborder_width, 2936 store_in_alist (alistptr, Qborder_width,
2934 make_number (FRAME_X_OUTPUT (f)->border_width)); 2937 make_number (f->border_width));
2935 store_in_alist (alistptr, Qinternal_border_width, 2938 store_in_alist (alistptr, Qinternal_border_width,
2936 make_number (FRAME_X_OUTPUT (f)->internal_border_width)); 2939 make_number (FRAME_INTERNAL_BORDER_WIDTH (f)));
2937 store_in_alist (alistptr, Qleft_fringe, 2940 store_in_alist (alistptr, Qleft_fringe,
2938 make_number (FRAME_X_OUTPUT (f)->left_fringe_width)); 2941 make_number (FRAME_LEFT_FRINGE_WIDTH (f)));
2939 store_in_alist (alistptr, Qright_fringe, 2942 store_in_alist (alistptr, Qright_fringe,
2940 make_number (FRAME_X_OUTPUT (f)->right_fringe_width)); 2943 make_number (FRAME_RIGHT_FRINGE_WIDTH (f)));
2941 store_in_alist (alistptr, Qscroll_bar_width, 2944 store_in_alist (alistptr, Qscroll_bar_width,
2942 (! FRAME_HAS_VERTICAL_SCROLL_BARS (f) 2945 (! FRAME_HAS_VERTICAL_SCROLL_BARS (f)
2943 ? make_number (0) 2946 ? make_number (0)
2944 : FRAME_SCROLL_BAR_PIXEL_WIDTH (f) > 0 2947 : FRAME_CONFIG_SCROLL_BAR_WIDTH (f) > 0
2945 ? make_number (FRAME_SCROLL_BAR_PIXEL_WIDTH (f)) 2948 ? make_number (FRAME_CONFIG_SCROLL_BAR_WIDTH (f))
2946 /* nil means "use default width" 2949 /* nil means "use default width"
2947 for non-toolkit scroll bar. 2950 for non-toolkit scroll bar.
2948 ruler-mode.el depends on this. */ 2951 ruler-mode.el depends on this. */
@@ -2988,13 +2991,13 @@ x_set_fullscreen (f, new_value, old_value)
2988{ 2991{
2989#ifndef HAVE_CARBON 2992#ifndef HAVE_CARBON
2990 if (NILP (new_value)) 2993 if (NILP (new_value))
2991 FRAME_X_OUTPUT (f)->want_fullscreen = FULLSCREEN_NONE; 2994 f->want_fullscreen = FULLSCREEN_NONE;
2992 else if (EQ (new_value, Qfullboth)) 2995 else if (EQ (new_value, Qfullboth))
2993 FRAME_X_OUTPUT (f)->want_fullscreen = FULLSCREEN_BOTH; 2996 f->want_fullscreen = FULLSCREEN_BOTH;
2994 else if (EQ (new_value, Qfullwidth)) 2997 else if (EQ (new_value, Qfullwidth))
2995 FRAME_X_OUTPUT (f)->want_fullscreen = FULLSCREEN_WIDTH; 2998 f->want_fullscreen = FULLSCREEN_WIDTH;
2996 else if (EQ (new_value, Qfullheight)) 2999 else if (EQ (new_value, Qfullheight))
2997 FRAME_X_OUTPUT (f)->want_fullscreen = FULLSCREEN_HEIGHT; 3000 f->want_fullscreen = FULLSCREEN_HEIGHT;
2998#endif 3001#endif
2999} 3002}
3000 3003
@@ -3112,7 +3115,7 @@ x_set_border_width (f, arg, oldval)
3112{ 3115{
3113 CHECK_NUMBER (arg); 3116 CHECK_NUMBER (arg);
3114 3117
3115 if (XINT (arg) == FRAME_X_OUTPUT (f)->border_width) 3118 if (XINT (arg) == f->border_width)
3116 return; 3119 return;
3117 3120
3118#ifndef HAVE_CARBON 3121#ifndef HAVE_CARBON
@@ -3120,7 +3123,7 @@ x_set_border_width (f, arg, oldval)
3120 error ("Cannot change the border width of a window"); 3123 error ("Cannot change the border width of a window");
3121#endif /* MAC_TODO */ 3124#endif /* MAC_TODO */
3122 3125
3123 FRAME_X_OUTPUT (f)->border_width = XINT (arg); 3126 f->border_width = XINT (arg);
3124} 3127}
3125 3128
3126void 3129void
@@ -3128,24 +3131,24 @@ x_set_internal_border_width (f, arg, oldval)
3128 struct frame *f; 3131 struct frame *f;
3129 Lisp_Object arg, oldval; 3132 Lisp_Object arg, oldval;
3130{ 3133{
3131 int old = FRAME_X_OUTPUT (f)->internal_border_width; 3134 int old = FRAME_INTERNAL_BORDER_WIDTH (f);
3132 3135
3133 CHECK_NUMBER (arg); 3136 CHECK_NUMBER (arg);
3134 FRAME_X_OUTPUT (f)->internal_border_width = XINT (arg); 3137 FRAME_INTERNAL_BORDER_WIDTH (f) = XINT (arg);
3135 if (FRAME_X_OUTPUT (f)->internal_border_width < 0) 3138 if (FRAME_INTERNAL_BORDER_WIDTH (f) < 0)
3136 FRAME_X_OUTPUT (f)->internal_border_width = 0; 3139 FRAME_INTERNAL_BORDER_WIDTH (f) = 0;
3137 3140
3138#ifdef USE_X_TOOLKIT 3141#ifdef USE_X_TOOLKIT
3139 if (FRAME_X_OUTPUT (f)->edit_widget) 3142 if (FRAME_X_OUTPUT (f)->edit_widget)
3140 widget_store_internal_border (FRAME_X_OUTPUT (f)->edit_widget); 3143 widget_store_internal_border (FRAME_X_OUTPUT (f)->edit_widget);
3141#endif 3144#endif
3142 3145
3143 if (FRAME_X_OUTPUT (f)->internal_border_width == old) 3146 if (FRAME_INTERNAL_BORDER_WIDTH (f) == old)
3144 return; 3147 return;
3145 3148
3146 if (FRAME_X_WINDOW (f) != 0) 3149 if (FRAME_X_WINDOW (f) != 0)
3147 { 3150 {
3148 x_set_window_size (f, 0, f->width, f->height); 3151 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
3149 SET_FRAME_GARBAGED (f); 3152 SET_FRAME_GARBAGED (f);
3150 do_pending_window_change (0); 3153 do_pending_window_change (0);
3151 } 3154 }
@@ -3223,7 +3226,7 @@ x_set_vertical_scroll_bars (f, arg, oldval)
3223 However, if the window hasn't been created yet, we shouldn't 3226 However, if the window hasn't been created yet, we shouldn't
3224 call x_set_window_size. */ 3227 call x_set_window_size. */
3225 if (FRAME_X_WINDOW (f)) 3228 if (FRAME_X_WINDOW (f))
3226 x_set_window_size (f, 0, FRAME_WIDTH (f), FRAME_HEIGHT (f)); 3229 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
3227 do_pending_window_change (0); 3230 do_pending_window_change (0);
3228 } 3231 }
3229} 3232}
@@ -3233,30 +3236,30 @@ x_set_scroll_bar_width (f, arg, oldval)
3233 struct frame *f; 3236 struct frame *f;
3234 Lisp_Object arg, oldval; 3237 Lisp_Object arg, oldval;
3235{ 3238{
3236 int wid = FONT_WIDTH (FRAME_FONT (f)); 3239 int wid = FRAME_COLUMN_WIDTH (f);
3237 3240
3238 if (NILP (arg)) 3241 if (NILP (arg))
3239 { 3242 {
3240 x_set_scroll_bar_default_width (f); 3243 x_set_scroll_bar_default_width (f);
3241 3244
3242 if (FRAME_X_WINDOW (f)) 3245 if (FRAME_X_WINDOW (f))
3243 x_set_window_size (f, 0, FRAME_WIDTH (f), FRAME_HEIGHT (f)); 3246 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
3244 do_pending_window_change (0); 3247 do_pending_window_change (0);
3245 } 3248 }
3246 else if (INTEGERP (arg) && XINT (arg) > 0 3249 else if (INTEGERP (arg) && XINT (arg) > 0
3247 && XFASTINT (arg) != FRAME_SCROLL_BAR_PIXEL_WIDTH (f)) 3250 && XFASTINT (arg) != FRAME_CONFIG_SCROLL_BAR_WIDTH (f))
3248 { 3251 {
3249 if (XFASTINT (arg) <= 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM) 3252 if (XFASTINT (arg) <= 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM)
3250 XSETINT (arg, 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM + 1); 3253 XSETINT (arg, 2 * VERTICAL_SCROLL_BAR_WIDTH_TRIM + 1);
3251 3254
3252 FRAME_SCROLL_BAR_PIXEL_WIDTH (f) = XFASTINT (arg); 3255 FRAME_CONFIG_SCROLL_BAR_WIDTH (f) = XFASTINT (arg);
3253 FRAME_SCROLL_BAR_COLS (f) = (XFASTINT (arg) + wid-1) / wid; 3256 FRAME_CONFIG_SCROLL_BAR_COLS (f) = (XFASTINT (arg) + wid-1) / wid;
3254 if (FRAME_X_WINDOW (f)) 3257 if (FRAME_X_WINDOW (f))
3255 x_set_window_size (f, 0, FRAME_WIDTH (f), FRAME_HEIGHT (f)); 3258 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f));
3256 do_pending_window_change (0); 3259 do_pending_window_change (0);
3257 } 3260 }
3258 3261
3259 change_frame_size (f, 0, FRAME_WIDTH (f), 0, 0, 0); 3262 change_frame_size (f, 0, FRAME_COLS (f), 0, 0, 0);
3260 XWINDOW (FRAME_SELECTED_WINDOW (f))->cursor.hpos = 0; 3263 XWINDOW (FRAME_SELECTED_WINDOW (f))->cursor.hpos = 0;
3261 XWINDOW (FRAME_SELECTED_WINDOW (f))->cursor.x = 0; 3264 XWINDOW (FRAME_SELECTED_WINDOW (f))->cursor.x = 0;
3262} 3265}
@@ -3706,18 +3709,17 @@ x_figure_window_size (f, parms, toolbar_p)
3706 /* Default values if we fall through. 3709 /* Default values if we fall through.
3707 Actually, if that happens we should get 3710 Actually, if that happens we should get
3708 window manager prompting. */ 3711 window manager prompting. */
3709 SET_FRAME_WIDTH (f, DEFAULT_COLS); 3712 SET_FRAME_COLS (f, DEFAULT_COLS);
3710 f->height = DEFAULT_ROWS; 3713 FRAME_LINES (f) = DEFAULT_ROWS;
3711 /* Window managers expect that if program-specified 3714 /* Window managers expect that if program-specified
3712 positions are not (0,0), they're intentional, not defaults. */ 3715 positions are not (0,0), they're intentional, not defaults. */
3713 FRAME_X_OUTPUT (f)->top_pos = 0; 3716 f->top_pos = 0;
3714 FRAME_X_OUTPUT (f)->left_pos = 0; 3717 f->left_pos = 0;
3715 3718
3716 /* Ensure that old new_width and new_height will not override the 3719 /* Ensure that old new_text_cols and new_text_lines will not override the
3717 values set here. */ 3720 values set here. */
3718 /* ++KFS: This was specific to W32, but seems ok for all platforms */ 3721 /* ++KFS: This was specific to W32, but seems ok for all platforms */
3719 FRAME_NEW_WIDTH (f) = 0; 3722 f->new_text_cols = f->new_text_lines = 0;
3720 FRAME_NEW_HEIGHT (f) = 0;
3721 3723
3722 tem0 = x_get_arg (dpyinfo, parms, Qheight, 0, 0, RES_TYPE_NUMBER); 3724 tem0 = x_get_arg (dpyinfo, parms, Qheight, 0, 0, RES_TYPE_NUMBER);
3723 tem1 = x_get_arg (dpyinfo, parms, Qwidth, 0, 0, RES_TYPE_NUMBER); 3725 tem1 = x_get_arg (dpyinfo, parms, Qwidth, 0, 0, RES_TYPE_NUMBER);
@@ -3727,12 +3729,12 @@ x_figure_window_size (f, parms, toolbar_p)
3727 if (!EQ (tem0, Qunbound)) 3729 if (!EQ (tem0, Qunbound))
3728 { 3730 {
3729 CHECK_NUMBER (tem0); 3731 CHECK_NUMBER (tem0);
3730 f->height = XINT (tem0); 3732 FRAME_LINES (f) = XINT (tem0);
3731 } 3733 }
3732 if (!EQ (tem1, Qunbound)) 3734 if (!EQ (tem1, Qunbound))
3733 { 3735 {
3734 CHECK_NUMBER (tem1); 3736 CHECK_NUMBER (tem1);
3735 SET_FRAME_WIDTH (f, XINT (tem1)); 3737 SET_FRAME_COLS (f, XINT (tem1));
3736 } 3738 }
3737 if (!NILP (tem2) && !EQ (tem2, Qunbound)) 3739 if (!NILP (tem2) && !EQ (tem2, Qunbound))
3738 window_prompting |= USSize; 3740 window_prompting |= USSize;
@@ -3740,15 +3742,8 @@ x_figure_window_size (f, parms, toolbar_p)
3740 window_prompting |= PSize; 3742 window_prompting |= PSize;
3741 } 3743 }
3742 3744
3743 FRAME_X_OUTPUT (f)->vertical_scroll_bar_extra 3745 f->scroll_bar_actual_width
3744 = (!FRAME_HAS_VERTICAL_SCROLL_BARS (f) 3746 = FRAME_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f);
3745 ? 0
3746#ifndef HAVE_X_WINDOWS
3747 /* +KFS: This was specific for W32 and MAC.. why? */
3748 : FRAME_SCROLL_BAR_PIXEL_WIDTH (f) > 0
3749 ? FRAME_SCROLL_BAR_PIXEL_WIDTH (f)
3750#endif
3751 : (FRAME_SCROLL_BAR_COLS (f) * FONT_WIDTH (FRAME_X_OUTPUT (f)->font)));
3752 3747
3753 /* This used to be done _before_ calling x_figure_window_size, but 3748 /* This used to be done _before_ calling x_figure_window_size, but
3754 since the height is reset here, this was really a no-op. I 3749 since the height is reset here, this was really a no-op. I
@@ -3780,13 +3775,13 @@ x_figure_window_size (f, parms, toolbar_p)
3780 margin = 0; 3775 margin = 0;
3781 3776
3782 bar_height = DEFAULT_TOOL_BAR_IMAGE_HEIGHT + 2 * margin + 2 * relief; 3777 bar_height = DEFAULT_TOOL_BAR_IMAGE_HEIGHT + 2 * margin + 2 * relief;
3783 f->height += (bar_height + CANON_Y_UNIT (f) - 1) / CANON_Y_UNIT (f); 3778 FRAME_LINES (f) += (bar_height + FRAME_LINE_HEIGHT (f) - 1) / FRAME_LINE_HEIGHT (f);
3784 } 3779 }
3785 3780
3786 compute_fringe_widths (f, 0); 3781 compute_fringe_widths (f, 0);
3787 3782
3788 FRAME_X_OUTPUT (f)->pixel_width = CHAR_TO_PIXEL_WIDTH (f, f->width); 3783 FRAME_PIXEL_WIDTH (f) = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, FRAME_COLS (f));
3789 FRAME_X_OUTPUT (f)->pixel_height = CHAR_TO_PIXEL_HEIGHT (f, f->height); 3784 FRAME_PIXEL_HEIGHT (f) = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, FRAME_LINES (f));
3790 3785
3791 tem0 = x_get_arg (dpyinfo, parms, Qtop, 0, 0, RES_TYPE_NUMBER); 3786 tem0 = x_get_arg (dpyinfo, parms, Qtop, 0, 0, RES_TYPE_NUMBER);
3792 tem1 = x_get_arg (dpyinfo, parms, Qleft, 0, 0, RES_TYPE_NUMBER); 3787 tem1 = x_get_arg (dpyinfo, parms, Qleft, 0, 0, RES_TYPE_NUMBER);
@@ -3795,57 +3790,57 @@ x_figure_window_size (f, parms, toolbar_p)
3795 { 3790 {
3796 if (EQ (tem0, Qminus)) 3791 if (EQ (tem0, Qminus))
3797 { 3792 {
3798 FRAME_X_OUTPUT (f)->top_pos = 0; 3793 f->top_pos = 0;
3799 window_prompting |= YNegative; 3794 window_prompting |= YNegative;
3800 } 3795 }
3801 else if (CONSP (tem0) && EQ (XCAR (tem0), Qminus) 3796 else if (CONSP (tem0) && EQ (XCAR (tem0), Qminus)
3802 && CONSP (XCDR (tem0)) 3797 && CONSP (XCDR (tem0))
3803 && INTEGERP (XCAR (XCDR (tem0)))) 3798 && INTEGERP (XCAR (XCDR (tem0))))
3804 { 3799 {
3805 FRAME_X_OUTPUT (f)->top_pos = - XINT (XCAR (XCDR (tem0))); 3800 f->top_pos = - XINT (XCAR (XCDR (tem0)));
3806 window_prompting |= YNegative; 3801 window_prompting |= YNegative;
3807 } 3802 }
3808 else if (CONSP (tem0) && EQ (XCAR (tem0), Qplus) 3803 else if (CONSP (tem0) && EQ (XCAR (tem0), Qplus)
3809 && CONSP (XCDR (tem0)) 3804 && CONSP (XCDR (tem0))
3810 && INTEGERP (XCAR (XCDR (tem0)))) 3805 && INTEGERP (XCAR (XCDR (tem0))))
3811 { 3806 {
3812 FRAME_X_OUTPUT (f)->top_pos = XINT (XCAR (XCDR (tem0))); 3807 f->top_pos = XINT (XCAR (XCDR (tem0)));
3813 } 3808 }
3814 else if (EQ (tem0, Qunbound)) 3809 else if (EQ (tem0, Qunbound))
3815 FRAME_X_OUTPUT (f)->top_pos = 0; 3810 f->top_pos = 0;
3816 else 3811 else
3817 { 3812 {
3818 CHECK_NUMBER (tem0); 3813 CHECK_NUMBER (tem0);
3819 FRAME_X_OUTPUT (f)->top_pos = XINT (tem0); 3814 f->top_pos = XINT (tem0);
3820 if (FRAME_X_OUTPUT (f)->top_pos < 0) 3815 if (f->top_pos < 0)
3821 window_prompting |= YNegative; 3816 window_prompting |= YNegative;
3822 } 3817 }
3823 3818
3824 if (EQ (tem1, Qminus)) 3819 if (EQ (tem1, Qminus))
3825 { 3820 {
3826 FRAME_X_OUTPUT (f)->left_pos = 0; 3821 f->left_pos = 0;
3827 window_prompting |= XNegative; 3822 window_prompting |= XNegative;
3828 } 3823 }
3829 else if (CONSP (tem1) && EQ (XCAR (tem1), Qminus) 3824 else if (CONSP (tem1) && EQ (XCAR (tem1), Qminus)
3830 && CONSP (XCDR (tem1)) 3825 && CONSP (XCDR (tem1))
3831 && INTEGERP (XCAR (XCDR (tem1)))) 3826 && INTEGERP (XCAR (XCDR (tem1))))
3832 { 3827 {
3833 FRAME_X_OUTPUT (f)->left_pos = - XINT (XCAR (XCDR (tem1))); 3828 f->left_pos = - XINT (XCAR (XCDR (tem1)));
3834 window_prompting |= XNegative; 3829 window_prompting |= XNegative;
3835 } 3830 }
3836 else if (CONSP (tem1) && EQ (XCAR (tem1), Qplus) 3831 else if (CONSP (tem1) && EQ (XCAR (tem1), Qplus)
3837 && CONSP (XCDR (tem1)) 3832 && CONSP (XCDR (tem1))
3838 && INTEGERP (XCAR (XCDR (tem1)))) 3833 && INTEGERP (XCAR (XCDR (tem1))))
3839 { 3834 {
3840 FRAME_X_OUTPUT (f)->left_pos = XINT (XCAR (XCDR (tem1))); 3835 f->left_pos = XINT (XCAR (XCDR (tem1)));
3841 } 3836 }
3842 else if (EQ (tem1, Qunbound)) 3837 else if (EQ (tem1, Qunbound))
3843 FRAME_X_OUTPUT (f)->left_pos = 0; 3838 f->left_pos = 0;
3844 else 3839 else
3845 { 3840 {
3846 CHECK_NUMBER (tem1); 3841 CHECK_NUMBER (tem1);
3847 FRAME_X_OUTPUT (f)->left_pos = XINT (tem1); 3842 f->left_pos = XINT (tem1);
3848 if (FRAME_X_OUTPUT (f)->left_pos < 0) 3843 if (f->left_pos < 0)
3849 window_prompting |= XNegative; 3844 window_prompting |= XNegative;
3850 } 3845 }
3851 3846
@@ -3855,7 +3850,7 @@ x_figure_window_size (f, parms, toolbar_p)
3855 window_prompting |= PPosition; 3850 window_prompting |= PPosition;
3856 } 3851 }
3857 3852
3858 if (FRAME_X_OUTPUT (f)->want_fullscreen != FULLSCREEN_NONE) 3853 if (f->want_fullscreen != FULLSCREEN_NONE)
3859 { 3854 {
3860 int left, top; 3855 int left, top;
3861 int width, height; 3856 int width, height;
@@ -3863,30 +3858,30 @@ x_figure_window_size (f, parms, toolbar_p)
3863 /* It takes both for some WM:s to place it where we want */ 3858 /* It takes both for some WM:s to place it where we want */
3864 window_prompting = USPosition | PPosition; 3859 window_prompting = USPosition | PPosition;
3865 x_fullscreen_adjust (f, &width, &height, &top, &left); 3860 x_fullscreen_adjust (f, &width, &height, &top, &left);
3866 f->width = width; 3861 FRAME_COLS (f) = width;
3867 f->height = height; 3862 FRAME_LINES (f) = height;
3868 FRAME_X_OUTPUT (f)->pixel_width = CHAR_TO_PIXEL_WIDTH (f, f->width); 3863 FRAME_PIXEL_WIDTH (f) = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, width);
3869 FRAME_X_OUTPUT (f)->pixel_height = CHAR_TO_PIXEL_HEIGHT (f, f->height); 3864 FRAME_PIXEL_HEIGHT (f) = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, height);
3870 FRAME_X_OUTPUT (f)->left_pos = left; 3865 f->left_pos = left;
3871 FRAME_X_OUTPUT (f)->top_pos = top; 3866 f->top_pos = top;
3872 } 3867 }
3873 3868
3874 if (window_prompting & XNegative) 3869 if (window_prompting & XNegative)
3875 { 3870 {
3876 if (window_prompting & YNegative) 3871 if (window_prompting & YNegative)
3877 FRAME_X_OUTPUT (f)->win_gravity = SouthEastGravity; 3872 f->win_gravity = SouthEastGravity;
3878 else 3873 else
3879 FRAME_X_OUTPUT (f)->win_gravity = NorthEastGravity; 3874 f->win_gravity = NorthEastGravity;
3880 } 3875 }
3881 else 3876 else
3882 { 3877 {
3883 if (window_prompting & YNegative) 3878 if (window_prompting & YNegative)
3884 FRAME_X_OUTPUT (f)->win_gravity = SouthWestGravity; 3879 f->win_gravity = SouthWestGravity;
3885 else 3880 else
3886 FRAME_X_OUTPUT (f)->win_gravity = NorthWestGravity; 3881 f->win_gravity = NorthWestGravity;
3887 } 3882 }
3888 3883
3889 FRAME_X_OUTPUT (f)->size_hint_flags = window_prompting; 3884 f->size_hint_flags = window_prompting;
3890 3885
3891 return window_prompting; 3886 return window_prompting;
3892} 3887}