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: {
|
case SH_ScrollBar_LeftClickAbsolutePosition: {
|
||||||
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
|
||||||
bool result = [defaults boolForKey:@"AppleScrollerPagingBehavior"];
|
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;
|
ret = !result;
|
||||||
else
|
else
|
||||||
ret = result;
|
ret = result;
|
||||||
|
@ -1966,7 +1966,7 @@ QStyleOptionSlider::QStyleOptionSlider()
|
|||||||
: QStyleOptionComplex(Version, SO_Slider), orientation(Qt::Horizontal), minimum(0), maximum(0),
|
: QStyleOptionComplex(Version, SO_Slider), orientation(Qt::Horizontal), minimum(0), maximum(0),
|
||||||
tickPosition(QSlider::NoTicks), tickInterval(0), upsideDown(false),
|
tickPosition(QSlider::NoTicks), tickInterval(0), upsideDown(false),
|
||||||
sliderPosition(0), sliderValue(0), singleStep(0), pageStep(0), notchTarget(0.0),
|
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),
|
: QStyleOptionComplex(version, SO_Slider), orientation(Qt::Horizontal), minimum(0), maximum(0),
|
||||||
tickPosition(QSlider::NoTicks), tickInterval(0), upsideDown(false),
|
tickPosition(QSlider::NoTicks), tickInterval(0), upsideDown(false),
|
||||||
sliderPosition(0), sliderValue(0), singleStep(0), pageStep(0), notchTarget(0.0),
|
sliderPosition(0), sliderValue(0), singleStep(0), pageStep(0), notchTarget(0.0),
|
||||||
dialWrapping(false)
|
dialWrapping(false), keyboardModifiers{}
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -527,6 +527,7 @@ public:
|
|||||||
int pageStep;
|
int pageStep;
|
||||||
qreal notchTarget;
|
qreal notchTarget;
|
||||||
bool dialWrapping;
|
bool dialWrapping;
|
||||||
|
Qt::KeyboardModifiers keyboardModifiers;
|
||||||
|
|
||||||
QStyleOptionSlider();
|
QStyleOptionSlider();
|
||||||
QStyleOptionSlider(const QStyleOptionSlider &other) : QStyleOptionComplex(Version, Type) { *this = other; }
|
QStyleOptionSlider(const QStyleOptionSlider &other) : QStyleOptionComplex(Version, Type) { *this = other; }
|
||||||
|
@ -553,6 +553,7 @@ void QScrollBar::mousePressEvent(QMouseEvent *e)
|
|||||||
nullptr, this);
|
nullptr, this);
|
||||||
QStyleOptionSlider opt;
|
QStyleOptionSlider opt;
|
||||||
initStyleOption(&opt);
|
initStyleOption(&opt);
|
||||||
|
opt.keyboardModifiers = e->modifiers();
|
||||||
|
|
||||||
if (d->maximum == d->minimum // no range
|
if (d->maximum == d->minimum // no range
|
||||||
|| (e->buttons() & (~e->button())) // another button was clicked before
|
|| (e->buttons() & (~e->button())) // another button was clicked before
|
||||||
|
Loading…
x
Reference in New Issue
Block a user