fixed:item hover status error

This commit is contained in:
shaojun 2019-10-24 15:13:16 +08:00
parent d7bcac40a1
commit b7fb2fae2b
4 changed files with 14 additions and 16 deletions

View File

@ -246,10 +246,8 @@ void PluginsItem::leaveEvent(QEvent *event)
// here we should check the mouse position to ensure the mouse is really leaved
// because this leaveEvent will also be called if setX11PassMouseEvent(false) is invoked
// in XWindowTrayWidget::sendHoverEvent()
if (!rect().contains(mapFromGlobal(QCursor::pos()))) {
m_hover = false;
update();
}
DockItem::leaveEvent(event);
}

View File

@ -149,11 +149,9 @@ void OnboardItem::mouseMoveEvent(QMouseEvent *event)
void OnboardItem::leaveEvent(QEvent *event)
{
if (!rect().contains(mapFromGlobal(QCursor::pos()))) {
m_hover = false;
m_pressed = false;
update();
}
m_hover = false;
m_pressed = false;
update();
QWidget::leaveEvent(event);
}

View File

@ -151,11 +151,9 @@ void PluginWidget::mouseMoveEvent(QMouseEvent *event)
void PluginWidget::leaveEvent(QEvent *event)
{
if (!rect().contains(mapFromGlobal(QCursor::pos()))) {
m_hover = false;
m_pressed = false;
update();
}
m_hover = false;
m_pressed = false;
update();
QWidget::leaveEvent(event);
}

View File

@ -20,6 +20,7 @@
*/
#include "fashiontraywidgetwrapper.h"
#include "../xembedtraywidget.h"
#include <QPainter>
#include <QDebug>
@ -178,12 +179,15 @@ void FashionTrayWidgetWrapper::leaveEvent(QEvent *event)
// here we should check the mouse position to ensure the mouse is really leaved
// because this leaveEvent will also be called if setX11PassMouseEvent(false) is invoked
// in XWindowTrayWidget::sendHoverEvent()
if (!rect().contains(mapFromGlobal(QCursor::pos()))) {
m_hover = false;
m_pressed = false;
update();
if (qobject_cast<XEmbedTrayWidget *>(m_absTrayWidget) && rect().contains(mapFromGlobal(QCursor::pos()))) {
return QWidget::leaveEvent(event);
}
m_hover = false;
m_pressed = false;
update();
QWidget::leaveEvent(event);
}