From 78c09c27ca781c80211f96bb6bdbbbc1148f7308 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Tue, 15 May 2018 12:15:46 +0200 Subject: [PATCH] terminal: respond to window-close event --- repos/gems/src/server/terminal/framebuffer.h | 3 ++- repos/gems/src/server/terminal/main.cc | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/repos/gems/src/server/terminal/framebuffer.h b/repos/gems/src/server/terminal/framebuffer.h index 472fce62e8..20ef44570f 100644 --- a/repos/gems/src/server/terminal/framebuffer.h +++ b/repos/gems/src/server/terminal/framebuffer.h @@ -83,7 +83,8 @@ class Terminal::Framebuffer * the old (possibly too small) dataspace. */ _mode = _fb.mode(); - _ds.construct(_env.rm(), _fb.dataspace()); + if (_mode.width() && _mode.height()) + _ds.construct(_env.rm(), _fb.dataspace()); } }; diff --git a/repos/gems/src/server/terminal/main.cc b/repos/gems/src/server/terminal/main.cc index cfe3206207..75349af1ae 100644 --- a/repos/gems/src/server/terminal/main.cc +++ b/repos/gems/src/server/terminal/main.cc @@ -229,9 +229,7 @@ void Terminal::Main::_handle_config() _text_screen_surface->geometry(new_geometry); } } - catch (Text_screen_surface::Geometry::Invalid) - { - warning("invalid framebuffer size"); + catch (Text_screen_surface::Geometry::Invalid) { /* * Make sure to never operate on an invalid-sized framebuffer @@ -240,6 +238,7 @@ void Terminal::Main::_handle_config() * there may still be a stale '_text_screen_surface'. */ _text_screen_surface.destruct(); + _terminal_size = Area(0, 0); } _root.notify_resized(Session::Size(_terminal_size.w(), _terminal_size.h()));