[LyX/2.5.x] Change zoom from an lfun without going through the slider
Pavel Sanda
sanda at lyx.org
Mon Jun 15 21:21:51 UTC 2026
commit 2dabb85c7743904844e751c58a5dc292b56e4bca
Author: Pavel Sanda <sanda at lyx.org>
Date: Mon Jun 15 23:20:58 2026 +0200
Change zoom from an lfun without going through the slider
Backport 51fe34f90f4eb2, patch from Guillaume.
---
src/frontends/qt/GuiView.cpp | 9 +++++----
status.25x | 3 +++
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/frontends/qt/GuiView.cpp b/src/frontends/qt/GuiView.cpp
index 3a42afefea..4389c4b838 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());
diff --git a/status.25x b/status.25x
index 5d8ad627ae..d58a91a6fa 100644
--- a/status.25x
+++ b/status.25x
@@ -89,6 +89,9 @@ What's new
- Fix sorting of colors in preferences.
+- Fix zoom-in/out functions so that the inverse (e.g. with the mouse wheel)
+ end up at the exact same value (bug 13327).
+
* INTERNALS
More information about the lyx-cvs
mailing list