https://bugs.kde.org/show_bug.cgi?id=447661
--- Comment #1 from Oliver Kellogg <okell...@users.sourceforge.net> --- Git commit 8f410485cfcc75a4fe452708d8b1aa009ae35f50 by Oliver Kellogg. Committed on 29/12/2021 at 21:51. Pushed by okellogg into branch 'master'. Fix "Diagram objects moved to inside enclosing package become invisible" umbrello/umlwidgets/widget_utils.{h,cpp} - New function ensureNestedVisible prevents nested widget(s) located inside the area of a larger widget from disappearing. This is achieved by increasing the Z value on the contained widgets. umbrello/toolbarstate.cpp - In function mouseRelease add debug messages in the branches of the if-chain to ease tracing of events. - In function mouseReleaseEmpty, if m_currentWidget is non null then call Widget_Utils::ensureNestedVisible with arguments m_currentWidget and m_pUMLScene->widgetList(). umbrello/umlwidgets/toolbarstateonewidget.cpp - Split if-statement testing m_pMouseEvent->button() and currentWidget() into two separate if-statements. Return immediately if m_pMouseEvent->button() is not Qt::LeftButton. - Add local UMLWidget *currWgt as shorthand for currentWidget(). - Call Widget_Utils::ensureNestedVisible with arguments currWgt and m_pUMLScene->widgetList() before executing the second part of the split if-statement (see above). umbrello/umlwidgets/umlwidget.{h,cpp} - New function isLocatedIn(const UMLWidget *other) returns true if `this' is located in the bounding rectangle of `other'. umbrello/umlwidgets/umlwidget.cpp - In function mouseReleaseEvent : - In if-statement testing (!m_moved && !m_resized), if neither (!m_shiftPressed && (m_scene->selectedCount() > 1)) nor !isSelected() evaluates to true then call Widget_Utils::ensureNestedVisible(this, umlScene()->widgetList()). - In else-part of the if-statement, if m_moved is true then - local UMLWidgetList selectedWidgets acts as shorthand for umlScene()->selectedWidgets(); - in foreach-loop over selectedWidgets additionally call Widget_Utils::ensureNestedVisible with arguments `widget' and umlScene()->widgetList(). - In function setSelected add call to Widget_Utils::ensureNestedVisible(this, umlScene()->widgetList()). M +9 -1 umbrello/toolbarstate.cpp M +17 -8 umbrello/umlwidgets/toolbarstateonewidget.cpp M +50 -2 umbrello/umlwidgets/umlwidget.cpp M +2 -0 umbrello/umlwidgets/umlwidget.h M +21 -0 umbrello/umlwidgets/widget_utils.cpp M +3 -1 umbrello/umlwidgets/widget_utils.h https://invent.kde.org/sdk/umbrello/commit/8f410485cfcc75a4fe452708d8b1aa009ae35f50 -- You are receiving this mail because: You are watching all bug changes.