diff libgui/graphics/Canvas.cc @ 27125:d2d2f66e1cdc

Implement figure "windowscrollwheelfcn" property for Qt toolkit (bug #56028). * NEWS: Announce implementation. * QtHandlesUtils.[h,cc] (makeScrollEventStruct): New method to prepare a ScrollWheel event structure. * Canvas.cc (Canvas::canvasWheelEvent): Post "windowscrollwheelfcn" whenever a WheelEvent happens. * genpropdoc.m: Document "windowscrollwheelfcn" property.
author Pantxo Diribarne <pantxo.diribarne@gmail.com>
date Tue, 28 May 2019 16:43:48 +0200
parents 2cd31365c84a
children 9b8903d3e626
line wrap: on
line diff
--- a/libgui/graphics/Canvas.cc	Tue May 28 19:18:50 2019 +0000
+++ b/libgui/graphics/Canvas.cc	Tue May 28 16:43:48 2019 +0200
@@ -906,6 +906,8 @@
       {
         std::string mode;
 
+        graphics_object figObj (obj.get_ancestor ("figure"));
+
         graphics_object axesObj;
 
         Matrix children = obj.get_properties ().get_children ();
@@ -931,8 +933,6 @@
           {
             MouseMode newMouseMode = NoMode;
 
-            graphics_object figObj (obj.get_ancestor ("figure"));
-
             Figure *fig = dynamic_cast<Figure *> (Backend::toolkitObject (figObj));
 
             if (fig)
@@ -1006,6 +1006,13 @@
             if (redrawFigure)
               redraw (false);
           }
+        
+        if (! figObj.get ("windowscrollwheelfcn").isempty ())
+          {
+            octave_scalar_map eventData = Utils::makeScrollEventStruct (event);
+            gh_manager::post_callback (m_handle, "windowscrollwheelfcn",
+                                       eventData);
+          }
       }
   }