fix the page is scrolling to the wrong position

presentation
Peter Klausing 7 years ago
parent 5845b1a515
commit 47ed232dfe
  1. 17
      src/control/zoom/ZoomControl.cpp

@ -22,8 +22,8 @@ ZoomControl::ZoomControl()
this->zoomWidgetPosX = 0;
this->zoomWidgetPosY = 0;
this->scrollPositionX = 0;
this->scrollPositionY = 0;
this->scrollPositionX = -1;
this->scrollPositionY = -1;
}
ZoomControl::~ZoomControl()
@ -57,8 +57,8 @@ void ZoomControl::startZoomSequence(double centerX, double centerY)
Rectangle rect = getVisibleRect();
this->scrollPositionX = (rect.x + this->zoomWidgetPosX) / this->zoom;
this->scrollPositionY = (rect.y + this->zoomWidgetPosY) / this->zoom;
this->scrollPositionX = (rect.x + this->zoomWidgetPosX);
this->scrollPositionY = (rect.y + this->zoomWidgetPosY);
this->zoomSequenceStart = this->zoom;
}
@ -115,11 +115,12 @@ void ZoomControl::scrollToZoomPosition(XojPageView* view)
Layout* layout = gtk_xournal_get_layout(this->view->getWidget());
double x = this->scrollPositionX * this->zoom;
double y = this->scrollPositionY * this->zoom;
double zoom_eff = (this->zoom/ this->zoomSequenceStart);
double x = this->scrollPositionX * zoom_eff;
double y = this->scrollPositionY * zoom_eff;
x -= this->zoomWidgetPosX;
y -= this->zoomWidgetPosY;
x -= this->zoomWidgetPosX * zoom_eff;
y -= this->zoomWidgetPosY * zoom_eff;
layout->scrollAbs(x, y);
}

Loading…
Cancel
Save