# HG changeset patch # User John W. Eaton # Date 1674595051 18000 # Node ID 1d1eff97670ef1c14e69872e3b37d39b39f7b655 # Parent 56223b5a01d45fa8eb94f0a8c9921a60f992a536 revise parentage of GLWidget object (bug #63697) * Canvas.h (Canvas): Revert previous change in inheritance. Inherit from QObject, not QWidget. * GLCanvas.h, GLCanvas.cc (GLWidget::GLWidget): Also accept QWidget parent and pass it to QOpenGLWidget constructor. (GLCanvas::GLCanvas): Pass QWidget parent to GLWidget constructor, not, Canvas. diff -r 56223b5a01d4 -r 1d1eff97670e libgui/graphics/Canvas.h --- a/libgui/graphics/Canvas.h Sun Jan 22 21:09:15 2023 -0500 +++ b/libgui/graphics/Canvas.h Tue Jan 24 16:17:31 2023 -0500 @@ -26,7 +26,7 @@ #if ! defined (octave_Canvas_h) #define octave_Canvas_h 1 -#include +#include #include #include "event-manager.h" @@ -45,7 +45,7 @@ class interpreter; - class Canvas : public QWidget + class Canvas : public QObject { Q_OBJECT @@ -113,9 +113,8 @@ protected: - Canvas (octave::interpreter& interp, const graphics_handle& handle, - QWidget *parent) - : QWidget (parent), m_interpreter (interp), m_handle (handle), + Canvas (octave::interpreter& interp, const graphics_handle& handle) + : QObject (), m_interpreter (interp), m_handle (handle), m_redrawBlocked (false), m_mouseMode (NoMode), m_clickMode (false), m_eventMask (0), m_rectMode (false) { } diff -r 56223b5a01d4 -r 1d1eff97670e libgui/graphics/GLCanvas.cc --- a/libgui/graphics/GLCanvas.cc Sun Jan 22 21:09:15 2023 -0500 +++ b/libgui/graphics/GLCanvas.cc Tue Jan 24 16:17:31 2023 -0500 @@ -37,8 +37,8 @@ OCTAVE_BEGIN_NAMESPACE(octave) - GLWidget::GLWidget (Canvas &parent_canvas) - : QOpenGLWidget (&parent_canvas), m_parent_canvas (parent_canvas), + GLWidget::GLWidget (Canvas& parent_canvas, QWidget *parent) + : QOpenGLWidget (parent), m_parent_canvas (parent_canvas), m_glfcns (), m_renderer (m_glfcns) { setFocusPolicy (Qt::ClickFocus); @@ -297,7 +297,7 @@ GLCanvas::GLCanvas (octave::interpreter& interp, const graphics_handle& gh, QWidget *parent) - : Canvas (interp, gh, parent), m_glwidget (new GLWidget (*this)) + : Canvas (interp, gh), m_glwidget (new GLWidget (*this, parent)) { } GLCanvas::~GLCanvas (void) diff -r 56223b5a01d4 -r 1d1eff97670e libgui/graphics/GLCanvas.h --- a/libgui/graphics/GLCanvas.h Sun Jan 22 21:09:15 2023 -0500 +++ b/libgui/graphics/GLCanvas.h Tue Jan 24 16:17:31 2023 -0500 @@ -44,7 +44,7 @@ public: - GLWidget (Canvas& parent_canvas); + GLWidget (Canvas& parent_canvas, QWidget *parent); ~GLWidget (void);