forked from github_mirror/framelesshelper
update hovered states
This commit is contained in:
parent
da342753a2
commit
678f903f5c
|
@ -57,6 +57,8 @@ void FramelessHelper::install()
|
||||||
|
|
||||||
m_window->setGeometry(origRect);
|
m_window->setGeometry(origRect);
|
||||||
resizeWindow(origRect.size());
|
resizeWindow(origRect.size());
|
||||||
|
|
||||||
|
m_window->installEventFilter(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -67,6 +69,8 @@ void FramelessHelper::uninstall()
|
||||||
m_window->setFlags(m_origWindowFlags);
|
m_window->setFlags(m_origWindowFlags);
|
||||||
m_origWindowFlags = Qt::WindowFlags();
|
m_origWindowFlags = Qt::WindowFlags();
|
||||||
resizeWindow(QSize());
|
resizeWindow(QSize());
|
||||||
|
|
||||||
|
m_window->removeEventFilter(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -222,9 +226,46 @@ void FramelessHelper::updateCursor()
|
||||||
setCursor(cursorForFrameSection(m_hoveredFrameSection));
|
setCursor(cursorForFrameSection(m_hoveredFrameSection));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FramelessHelper::updateMouse(const QPoint& pos)
|
||||||
|
{
|
||||||
|
updateHoverStates(pos);
|
||||||
|
updateCursor();
|
||||||
|
}
|
||||||
|
|
||||||
|
void FramelessHelper::updateHoverStates(const QPoint& pos)
|
||||||
|
{
|
||||||
|
m_hoveredFrameSection = mapPosToFrameSection(pos);
|
||||||
|
}
|
||||||
|
|
||||||
bool FramelessHelper::eventFilter(QObject *object, QEvent *event)
|
bool FramelessHelper::eventFilter(QObject *object, QEvent *event)
|
||||||
{
|
{
|
||||||
|
if (object == m_window) {
|
||||||
|
switch (event->type())
|
||||||
|
{
|
||||||
|
case QEvent::Resize:
|
||||||
|
{
|
||||||
|
QResizeEvent* re = static_cast<QResizeEvent *>(event);
|
||||||
|
resizeWindow(re->size());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case QEvent::NonClientAreaMouseMove:
|
||||||
|
case QEvent::MouseMove:
|
||||||
|
{
|
||||||
|
auto ev = static_cast<QMouseEvent *>(event);
|
||||||
|
updateMouse(ev->pos());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case QEvent::NonClientAreaMouseButtonPress:
|
||||||
|
case QEvent::MouseButtonPress:
|
||||||
|
break;
|
||||||
|
case QEvent::NonClientAreaMouseButtonRelease:
|
||||||
|
case QEvent::MouseButtonRelease:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FRAMELESSHELPER_END_NAMESPACE
|
FRAMELESSHELPER_END_NAMESPACE
|
||||||
|
|
|
@ -77,6 +77,9 @@ public:
|
||||||
void unsetCursor();
|
void unsetCursor();
|
||||||
void updateCursor();
|
void updateCursor();
|
||||||
|
|
||||||
|
void updateMouse(const QPoint& pos);
|
||||||
|
void updateHoverStates(const QPoint& pos);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool eventFilter(QObject *object, QEvent *event) override;
|
bool eventFilter(QObject *object, QEvent *event) override;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue