Make renderer window a native widget (#6274)

Remove QStackedWidget usage, switch to normal QWidget
This commit is contained in:
Cacodemon345
2025-10-04 02:58:54 +06:00
committed by GitHub
parent 37edcce1fa
commit 8d5b56311b
4 changed files with 24 additions and 12 deletions

View File

@@ -88,10 +88,16 @@ HWND rw_hwnd;
#endif
RendererStack::RendererStack(QWidget *parent, int monitor_index)
: QStackedWidget(parent)
: QWidget(parent)
, boxLayout(new QBoxLayout(QBoxLayout::TopToBottom, this))
, ui(new Ui::RendererStack)
{
boxLayout->setContentsMargins(0, 0, 0, 0);
setAttribute(Qt::WA_AcceptTouchEvents, true);
#ifdef Q_OS_WINDOWS
setAttribute(Qt::WA_NativeWindow, true);
(void)winId();
#endif
rendererTakesScreenshots = false;
#ifdef Q_OS_WINDOWS
int raw = 1;
@@ -187,6 +193,7 @@ RendererStack::mouseReleaseEvent(QMouseEvent *event)
rw_hwnd = (HWND) this->winId();
#endif
event->accept();
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
if (!dopause && this->geometry().contains(m_monitor_index >= 1 ? event->globalPosition().toPoint() : event->position().toPoint()) &&
#else
@@ -346,7 +353,7 @@ RendererStack::switchRenderer(Renderer renderer)
switchInProgress = true;
if (current) {
rendererWindow->finalize();
removeWidget(current.get());
boxLayout->removeWidget(current.get());
disconnect(this, &RendererStack::blitToRenderer, nullptr, nullptr);
/* Create new renderer only after previous is destroyed! */
@@ -442,9 +449,9 @@ RendererStack::createRenderer(Renderer renderer)
current->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
current->setStyleSheet("background-color: black");
current->setAttribute(Qt::WA_AlwaysStackOnTop);
addWidget(current.get());
this->setStyleSheet("background-color: black");
boxLayout->addWidget(current.get());
rendererWindow->r_monitor_index = m_monitor_index;
@@ -536,7 +543,7 @@ RendererStack::event(QEvent* event)
if (mouse_x_abs > 1) mouse_x_abs = 1;
if (mouse_y_abs > 1) mouse_y_abs = 1;
}
return QStackedWidget::event(event);
return QWidget::event(event);
}
#ifdef Q_OS_WINDOWS
@@ -559,7 +566,7 @@ RendererStack::event(QEvent* event)
if (mouse_x_abs > 1) mouse_x_abs = 1;
if (mouse_y_abs > 1) mouse_y_abs = 1;
return QStackedWidget::event(event);
return QWidget::event(event);
}
#endif
@@ -679,10 +686,10 @@ RendererStack::event(QEvent* event)
}
default:
return QStackedWidget::event(event);
return QWidget::event(event);
}
return QStackedWidget::event(event);
return QWidget::event(event);
}
void