From 5fcf3f86e84c9c22913ad34af1782b24e5c791dc Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 15 Jun 2008 16:17:32 +0000 Subject: [PATCH] Unset the text buffer listener when being detached from the window, and synchronize with the text buffer when being re-attached. Fixes the problem that after switching to another tab and back ongoing output wouldn't show anymore. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25965 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/terminal/TermView.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/apps/terminal/TermView.cpp b/src/apps/terminal/TermView.cpp index ba6bb75cbf..9a65714936 100644 --- a/src/apps/terminal/TermView.cpp +++ b/src/apps/terminal/TermView.cpp @@ -956,11 +956,16 @@ TermView::AttachedToWindow() } BMessenger thisMessenger(this); - fTextBuffer->SetListener(thisMessenger); BMessage message(kUpdateSigWinch); fWinchRunner = new (std::nothrow) BMessageRunner(thisMessenger, &message, 500000); + + { + BAutolock _(fTextBuffer); + fTextBuffer->SetListener(thisMessenger); + _SynchronizeWithTextBuffer(0, -1); + } } @@ -972,6 +977,11 @@ TermView::DetachedFromWindow() delete fCursorBlinkRunner; fCursorBlinkRunner = NULL; + + { + BAutolock _(fTextBuffer); + fTextBuffer->UnsetListener(); + } }