improve settings window behavior onlostfocus

-- and fix a crash from immutabilityChanged from
settings window
pull/1/head
Michail Vourlakos 8 years ago
parent dce9e76049
commit 6b1ff92463

@ -51,10 +51,10 @@ NowDockConfigView::NowDockConfigView(Plasma::Containment *containment, NowDockVi
syncSlideEffect();
});
//containment->setLocation(Plasma::Types::LeftEdge);
connect(containment, &Plasma::Containment::immutabilityChanged, this, &NowDockConfigView::immutabilityChanged);
/* connect(containment, &Plasma::Containment::immutabilityChanged
, [&](Plasma::Types::ImmutabilityType type) {
if (type != Plasma::Types::Mutable && isVisible())
if (type != Plasma::Types::Mutable && this && isVisible())
hide();
});*/
}
@ -196,12 +196,22 @@ void NowDockConfigView::hideEvent(QHideEvent *ev)
void NowDockConfigView::focusOutEvent(QFocusEvent *ev)
{
//FIXME: I can understand why we need to hide on focus out
Q_UNUSED(ev);
const auto *focusWindow = qGuiApp->focusWindow();
if (focusWindow && focusWindow->flags().testFlag(Qt::Popup))
return;
// hide();
}
void NowDockConfigView::immutabilityChanged(Plasma::Types::ImmutabilityType type)
{
if (type != Plasma::Types::Mutable && isVisible()) {
hide();
}
}
// kate: indent-mode cstyle; indent-width 4; replace-tabs on;

@ -21,6 +21,7 @@
#define NOWDOCKCONFIGVIEW_H
#include "plasmaquick/configview.h"
#include <plasma/package.h>
#include <QObject>
#include <QWindow>
@ -30,6 +31,7 @@
namespace Plasma {
class Applet;
class Containment;
class Types;
}
class NowDockView;
@ -52,6 +54,9 @@ protected:
void syncGeometry();
void syncSlideEffect();
private Q_SLOTS:
void immutabilityChanged(Plasma::Types::ImmutabilityType type);
private:
Plasma::Containment *m_containment{nullptr};
QPointer<NowDockView> m_dockView;

Loading…
Cancel
Save