octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #54078] No more QDockWidget title bar and dock


From: Dan Sebald
Subject: [Octave-bug-tracker] [bug #54078] No more QDockWidget title bar and dock button on undocked panes under Windows
Date: Mon, 25 Jun 2018 16:57:02 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0

Follow-up Comment #41, bug #54078 (project octave):

So, this isn't quite a fix then?  Hmm... here are links to the Qt source
code:

https://code.woboq.org/qt5/qtbase/src/widgets/widgets/qdockwidget.cpp.html#_ZN18QDockWidgetPrivate13updateButtonsEv

https://code.woboq.org/qt5/qtbase/src/widgets/widgets/qdockwidget.cpp.html#_ZNK17QDockWidgetLayout16nativeWindowDecoEv

https://code.woboq.org/qt5/qtbase/src/widgets/widgets/qdockwidget.cpp.html#_ZN11QDockWidget10paintEventEP11QPaintEvent

Regardless of this patch or the original problem for the builtin toolbar,
based on the code it seems that *if* there is native decorations then there is
no QDockWidget title bar.  I.e.,


    bool customTitleBar = layout->widgetForRole(QDockWidgetLayout::TitleBar)
!= 0;
    bool nativeDeco = layout->nativeWindowDeco();

    if (!nativeDeco && !customTitleBar) {
[snip]
    }


There may be a subtle distinction on exactly how the Window window needs to be
floated, e.g., don't remove it as a child of the QMainWindow or something like
that.  Here's the Qt code definition of what it means to be a window


bool QWidget::isWindow() const
/*!
    \fn bool QWidget::isWindow() const

    Returns \c true if the widget is an independent window, otherwise
    returns \c false.

    A window is a widget that isn't visually the child of any other
    widget and that usually has a frame and a
    \l{QWidget::setWindowTitle()}{window title}.

    A window can have a \l{QWidget::parentWidget()}{parent widget}.
    It will then be grouped with its parent and deleted when the
    parent is deleted, minimized when the parent is minimized etc. If
    supported by the window manager, it will also have a common
    taskbar entry with its parent.

    QDialog and QMainWindow widgets are by default windows, even if a
    parent widget is specified in the constructor. This behavior is
    specified by the Qt::Window flag.

    \sa window(), isModal(), parentWidget()
*/ ↪


Ah, there is something at the end there about the Qt::Window flag.  Perhaps
that needs to be cleared, i.e., parent=0 but also Qt::Window flag is false. 
Just guessing.

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?54078>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]