diff --git a/QtScrcpy/toolform.cpp b/QtScrcpy/toolform.cpp index 1650d21..000729a 100644 --- a/QtScrcpy/toolform.cpp +++ b/QtScrcpy/toolform.cpp @@ -8,7 +8,7 @@ ToolForm::ToolForm(QWidget* adsorbWidget, AdsorbPositions adsorbPos) , ui(new Ui::ToolForm) { ui->setupUi(this); - setWindowFlags(Qt::FramelessWindowHint); + setWindowFlags(windowFlags() | Qt::FramelessWindowHint); } ToolForm::~ToolForm() diff --git a/QtScrcpy/uibase/magneticwidget.cpp b/QtScrcpy/uibase/magneticwidget.cpp index 390a14c..96a4b10 100644 --- a/QtScrcpy/uibase/magneticwidget.cpp +++ b/QtScrcpy/uibase/magneticwidget.cpp @@ -11,9 +11,9 @@ MagneticWidget::MagneticWidget(QWidget* adsorbWidget, AdsorbPositions adsorbPos) , m_adsorbWidget(adsorbWidget) { Q_ASSERT(m_adsorbWidget); - setAttribute(Qt::WA_DeleteOnClose); + setParent(m_adsorbWidget); + setWindowFlags(windowFlags() | Qt::Tool); - connect(m_adsorbWidget, &QWidget::destroyed, this, &QWidget::close); m_adsorbWidget->installEventFilter(this); } @@ -33,6 +33,10 @@ bool MagneticWidget::eventFilter(QObject *watched, QEvent *event) if (m_adsorbed && QEvent::Move == event->type()) { move(m_adsorbWidget->pos() - m_relativePos); } + if (m_adsorbed && (QEvent::Show == event->type() || QEvent::FocusIn == event->type())) { + show(); + raise(); + } if (m_adsorbed && QEvent::Resize == event->type()) { QRect parentRect; QRect targetRect;