diff --git a/components/iconmenu.cpp b/components/iconmenu.cpp index 6b0be97..5c18ca1 100644 --- a/components/iconmenu.cpp +++ b/components/iconmenu.cpp @@ -6,8 +6,7 @@ MenuOverlay::MenuOverlay(QWidget *parent) : QWidget(parent) { - //setAttribute(Qt::WA_TransparentForMouseEvents); - //setAttribute(Qt::WA_NoSystemBackground); + setAttribute(Qt::WA_NoSystemBackground); } MenuOverlay::~MenuOverlay() @@ -32,11 +31,15 @@ IconMenu::~IconMenu() { } +void IconMenu::setOverlayParent(QWidget *parent) +{ + _menuOverlay->setParent(parent); +} + bool IconMenu::event(QEvent *event) { if (QEvent::ParentChange == event->type()) { - _menuOverlay->setParent(parentWidget()); - + setOverlayParent(parentWidget()); QSize hint = _menu->layout()->sizeHint(); _menuOverlay->setGeometry(0, 0, hint.width(), hint.height()); } diff --git a/components/iconmenu.h b/components/iconmenu.h index 1d3d80d..fd73629 100644 --- a/components/iconmenu.h +++ b/components/iconmenu.h @@ -23,6 +23,8 @@ public: explicit IconMenu(const QIcon &icon, QWidget *parent = 0); ~IconMenu(); + void setOverlayParent(QWidget *parent); + protected: bool event(QEvent *event) Q_DECL_OVERRIDE; diff --git a/examples/iconmenuexamples.cpp b/examples/iconmenuexamples.cpp index e790c11..0921aa9 100644 --- a/examples/iconmenuexamples.cpp +++ b/examples/iconmenuexamples.cpp @@ -24,6 +24,7 @@ IconMenuExamples::IconMenuExamples(QWidget *parent) frame->setWidget(view); layout->addWidget(frame); + iconMenu->setOverlayParent(frame); } }