diff options
author | Eike Ziller <eike.ziller@qt.io> | 2024-04-08 08:40:42 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2024-04-10 06:18:45 +0000 |
commit | 4f737256c0a698ff3ba380cbaef1ba80a16fc3a8 (patch) | |
tree | c2e9620a57ace93df474722a34ee3b0a746fd349 | |
parent | 9c7b5d073bf4713250648cf7ea35580f489f7fd7 (diff) |
themselves. litehtml v0.9 returns a placement of 0 for elements that
don't have a renderer. Technically speaking that might even be correct,
because these elements are not "placed".
Search for a parent that does provide a placement.
This fixes jumping to QML properties in the QML documentation.
Task-number: QTCREATORBUG-30625
Change-Id: I1deb01d4e884ca39689f1444174ded0ceeb7cac6
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
-rw-r--r-- | src/container_qpainter.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/container_qpainter.cpp b/src/container_qpainter.cpp index 7eb7285..ce5ade2 100644 --- a/src/container_qpainter.cpp +++ b/src/container_qpainter.cpp @@ -995,9 +995,14 @@ int DocumentContainer::anchorY(const QString &anchorName) const if (!element) { element = d->m_document->root()->select_one(QString("[name=%1]").arg(anchorName).toStdString()); } - if (element) - return element->get_placement().y; - return -1; + if (!element) + return -1; + while (element) { + if (element->get_placement().y > 0) + return element->get_placement().y; + element = element->parent(); + } + return 0; } QVector<QRect> DocumentContainer::mousePressEvent(const QPoint &documentPos, |