commit fa94c46fbeb3deb5d5318be55591cf24c569490c
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 203ddcd0a1..a8db595630 100644
--- a/src/frontends/qt/GuiApplication.cpp
+++ b/src/frontends/qt/GuiApplication.cpp
@@ -1243,6 +1243,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 deb7d23521..475d3e4e25 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 23c7e7e3a6..53cf518e68 100644
--- a/src/frontends/qt/GuiView.cpp
+++ b/src/frontends/qt/GuiView.cpp
@@ -5263,7 +5263,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