[education/rkward] rkward/windows: Do not set parent during QQuickWidget construction:

Thomas Friedrichsmeier null at kde.org
Thu Apr 9 20:44:24 BST 2026


Git commit 9abcc543dee56e6f3eeb76ec05585d9ea151ac4f by Thomas Friedrichsmeier.
Committed on 09/04/2026 at 19:44.
Pushed by tfry into branch 'master'.

Do not set parent during QQuickWidget construction:

It will force a premature showEvent on the parent

M  +1    -1    rkward/windows/rkhtmlviewer.h
M  +1    -1    rkward/windows/rkhtmlwindow.cpp
M  +2    -2    rkward/windows/rkqwebenginewidget.cpp
M  +1    -1    rkward/windows/rkqwebenginewidget.h
M  +2    -2    rkward/windows/rkqwebview.cpp
M  +1    -1    rkward/windows/rkqwebview.h

https://invent.kde.org/education/rkward/-/commit/9abcc543dee56e6f3eeb76ec05585d9ea151ac4f

diff --git a/rkward/windows/rkhtmlviewer.h b/rkward/windows/rkhtmlviewer.h
index ea4270fc8..00fdc4c23 100644
--- a/rkward/windows/rkhtmlviewer.h
+++ b/rkward/windows/rkhtmlviewer.h
@@ -22,7 +22,7 @@ class RKHTMLViewer : public QObject {
 	Q_OBJECT
   public:
 	static RKHTMLViewer *getNew(RKHTMLWindow *parent);
-	virtual QWidget *createWidget(QWidget *parent) = 0;
+	virtual QWidget *createWidget() = 0;
 	virtual void reload() {
 		load(url());
 	}
diff --git a/rkward/windows/rkhtmlwindow.cpp b/rkward/windows/rkhtmlwindow.cpp
index 3e88a2a33..a6d5d3984 100644
--- a/rkward/windows/rkhtmlwindow.cpp
+++ b/rkward/windows/rkhtmlwindow.cpp
@@ -71,7 +71,7 @@ RKHTMLWindow::RKHTMLWindow(QWidget *parent, WindowMode mode) : RKMDIWindow(paren
 	QVBoxLayout *layout = new QVBoxLayout(this);
 	layout->setContentsMargins(0, 0, 0, 0);
 	page = RKHTMLViewer::getNew(this);
-	auto view = page->createWidget(this);
+	auto view = page->createWidget();
 	view->setContextMenuPolicy(Qt::CustomContextMenu);
 	layout->addWidget(view, 1);
 	findbar = new RKFindBar(this, true);
diff --git a/rkward/windows/rkqwebenginewidget.cpp b/rkward/windows/rkqwebenginewidget.cpp
index 29c2795a8..e345f2915 100644
--- a/rkward/windows/rkqwebenginewidget.cpp
+++ b/rkward/windows/rkqwebenginewidget.cpp
@@ -215,7 +215,7 @@ RKQWebEngineWidget::RKQWebEngineWidget(RKHTMLWindow *parent) : RKHTMLViewer(pare
 	}
 }
 
-QWidget *RKQWebEngineWidget::createWidget(QWidget *parent) {
+QWidget *RKQWebEngineWidget::createWidget() {
 	RK_TRACE(APP);
 
 	// We keep our own history.
@@ -245,7 +245,7 @@ QWidget *RKQWebEngineWidget::createWidget(QWidget *parent) {
 	});
 
 	RK_ASSERT(!view);
-	view = new QWebEngineView(page, parent);
+	view = new QWebEngineView(page);
 	connect(view, &QWebEngineView::selectionChanged, this, [this]() {
 		Q_EMIT selectionChanged(view->hasSelection());
 	});
diff --git a/rkward/windows/rkqwebenginewidget.h b/rkward/windows/rkqwebenginewidget.h
index 297eba049..205cc6308 100644
--- a/rkward/windows/rkqwebenginewidget.h
+++ b/rkward/windows/rkqwebenginewidget.h
@@ -17,7 +17,7 @@ class QWebEngineView;
 
 class RKQWebEngineWidget : public RKHTMLViewer {
   public:
-	QWidget *createWidget(QWidget *parent) override;
+	QWidget *createWidget() override;
 	void reload() override;
 	QUrl url() const override;
 	void load(const QUrl &url) override;
diff --git a/rkward/windows/rkqwebview.cpp b/rkward/windows/rkqwebview.cpp
index 2c2f80ee8..1d40cd158 100644
--- a/rkward/windows/rkqwebview.cpp
+++ b/rkward/windows/rkqwebview.cpp
@@ -39,9 +39,9 @@ void RKQWebView::onPageLoad(const QUrl &_url, const QString &error, int status)
 	}
 }
 
-QWidget *RKQWebView::createWidget(QWidget *parent) {
+QWidget *RKQWebView::createWidget() {
 	RK_TRACE(APP);
-	view = new QQuickWidget(parent);
+	view = new QQuickWidget();
 	view->setSource(QUrl(QStringLiteral("qrc:/qml/rkqwebview.qml")));
 	view->setResizeMode(QQuickWidget::SizeRootObjectToView);
 	connect(webView(), SIGNAL(loaded(const QUrl &, const QString &, int)), this, SLOT(onPageLoad(const QUrl &, const QString &, int)));
diff --git a/rkward/windows/rkqwebview.h b/rkward/windows/rkqwebview.h
index e18780ac7..48511ed09 100644
--- a/rkward/windows/rkqwebview.h
+++ b/rkward/windows/rkqwebview.h
@@ -18,7 +18,7 @@ class QQuickItem;
 class RKQWebView : public RKHTMLViewer {
 	Q_OBJECT
   public:
-	QWidget *createWidget(QWidget *parent) override;
+	QWidget *createWidget() override;
 	QUrl url() const override;
 	void load(const QUrl &url) override;
 	void print() override;



More information about the rkward-tracker mailing list