[*] Harden Qt6.7 (2023/11)
Change-Id: Ibf3e7161e31418e4fbcddfdd3f7d5c99ba5a82b3
This commit is contained in:
parent
04403770e6
commit
65e977f062
@ -1133,10 +1133,10 @@ bool QCoreApplication::notifyInternal2(QObject *receiver, QEvent *event)
|
|||||||
if (!selfRequired)
|
if (!selfRequired)
|
||||||
return doNotify(receiver, event);
|
return doNotify(receiver, event);
|
||||||
|
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
|
//#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
|
||||||
if (threadData->thread.loadRelaxed() != QCoreApplicationPrivate::mainThread())
|
if (threadData->thread.loadRelaxed() != QCoreApplicationPrivate::mainThread())
|
||||||
return false;
|
return false;
|
||||||
#endif
|
//#endif
|
||||||
return self->notify(receiver, event);
|
return self->notify(receiver, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -545,6 +545,8 @@ void QLayout::widgetEvent(QEvent *e)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case QEvent::LayoutRequest:
|
case QEvent::LayoutRequest:
|
||||||
|
if (!parent())
|
||||||
|
break;
|
||||||
if (static_cast<QWidget *>(parent())->isVisible())
|
if (static_cast<QWidget *>(parent())->isVisible())
|
||||||
activate();
|
activate();
|
||||||
break;
|
break;
|
||||||
@ -579,11 +581,13 @@ int QLayout::totalMinimumHeightForWidth(int w) const
|
|||||||
int side=0, top=0;
|
int side=0, top=0;
|
||||||
if (d->topLevel) {
|
if (d->topLevel) {
|
||||||
QWidget *parent = parentWidget();
|
QWidget *parent = parentWidget();
|
||||||
|
if (d->topLevel) {
|
||||||
parent->ensurePolished();
|
parent->ensurePolished();
|
||||||
QWidgetPrivate *wd = parent->d_func();
|
QWidgetPrivate *wd = parent->d_func();
|
||||||
side += wd->leftmargin + wd->rightmargin;
|
side += wd->leftmargin + wd->rightmargin;
|
||||||
top += wd->topmargin + wd->bottommargin;
|
top += wd->topmargin + wd->bottommargin;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
int h = minimumHeightForWidth(w - side) + top;
|
int h = minimumHeightForWidth(w - side) + top;
|
||||||
#if QT_CONFIG(menubar)
|
#if QT_CONFIG(menubar)
|
||||||
h += menuBarHeightForWidth(d->menubar, w);
|
h += menuBarHeightForWidth(d->menubar, w);
|
||||||
@ -601,11 +605,13 @@ int QLayout::totalHeightForWidth(int w) const
|
|||||||
int side=0, top=0;
|
int side=0, top=0;
|
||||||
if (d->topLevel) {
|
if (d->topLevel) {
|
||||||
QWidget *parent = parentWidget();
|
QWidget *parent = parentWidget();
|
||||||
|
if (parent) {
|
||||||
parent->ensurePolished();
|
parent->ensurePolished();
|
||||||
QWidgetPrivate *wd = parent->d_func();
|
QWidgetPrivate *wd = parent->d_func();
|
||||||
side += wd->leftmargin + wd->rightmargin;
|
side += wd->leftmargin + wd->rightmargin;
|
||||||
top += wd->topmargin + wd->bottommargin;
|
top += wd->topmargin + wd->bottommargin;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
int h = heightForWidth(w - side) + top;
|
int h = heightForWidth(w - side) + top;
|
||||||
#if QT_CONFIG(menubar)
|
#if QT_CONFIG(menubar)
|
||||||
h += menuBarHeightForWidth(d->menubar, w);
|
h += menuBarHeightForWidth(d->menubar, w);
|
||||||
@ -623,11 +629,13 @@ QSize QLayout::totalMinimumSize() const
|
|||||||
int side=0, top=0;
|
int side=0, top=0;
|
||||||
if (d->topLevel) {
|
if (d->topLevel) {
|
||||||
QWidget *pw = parentWidget();
|
QWidget *pw = parentWidget();
|
||||||
|
if (pw) {
|
||||||
pw->ensurePolished();
|
pw->ensurePolished();
|
||||||
QWidgetPrivate *wd = pw->d_func();
|
QWidgetPrivate *wd = pw->d_func();
|
||||||
side += wd->leftmargin + wd->rightmargin;
|
side += wd->leftmargin + wd->rightmargin;
|
||||||
top += wd->topmargin + wd->bottommargin;
|
top += wd->topmargin + wd->bottommargin;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QSize s = minimumSize();
|
QSize s = minimumSize();
|
||||||
#if QT_CONFIG(menubar)
|
#if QT_CONFIG(menubar)
|
||||||
@ -646,11 +654,13 @@ QSize QLayout::totalSizeHint() const
|
|||||||
int side=0, top=0;
|
int side=0, top=0;
|
||||||
if (d->topLevel) {
|
if (d->topLevel) {
|
||||||
QWidget *pw = parentWidget();
|
QWidget *pw = parentWidget();
|
||||||
|
if (pw) {
|
||||||
pw->ensurePolished();
|
pw->ensurePolished();
|
||||||
QWidgetPrivate *wd = pw->d_func();
|
QWidgetPrivate *wd = pw->d_func();
|
||||||
side += wd->leftmargin + wd->rightmargin;
|
side += wd->leftmargin + wd->rightmargin;
|
||||||
top += wd->topmargin + wd->bottommargin;
|
top += wd->topmargin + wd->bottommargin;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QSize s = sizeHint();
|
QSize s = sizeHint();
|
||||||
if (hasHeightForWidth())
|
if (hasHeightForWidth())
|
||||||
@ -671,11 +681,13 @@ QSize QLayout::totalMaximumSize() const
|
|||||||
int side=0, top=0;
|
int side=0, top=0;
|
||||||
if (d->topLevel) {
|
if (d->topLevel) {
|
||||||
QWidget *pw = parentWidget();
|
QWidget *pw = parentWidget();
|
||||||
|
if (pw) {
|
||||||
pw->ensurePolished();
|
pw->ensurePolished();
|
||||||
QWidgetPrivate *wd = pw->d_func();
|
QWidgetPrivate *wd = pw->d_func();
|
||||||
side += wd->leftmargin + wd->rightmargin;
|
side += wd->leftmargin + wd->rightmargin;
|
||||||
top += wd->topmargin + wd->bottommargin;
|
top += wd->topmargin + wd->bottommargin;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QSize s = maximumSize();
|
QSize s = maximumSize();
|
||||||
#if QT_CONFIG(menubar)
|
#if QT_CONFIG(menubar)
|
||||||
@ -972,7 +984,7 @@ void QLayout::update()
|
|||||||
QLayout *layout = this;
|
QLayout *layout = this;
|
||||||
while (layout && layout->d_func()->activated) {
|
while (layout && layout->d_func()->activated) {
|
||||||
layout->d_func()->activated = false;
|
layout->d_func()->activated = false;
|
||||||
if (layout->d_func()->topLevel) {
|
if (layout->d_func()->topLevel && layout->parent()) {
|
||||||
Q_ASSERT(layout->parent()->isWidgetType());
|
Q_ASSERT(layout->parent()->isWidgetType());
|
||||||
QWidget *mw = static_cast<QWidget*>(layout->parent());
|
QWidget *mw = static_cast<QWidget*>(layout->parent());
|
||||||
if (mw) { /*we always validate layout later, implying it can be null. why the fuck were the Qt devs copying the [~volatile~] parent multiple times and using it without a check?
|
if (mw) { /*we always validate layout later, implying it can be null. why the fuck were the Qt devs copying the [~volatile~] parent multiple times and using it without a check?
|
||||||
|
Loading…
Reference in New Issue
Block a user