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