changeset 25086:36f17567ffa1 stable

Prevent GUI drag-and-drop relocation freeze for some Qt versions (bug #53392). * octave-dock-widget.cc (octave_dock_widget::make_widget): Keep the QDockWidget as a window when reparenting before adding back to the QMainWindow, then use setFloating (false) after added.
author Daniel J Sebald <daniel.sebald@ieee.org>
date Fri, 23 Mar 2018 10:52:50 -0500
parents 1e0d3ad041de
children 8f1ab6db6709
files libgui/src/octave-dock-widget.cc
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/octave-dock-widget.cc	Mon Apr 02 19:15:01 2018 +0200
+++ b/libgui/src/octave-dock-widget.cc	Fri Mar 23 10:52:50 2018 -0500
@@ -203,9 +203,13 @@
     if (dock)
       {
         settings->setValue ("MainWindow/windowState", m_parent->saveState ());
+        // Stay window, otherwise will bounce back to window by default because
+        // there is no layout information for this widget in the saved settings.
+        setParent (m_parent, Qt::Window);
         m_parent->addDockWidget (Qt::TopDockWidgetArea, this);
         // recover old window states, hide and re-show new added widget
         m_parent->restoreState (settings->value ("MainWindow/windowState").toByteArray ());
+        setFloating (false);
         focus ();
         QApplication::setActiveWindow (this);
         m_title_widget->setToolTip ("");