diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-05-14 20:37:43 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2021-05-15 15:26:01 +0200 |
commit | e920e6d600a4c4504cbc04b89d4078dd49e2df66 (patch) | |
tree | 6d1742014aaec21bb522ee08812f7455c07209b3 | |
parent | 67942980133c11b8aa99b9687df7599d4e718659 (diff) |
gtk4: strip GtkSpinButton properties that don't exist anymore
presumably due to de-inheritance from GtkEntry
Change-Id: Ibbe7f4c05025123f2ebd594ed157bd346e3a237a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115636
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | vcl/unx/gtk3/gtkinst.cxx | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index aaaea626d3e7..2af11bbf477b 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -17567,6 +17567,15 @@ void SetPropertyOnTopLevel(const Reference<css::xml::dom::XNode>& xNode, const R } } +OUString GetParentObjectType(const Reference<css::xml::dom::XNode>& xNode) +{ + auto xParent = xNode->getParentNode(); + assert(xParent->getNodeName() == "object"); + css::uno::Reference<css::xml::dom::XNamedNodeMap> xParentMap = xParent->getAttributes(); + css::uno::Reference<css::xml::dom::XNode> xClass = xParentMap->getNamedItem("class"); + return xClass->getNodeValue(); +} + bool ConvertTree(const Reference<css::xml::dom::XNode>& xNode) { css::uno::Reference<css::xml::dom::XNodeList> xNodeList = xNode->getChildNodes(); @@ -17626,6 +17635,30 @@ bool ConvertTree(const Reference<css::xml::dom::XNode>& xNode) xCantFocus = xChild; } + if (sName == "activates-default") + { + if (GetParentObjectType(xChild) == "GtkSpinButton") + xRemoveList.push_back(xChild); + } + + if (sName == "truncate-multiline") + { + if (GetParentObjectType(xChild) == "GtkSpinButton") + xRemoveList.push_back(xChild); + } + + if (sName == "shadow-type") + { + if (GetParentObjectType(xChild) == "GtkFrame") + xRemoveList.push_back(xChild); + } + + if (sName == "draw-indicator") + { + assert(toBool(xChild->getFirstChild()->getNodeValue())); + xRemoveList.push_back(xChild); + } + if (sName == "type-hint" || sName == "skip-taskbar-hint" || sName == "can-default" || sName == "has-default" || sName == "border-width" || sName == "layout-style" || @@ -17755,6 +17788,11 @@ bool ConvertTree(const Reference<css::xml::dom::XNode>& xNode) xRemoveList.push_back(xChild); } + else if (xChild->getNodeName() == "accessibility") + { + // TODO <relation type="labelled-by" target="pagenumcb"/> -> <relation name="labelled-by">pagenumcb</relation> + xRemoveList.push_back(xChild); + } auto xNextChild = xChild->getNextSibling(); @@ -17831,6 +17869,11 @@ bool ConvertTree(const Reference<css::xml::dom::XNode>& xNode) else // if (!xId->getNodeValue().startsWith("messagedialog-action_area")) xClass->setNodeValue("GtkBox"); } + else if (sClass == "GtkRadioButton") + { + xClass->setNodeValue("GtkCheckButton"); + } + } xChild = xNextChild; |