Prevent state change of selected LineEdit in QWindowsVistaStyle when hovering
Hovering over a selected LineEdit gives the selected state precedence over hover state. Fixes: QTBUG-117606 Pick-to: 6.5 6.6 Change-Id: Ia52ce94443100bf3fb5d83b8dffa2752818ca33d Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io> Reviewed-by: Timothée Keller <timothee.keller@qt.io>
This commit is contained in:
parent
9a64449cc3
commit
4f51742ee1
@ -1442,17 +1442,17 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt
|
|||||||
theme = OpenThemeData(nullptr, L"Edit");
|
theme = OpenThemeData(nullptr, L"Edit");
|
||||||
partId = EP_EDITBORDER_NOSCROLL;
|
partId = EP_EDITBORDER_NOSCROLL;
|
||||||
|
|
||||||
if (oldState & State_MouseOver)
|
if (oldState & State_HasFocus)
|
||||||
|
fromState = ETS_SELECTED;
|
||||||
|
else if (oldState & State_MouseOver)
|
||||||
fromState = ETS_HOT;
|
fromState = ETS_HOT;
|
||||||
else if (oldState & State_HasFocus)
|
|
||||||
fromState = ETS_FOCUSED;
|
|
||||||
else
|
else
|
||||||
fromState = ETS_NORMAL;
|
fromState = ETS_NORMAL;
|
||||||
|
|
||||||
if (state & State_MouseOver)
|
if (state & State_HasFocus)
|
||||||
|
toState = ETS_SELECTED;
|
||||||
|
else if (state & State_MouseOver)
|
||||||
toState = ETS_HOT;
|
toState = ETS_HOT;
|
||||||
else if (state & State_HasFocus)
|
|
||||||
toState = ETS_FOCUSED;
|
|
||||||
else
|
else
|
||||||
toState = ETS_NORMAL;
|
toState = ETS_NORMAL;
|
||||||
|
|
||||||
@ -1957,10 +1957,10 @@ void QWindowsVistaStyle::drawPrimitive(PrimitiveElement element, const QStyleOpt
|
|||||||
stateId = ETS_DISABLED;
|
stateId = ETS_DISABLED;
|
||||||
else if (state & State_ReadOnly)
|
else if (state & State_ReadOnly)
|
||||||
stateId = ETS_READONLY;
|
stateId = ETS_READONLY;
|
||||||
else if (state & State_MouseOver)
|
|
||||||
stateId = ETS_HOT;
|
|
||||||
else if (state & State_HasFocus)
|
else if (state & State_HasFocus)
|
||||||
stateId = ETS_SELECTED;
|
stateId = ETS_SELECTED;
|
||||||
|
else if (state & State_MouseOver)
|
||||||
|
stateId = ETS_HOT;
|
||||||
QWindowsThemeData theme(widget, painter,
|
QWindowsThemeData theme(widget, painter,
|
||||||
QWindowsVistaStylePrivate::EditTheme,
|
QWindowsVistaStylePrivate::EditTheme,
|
||||||
EP_EDITBORDER_NOSCROLL, stateId, option->rect);
|
EP_EDITBORDER_NOSCROLL, stateId, option->rect);
|
||||||
|
Loading…
Reference in New Issue
Block a user