(make_terminal_frame): Initialize f->terminal, f->terminal->reference_count,
and scroll bars on MS-DOS as well. Set the top frame to newly created frame. (Fmake_terminal_frame): Reuse the_only_display_info.
This commit is contained in:
parent
75adb00dcf
commit
1266f9ef8e
2 changed files with 24 additions and 17 deletions
|
@ -1,5 +1,10 @@
|
|||
2008-08-24 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* frame.c (make_terminal_frame): Initialize f->terminal,
|
||||
f->terminal->reference_count, and scroll bars on MS-DOS as well.
|
||||
Set the top frame to newly created frame.
|
||||
(Fmake_terminal_frame): Reuse the_only_display_info.
|
||||
|
||||
* vm-limit.c (get_lim_data) [MSDOS]: Use alternative methods of
|
||||
estimating available memory.
|
||||
|
||||
|
|
36
src/frame.c
36
src/frame.c
|
@ -585,6 +585,8 @@ make_terminal_frame (struct terminal *terminal)
|
|||
|
||||
f->visible = 1; /* FRAME_SET_VISIBLE wd set frame_garbaged. */
|
||||
f->async_visible = 1; /* Don't let visible be cleared later. */
|
||||
f->terminal = terminal;
|
||||
f->terminal->reference_count++;
|
||||
#ifdef MSDOS
|
||||
f->output_data.tty->display_info = &the_only_display_info;
|
||||
if (!inhibit_window_system
|
||||
|
@ -614,22 +616,10 @@ make_terminal_frame (struct terminal *terminal)
|
|||
#else
|
||||
{
|
||||
f->output_method = output_termcap;
|
||||
f->terminal = terminal;
|
||||
f->terminal->reference_count++;
|
||||
create_tty_output (f);
|
||||
|
||||
FRAME_FOREGROUND_PIXEL (f) = FACE_TTY_DEFAULT_FG_COLOR;
|
||||
FRAME_BACKGROUND_PIXEL (f) = FACE_TTY_DEFAULT_BG_COLOR;
|
||||
|
||||
FRAME_CAN_HAVE_SCROLL_BARS (f) = 0;
|
||||
FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none;
|
||||
|
||||
/* Set the top frame to the newly created frame. */
|
||||
if (FRAMEP (FRAME_TTY (f)->top_frame)
|
||||
&& FRAME_LIVE_P (XFRAME (FRAME_TTY (f)->top_frame)))
|
||||
XFRAME (FRAME_TTY (f)->top_frame)->async_visible = 2; /* obscured */
|
||||
|
||||
FRAME_TTY (f)->top_frame = frame;
|
||||
}
|
||||
|
||||
#ifdef CANNOT_DUMP
|
||||
|
@ -638,6 +628,16 @@ make_terminal_frame (struct terminal *terminal)
|
|||
#endif
|
||||
#endif /* MSDOS */
|
||||
|
||||
FRAME_CAN_HAVE_SCROLL_BARS (f) = 0;
|
||||
FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_none;
|
||||
|
||||
/* Set the top frame to the newly created frame. */
|
||||
if (FRAMEP (FRAME_TTY (f)->top_frame)
|
||||
&& FRAME_LIVE_P (XFRAME (FRAME_TTY (f)->top_frame)))
|
||||
XFRAME (FRAME_TTY (f)->top_frame)->async_visible = 2; /* obscured */
|
||||
|
||||
FRAME_TTY (f)->top_frame = frame;
|
||||
|
||||
if (!noninteractive)
|
||||
init_frame_faces (f);
|
||||
|
||||
|
@ -717,14 +717,17 @@ affects all frames on the same terminal device. */)
|
|||
terminal = XCDR (terminal);
|
||||
t = get_terminal (terminal, 1);
|
||||
}
|
||||
#ifdef MSDOS
|
||||
if (t && t != the_only_display_info.terminal)
|
||||
/* msdos.c assumes a single tty_display_info object. */
|
||||
error ("Multiple terminals are not supported on this platform");
|
||||
if (!t)
|
||||
t = the_only_display_info.terminal;
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!t)
|
||||
{
|
||||
#ifdef MSDOS
|
||||
/* msdos.c assumes a single tty_display_info object. */
|
||||
error ("Multiple terminals are not supported on this platform");
|
||||
#else /* !MSDOS */
|
||||
char *name = 0, *type = 0;
|
||||
Lisp_Object tty, tty_type;
|
||||
|
||||
|
@ -751,7 +754,6 @@ affects all frames on the same terminal device. */)
|
|||
}
|
||||
|
||||
t = init_tty (name, type, 0); /* Errors are not fatal. */
|
||||
#endif /* !MSDOS */
|
||||
}
|
||||
|
||||
f = make_terminal_frame (t);
|
||||
|
|
Loading…
Add table
Reference in a new issue