terminal: Use window_get_fullscreen() instead of tracking that state manually

dev
Kristian Høgsberg 12 years ago
parent 1671e1129d
commit b7ed4cbbc7
  1. 22
      clients/terminal.c

@ -48,7 +48,7 @@ static char *option_shell;
static struct wl_list terminal_list; static struct wl_list terminal_list;
static struct terminal * static struct terminal *
terminal_create(struct display *display, int fullscreen); terminal_create(struct display *display);
static void static void
terminal_destroy(struct terminal *terminal); terminal_destroy(struct terminal *terminal);
static int static int
@ -404,7 +404,6 @@ struct terminal {
int escape_flags; int escape_flags;
struct utf8_state_machine state_machine; struct utf8_state_machine state_machine;
int margin; int margin;
int fullscreen;
struct color_scheme *color_scheme; struct color_scheme *color_scheme;
struct terminal_color color_table[256]; struct terminal_color color_table[256];
cairo_font_extents_t extents; cairo_font_extents_t extents;
@ -764,7 +763,7 @@ resize_handler(struct widget *widget,
columns = (width - m) / (int32_t) terminal->extents.max_x_advance; columns = (width - m) / (int32_t) terminal->extents.max_x_advance;
rows = (height - m) / (int32_t) terminal->extents.height; rows = (height - m) / (int32_t) terminal->extents.height;
if (!terminal->fullscreen) { if (window_is_fullscreen(terminal->window)) {
width = columns * terminal->extents.max_x_advance + m; width = columns * terminal->extents.max_x_advance + m;
height = rows * terminal->extents.height + m; height = rows * terminal->extents.height + m;
widget_set_size(terminal->widget, width, height); widget_set_size(terminal->widget, width, height);
@ -778,7 +777,7 @@ terminal_resize(struct terminal *terminal, int columns, int rows)
{ {
int32_t width, height, m; int32_t width, height, m;
if (terminal->fullscreen) if (window_is_fullscreen(terminal->window))
return; return;
m = 2 * terminal->margin; m = 2 * terminal->margin;
@ -2065,8 +2064,7 @@ fullscreen_handler(struct window *window, void *data)
{ {
struct terminal *terminal = data; struct terminal *terminal = data;
terminal->fullscreen ^= 1; window_set_fullscreen(window, !window_is_fullscreen(terminal->window));
window_set_fullscreen(window, terminal->fullscreen);
} }
static int static int
@ -2097,8 +2095,7 @@ handle_bound_key(struct terminal *terminal,
return 1; return 1;
case XKB_KEY_N: case XKB_KEY_N:
new_terminal = new_terminal = terminal_create(terminal->display);
terminal_create(terminal->display, option_fullscreen);
if (terminal_run(new_terminal, option_shell)) if (terminal_run(new_terminal, option_shell))
terminal_destroy(new_terminal); terminal_destroy(new_terminal);
@ -2448,7 +2445,7 @@ motion_handler(struct widget *widget,
} }
static struct terminal * static struct terminal *
terminal_create(struct display *display, int fullscreen) terminal_create(struct display *display)
{ {
struct terminal *terminal; struct terminal *terminal;
cairo_surface_t *surface; cairo_surface_t *surface;
@ -2459,7 +2456,6 @@ terminal_create(struct display *display, int fullscreen)
return terminal; return terminal;
memset(terminal, 0, sizeof *terminal); memset(terminal, 0, sizeof *terminal);
terminal->fullscreen = fullscreen;
terminal->color_scheme = &DEFAULT_COLORS; terminal->color_scheme = &DEFAULT_COLORS;
terminal_init(terminal); terminal_init(terminal);
terminal->margin_top = 0; terminal->margin_top = 0;
@ -2571,8 +2567,8 @@ terminal_run(struct terminal *terminal, const char *path)
display_watch_fd(terminal->display, terminal->master, display_watch_fd(terminal->display, terminal->master,
EPOLLIN | EPOLLHUP, &terminal->io_task); EPOLLIN | EPOLLHUP, &terminal->io_task);
window_set_fullscreen(terminal->window, terminal->fullscreen); window_set_fullscreen(terminal->window, option_fullscreen);
if (!terminal->fullscreen) if (!window_is_fullscreen(terminal->window))
terminal_resize(terminal, 80, 24); terminal_resize(terminal, 80, 24);
return 0; return 0;
@ -2621,7 +2617,7 @@ int main(int argc, char *argv[])
} }
wl_list_init(&terminal_list); wl_list_init(&terminal_list);
terminal = terminal_create(d, option_fullscreen); terminal = terminal_create(d);
if (terminal_run(terminal, option_shell)) if (terminal_run(terminal, option_shell))
exit(EXIT_FAILURE); exit(EXIT_FAILURE);

Loading…
Cancel
Save