* GuiWorkArea::addWorkArea(): avoid multiple unneeded drawing.

* GuiWorkArea::on_currentTabChanged(): make sure the bufferView has the correct size.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25271 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Abdelrazak Younes 2008-06-16 07:23:08 +00:00
parent 90837aaf6e
commit 68fbb326af

View File

@ -1312,6 +1312,7 @@ bool TabWorkArea::setCurrentWorkArea(GuiWorkArea * work_area)
GuiWorkArea * TabWorkArea::addWorkArea(Buffer & buffer, GuiView & view)
{
blockSignals(true);
GuiWorkArea * wa = new GuiWorkArea(buffer, view);
wa->setUpdatesEnabled(false);
// Hide tabbar if there's no tab (avoid a resize and a flashing tabbar
@ -1328,7 +1329,7 @@ GuiWorkArea * TabWorkArea::addWorkArea(Buffer & buffer, GuiView & view)
showBar(count() > 1);
updateTabTexts();
blockSignals(false);
return wa;
}
@ -1371,6 +1372,10 @@ void TabWorkArea::on_currentTabChanged(int i)
LASSERT(wa, return);
BufferView & bv = wa->bufferView();
bv.cursor().fixIfBroken();
if (bv.workHeight() != wa->viewport()->height()
|| bv.workWidth() != wa->viewport()->width())
wa->resizeBufferView();
else
bv.updateMetrics();
wa->setUpdatesEnabled(true);
wa->redraw();