[LyX/master] Change zoom from an lfun without going through the slider
Pavel Sanda <[email protected]> Wed, 10 Jun 2026 21:41:25 +0000
| Newsgroups | gmane.editors.lyx.cvs |
|---|---|
| Message-ID | <[email protected]> |
commit 51fe34f90f4eb28dbefd6a1e4eb616da60c74b6c Author: Guillaume MM <[email protected]> Date: Sun Jun 7 03:55:15 2026 +0200 Change zoom from an lfun without going through the slider If we change zoom from an lfun directly, we set the value of the slider by blocking signals. This prevents the slider from rounding our new zoom value. This fixes zoom-out not being inverse to zoom-in. --- src/frontends/qt/GuiView.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/frontends/qt/GuiView.cpp b/src/frontends/qt/GuiView.cpp index 3edfdc29f8..aab3394c60 100644 --- a/src/frontends/qt/GuiView.cpp +++ b/src/frontends/qt/GuiView.cpp @@ -718,7 +718,6 @@ GuiView::GuiView(int id) connect(zoom_slider_, SIGNAL(sliderMoved(int)), this, SLOT(zoomSliderMoved(int))); connect(zoom_slider_, SIGNAL(valueChanged(int)), this, SLOT(zoomValueChanged(int))); - connect(this, SIGNAL(currentZoomChanged(int)), zoom_slider_, SLOT(setValue(int))); connect(zoom_in_, SIGNAL(clicked()), this, SLOT(zoomInPressed())); connect(zoom_out_, SIGNAL(clicked()), this, SLOT(zoomOutPressed())); @@ -1024,9 +1023,11 @@ void GuiView::saveUISettings() const void GuiView::setCurrentZoom(const int v) { - // Avoid (only theoretical) recursive call - if (zoom_slider_->value() != v) - Q_EMIT currentZoomChanged(v); + { + // Avoid recursive call + const QSignalBlocker blocker(zoom_slider_); + zoom_slider_->setValue(v); + } lyxrc.currentZoom = v; zoom_value_->setText(toqstr(bformat(_("[[ZOOM]]%1$d%"), v))); zoom_in_->setEnabled(currentBufferView() && v < zoom_slider_->maximum()); -- lyx-cvs mailing list [email protected] https://lists.lyx.org/mailman/listinfo/lyx-cvs