summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDima Ryazanov <dima@gmail.com>2013-01-28 01:11:06 -0800
committerKristian Høgsberg <krh@bitplanet.net>2013-02-14 15:54:37 -0500
commitcf7c5109a587cb635a6ae716b425d42b36f3ad67 (patch)
tree3141919e46dee8daaa591220a497dd2d4feafd93
parente4cd90e6bd5ac72a40d87f7da2cd1fd9c8455513 (diff)
downloadweston-cf7c5109a587cb635a6ae716b425d42b36f3ad67.tar.gz
terminal: Handle the window close event
There may be multiple windows open, so destroy the terminal instead of exiting. Signed-off-by: Dima Ryazanov <dima@gmail.com>
-rw-r--r--clients/terminal.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/clients/terminal.c b/clients/terminal.c
index 25acc81a..664df5d2 100644
--- a/clients/terminal.c
+++ b/clients/terminal.c
@@ -2069,6 +2069,14 @@ fullscreen_handler(struct window *window, void *data)
window_set_fullscreen(window, !window_is_fullscreen(terminal->window));
}
+static void
+close_handler(struct window *window, void *data)
+{
+ struct terminal *terminal = data;
+
+ terminal_destroy(terminal);
+}
+
static int
handle_bound_key(struct terminal *terminal,
struct input *input, uint32_t sym, uint32_t time)
@@ -2541,6 +2549,7 @@ terminal_create(struct display *display)
window_set_keyboard_focus_handler(terminal->window,
keyboard_focus_handler);
window_set_fullscreen_handler(terminal->window, fullscreen_handler);
+ window_set_close_handler(terminal->window, close_handler);
widget_set_redraw_handler(terminal->widget, redraw_handler);
widget_set_resize_handler(terminal->widget, resize_handler);