Add keyboardModifiers member to QStyleOptionSlider, and use it for mac
Gets rid of a call to QApplication::keyboardModifiers in a method that is anyway only called from an input event handler, where we have that information already. Task-number: QTBUG-73829 Change-Id: I81753d6bf725e9db4918d831fac5b03a0b1940b9 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
This commit is contained in:
parent
dbe179e959
commit
e278d72192
@ -2644,7 +2644,8 @@ int QMacStyle::styleHint(StyleHint sh, const QStyleOption *opt, const QWidget *w
|
||||
case SH_ScrollBar_LeftClickAbsolutePosition: {
|
||||
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
|
||||
bool result = [defaults boolForKey:@"AppleScrollerPagingBehavior"];
|
||||
if(QApplication::keyboardModifiers() & Qt::AltModifier)
|
||||
const QStyleOptionSlider *sliderOpt = qstyleoption_cast<const QStyleOptionSlider*>(opt);
|
||||
if (sliderOpt && sliderOpt->keyboardModifiers & Qt::AltModifier)
|
||||
ret = !result;
|
||||
else
|
||||
ret = result;
|
||||
|
@ -1966,7 +1966,7 @@ QStyleOptionSlider::QStyleOptionSlider()
|
||||
: QStyleOptionComplex(Version, SO_Slider), orientation(Qt::Horizontal), minimum(0), maximum(0),
|
||||
tickPosition(QSlider::NoTicks), tickInterval(0), upsideDown(false),
|
||||
sliderPosition(0), sliderValue(0), singleStep(0), pageStep(0), notchTarget(0.0),
|
||||
dialWrapping(false)
|
||||
dialWrapping(false), keyboardModifiers{}
|
||||
{
|
||||
}
|
||||
|
||||
@ -1977,7 +1977,7 @@ QStyleOptionSlider::QStyleOptionSlider(int version)
|
||||
: QStyleOptionComplex(version, SO_Slider), orientation(Qt::Horizontal), minimum(0), maximum(0),
|
||||
tickPosition(QSlider::NoTicks), tickInterval(0), upsideDown(false),
|
||||
sliderPosition(0), sliderValue(0), singleStep(0), pageStep(0), notchTarget(0.0),
|
||||
dialWrapping(false)
|
||||
dialWrapping(false), keyboardModifiers{}
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -527,6 +527,7 @@ public:
|
||||
int pageStep;
|
||||
qreal notchTarget;
|
||||
bool dialWrapping;
|
||||
Qt::KeyboardModifiers keyboardModifiers;
|
||||
|
||||
QStyleOptionSlider();
|
||||
QStyleOptionSlider(const QStyleOptionSlider &other) : QStyleOptionComplex(Version, Type) { *this = other; }
|
||||
|
@ -553,6 +553,7 @@ void QScrollBar::mousePressEvent(QMouseEvent *e)
|
||||
nullptr, this);
|
||||
QStyleOptionSlider opt;
|
||||
initStyleOption(&opt);
|
||||
opt.keyboardModifiers = e->modifiers();
|
||||
|
||||
if (d->maximum == d->minimum // no range
|
||||
|| (e->buttons() & (~e->button())) // another button was clicked before
|
||||
|
Loading…
x
Reference in New Issue
Block a user