+
+2005-03-20 Alfredo Braunstein <abraunst@lyx.org>
+
+ * GWorkArea.[Ch] (onScroll, setScrollbarParams): add an adjusting_
+ flag to avoid signal reentrance.
+
2005-03-20 John Spray <spray_john@users.sf.net>
* ghelpers.C: use Gtk::Stock::PROPERTIES icon for document
GWorkArea::GWorkArea(LyXView & owner, int width, int height)
- : workAreaPixmap_(0), painter_(*this), draw_(0), colorHandler_(*this)
+ : workAreaPixmap_(0), painter_(*this), draw_(0), colorHandler_(*this),
+ adjusting_(false)
{
workArea_.set_size_request(width, height);
workArea_.set_double_buffered(false);
void GWorkArea::setScrollbarParams(int height, int pos, int line_height)
{
+ if (adjusting_)
+ return;
+
+ adjusting_ = true;
+
Gtk::Adjustment * adjustment = vscrollbar_.get_adjustment();
adjustment->set_lower(0);
int workAreaHeight = workHeight();
adjustment->set_page_size(workAreaHeight);
adjustment->set_value(0);
adjustment->changed();
+ adjusting_ = false;
return;
}
adjustment->set_step_increment(line_height * 3);
adjustment->set_page_size(workAreaHeight);
adjustment->set_value(pos);
adjustment->changed();
+ adjusting_ = false;
}
void GWorkArea::onScroll()
{
+ if (adjusting_)
+ return;
+
+ adjusting_ = true;
+
double val = vscrollbar_.get_adjustment()->get_value();
scrollDocView(static_cast<int>(val));
+ adjusting_ = false;
}