hrev48271 adds 1 changeset to branch 'master' old head: 482f0eeb0169f5091ccc56af5124b19a9e801573 new head: a95a728ca0043d0f16118e406f5487e88166270b overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=a95a728+%5E482f0ee ---------------------------------------------------------------------------- a95a728: Terminal: make sure window fits in screen. Fixes #8414. [ Adrien Destugues <pulkomandy@xxxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev48271 Commit: a95a728ca0043d0f16118e406f5487e88166270b URL: http://cgit.haiku-os.org/haiku/commit/?id=a95a728 Author: Adrien Destugues <pulkomandy@xxxxxxxxx> Date: Mon Nov 10 11:52:01 2014 UTC Ticket: https://dev.haiku-os.org/ticket/8414 ---------------------------------------------------------------------------- 1 file changed, 8 insertions(+), 3 deletions(-) src/apps/terminal/TermWindow.cpp | 11 ++++++++--- ---------------------------------------------------------------------------- diff --git a/src/apps/terminal/TermWindow.cpp b/src/apps/terminal/TermWindow.cpp index 461058d..b5694c9 100644 --- a/src/apps/terminal/TermWindow.cpp +++ b/src/apps/terminal/TermWindow.cpp @@ -223,9 +223,14 @@ TermWindow::TermWindow(const BString& title, Arguments* args) BRect frame; uint32 workspaces; if (_LoadWindowPosition(&frame, &workspaces) == B_OK) { - // apply - MoveTo(frame.LeftTop()); - ResizeTo(frame.Width(), frame.Height()); + // make sure the window is still on screen + // (for example if there was a resolution change) + if (frame.Intersects(BScreen(this).Frame())) { + MoveTo(frame.LeftTop()); + ResizeTo(frame.Width(), frame.Height()); + } else + CenterOnScreen(); + SetWorkspaces(workspaces); } else { // use computed defaults