vcl/unx/gtk3/gtkinst.cxx | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-)
New commits: commit 2dc55603806dc9e508eb0d70ddc311a85613ef22 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Sat May 15 21:24:17 2021 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Tue May 18 11:27:15 2021 +0200 gtk4: enable SpinButton inherit from GtkInstanceEditable instead of GtkInstanceEntry Change-Id: If0ddb9b36bfbc6c21edd2119c1c1cff0a7285b89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115728 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index 78e3561814f0..28168543e318 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -13773,9 +13773,11 @@ IMPL_LINK_NOARG(GtkInstanceIconView, async_signal_selection_changed, void*, void signal_selection_changed(); } +#endif + namespace { -class GtkInstanceSpinButton : public GtkInstanceEntry, public virtual weld::SpinButton +class GtkInstanceSpinButton : public GtkInstanceEditable, public virtual weld::SpinButton { private: GtkSpinButton* m_pButton; @@ -13830,7 +13832,7 @@ private: virtual void signal_activate() override { gtk_spin_button_update(m_pButton); - GtkInstanceEntry::signal_activate(); + GtkInstanceEditable::signal_activate(); } double toGtk(int nValue) const @@ -13845,7 +13847,7 @@ private: public: GtkInstanceSpinButton(GtkSpinButton* pButton, GtkInstanceBuilder* pBuilder, bool bTakeOwnership) - : GtkInstanceEntry(GTK_ENTRY(pButton), pBuilder, bTakeOwnership) + : GtkInstanceEditable(GTK_WIDGET(pButton), pBuilder, bTakeOwnership) , m_pButton(pButton) , m_nValueChangedSignalId(g_signal_connect(pButton, "value-changed", G_CALLBACK(signalValueChanged), this)) , m_nOutputSignalId(g_signal_connect(pButton, "output", G_CALLBACK(signalOutput), this)) @@ -13877,7 +13879,11 @@ public: // value from this new text, but don't want to reformat with that value if (!m_bFormatting) { +#if GTK_CHECK_VERSION(4, 0, 0) + gtk_editable_set_text(GTK_EDITABLE(m_pButton), OUStringToOString(rText, RTL_TEXTENCODING_UTF8).getStr()); +#else gtk_entry_set_text(GTK_ENTRY(m_pButton), OUStringToOString(rText, RTL_TEXTENCODING_UTF8).getStr()); +#endif m_bBlockOutput = true; gtk_spin_button_update(m_pButton); @@ -13889,7 +13895,11 @@ public: bool bKeepBlank = m_bBlank && get_value() == 0; if (!bKeepBlank) { +#if GTK_CHECK_VERSION(4, 0, 0) + gtk_editable_set_text(GTK_EDITABLE(m_pButton), OUStringToOString(rText, RTL_TEXTENCODING_UTF8).getStr()); +#else gtk_entry_set_text(GTK_ENTRY(m_pButton), OUStringToOString(rText, RTL_TEXTENCODING_UTF8).getStr()); +#endif m_bBlank = false; } } @@ -13941,12 +13951,12 @@ public: virtual void disable_notify_events() override { g_signal_handler_block(m_pButton, m_nValueChangedSignalId); - GtkInstanceEntry::disable_notify_events(); + GtkInstanceEditable::disable_notify_events(); } virtual void enable_notify_events() override { - GtkInstanceEntry::enable_notify_events(); + GtkInstanceEditable::enable_notify_events(); g_signal_handler_unblock(m_pButton, m_nValueChangedSignalId); } @@ -13958,6 +13968,12 @@ public: } }; +} + +#if !GTK_CHECK_VERSION(4, 0, 0) + +namespace { + class GtkInstanceFormattedSpinButton : public GtkInstanceEntry, public virtual weld::FormattedSpinButton { private: @@ -18779,16 +18795,11 @@ public: virtual std::unique_ptr<weld::SpinButton> weld_spin_button(const OString &id) override { -#if !GTK_CHECK_VERSION(4, 0, 0) GtkSpinButton* pSpinButton = GTK_SPIN_BUTTON(gtk_builder_get_object(m_pBuilder, id.getStr())); if (!pSpinButton) return nullptr; auto_add_parentless_widgets_to_container(GTK_WIDGET(pSpinButton)); return std::make_unique<GtkInstanceSpinButton>(pSpinButton, this, false); -#else - (void)id; - return nullptr; -#endif } virtual std::unique_ptr<weld::MetricSpinButton> weld_metric_spin_button(const OString& id, FieldUnit eUnit) override @@ -19073,8 +19084,11 @@ void GtkInstanceWidget::help_hierarchy_foreach(const std::function<bool(const OS weld::Builder* GtkInstance::CreateBuilder(weld::Widget* pParent, const OUString& rUIRoot, const OUString& rUIFile) { #if GTK_CHECK_VERSION(4, 0, 0) - if (rUIFile != "sfx/ui/querysavedialog.ui" && + if (rUIFile != "cui/ui/percentdialog.ui" && + rUIFile != "sfx/ui/querysavedialog.ui" && rUIFile != "svt/ui/javadisableddialog.ui" && + rUIFile != "modules/smath/ui/fontsizedialog.ui" && + rUIFile != "modules/smath/ui/savedefaultsdialog.ui" && rUIFile != "modules/swriter/ui/gotopagedialog.ui" && rUIFile != "modules/swriter/ui/wordcount.ui") { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits