commit fc49e220166beb81d044227bfbae58a7ff1e97da
Author: Juergen Spitzmueller <[email protected]>
Date:   Tue May 20 16:14:16 2025 +0200

    Sync zoom sliders across views (#13162)
---
 src/frontends/qt/GuiApplication.cpp | 9 +++++++++
 src/frontends/qt/GuiApplication.h   | 3 +++
 src/frontends/qt/GuiView.cpp        | 3 ++-
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/frontends/qt/GuiApplication.cpp 
b/src/frontends/qt/GuiApplication.cpp
index 6d7b820360..ebe24a2dea 100644
--- a/src/frontends/qt/GuiApplication.cpp
+++ b/src/frontends/qt/GuiApplication.cpp
@@ -1252,6 +1252,15 @@ double GuiApplication::pixelRatio() const
 }
 
 
+void GuiApplication::syncZoomSliders(const int v)
+{
+       // Sync zoom in all active views
+       QList<int> const ids = viewIds();
+       for (int i = 0; i != ids.size(); ++i)
+               view(ids[i]).setCurrentZoom(v);
+}
+
+
 void GuiApplication::clearSession()
 {
        QSettings settings;
diff --git a/src/frontends/qt/GuiApplication.h 
b/src/frontends/qt/GuiApplication.h
index bbae18fb13..67865729fd 100644
--- a/src/frontends/qt/GuiApplication.h
+++ b/src/frontends/qt/GuiApplication.h
@@ -175,6 +175,9 @@ public:
        /// Current ratio between physical pixels and device-independent pixels
        double pixelRatio() const;
 
+       ///
+       void syncZoomSliders(int const v);
+
        /// How to load image files
        support::search_mode imageSearchMode() const {
                return pixelRatio() > 1 ? support::check_hidpi : 
support::must_exist;
diff --git a/src/frontends/qt/GuiView.cpp b/src/frontends/qt/GuiView.cpp
index db9bc3f47a..f3859ea653 100644
--- a/src/frontends/qt/GuiView.cpp
+++ b/src/frontends/qt/GuiView.cpp
@@ -5095,7 +5095,8 @@ void GuiView::dispatch(FuncRequest const & cmd, 
DispatchResult & dr)
                        int zoom = (int)(lyxrc.defaultZoom * zoom_ratio_);
                        zoom = min(max(zoom, zoom_min_), zoom_max_);
 
-                       setCurrentZoom(zoom);
+                       // Sync zoom sliders in all active views
+                       guiApp->syncZoomSliders(zoom);
 
                        dr.setMessage(bformat(_("Zoom level is now %1$d% 
(default value: %2$d%)"),
                                              lyxrc.currentZoom, 
lyxrc.defaultZoom));
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to