From 8a84493d1fe92faefecbd3352f911632cbb0e324 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Tue, 7 Apr 2020 20:52:50 +0100 Subject: add get_entry_font to match set_entry_font MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I5996c2cb9470de251d9bc8638c9ab7917e533f7b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91853 Tested-by: Jenkins Reviewed-by: Caolán McNamara --- vcl/unx/gtk3/gtk3gtkinst.cxx | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'vcl/unx') diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 29d1ad3b0b9f..69904fe34b17 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -8444,6 +8444,7 @@ class GtkInstanceEntry : public GtkInstanceWidget, public virtual weld::Entry { private: GtkEntry* m_pEntry; + std::unique_ptr m_xFont; gulong m_nChangedSignalId; gulong m_nInsertTextSignalId; gulong m_nCursorPosSignalId; @@ -8621,11 +8622,19 @@ public: virtual void set_font(const vcl::Font& rFont) override { + m_xFont.reset(new vcl::Font(rFont)); PangoAttrList* pAttrList = create_attr_list(rFont); gtk_entry_set_attributes(m_pEntry, pAttrList); pango_attr_list_unref(pAttrList); } + virtual vcl::Font get_font() override + { + if (m_xFont) + return *m_xFont; + return GtkInstanceWidget::get_font(); + } + void fire_signal_changed() { signal_changed(); @@ -12577,6 +12586,7 @@ private: GtkCellRenderer* m_pTextRenderer; GtkMenu* m_pMenu; GtkWidget* m_pToggleButton; + std::unique_ptr m_xFont; std::unique_ptr m_xSorter; vcl::QuickSelectionEngine m_aQuickSelectionEngine; std::vector m_aSeparatorRows; @@ -13405,6 +13415,7 @@ public: virtual void set_entry_font(const vcl::Font& rFont) override { + m_xFont.reset(new vcl::Font(rFont)); PangoAttrList* pAttrList = create_attr_list(rFont); GtkWidget* pChild = gtk_bin_get_child(GTK_BIN(m_pComboBox)); assert(pChild && GTK_IS_ENTRY(pChild)); @@ -13413,6 +13424,18 @@ public: pango_attr_list_unref(pAttrList); } + virtual vcl::Font get_entry_font() override + { + if (m_xFont) + return *m_xFont; + GtkWidget* pChild = gtk_bin_get_child(GTK_BIN(m_pComboBox)); + assert(pChild && GTK_IS_ENTRY(pChild)); + GtkEntry* pEntry = GTK_ENTRY(pChild); + PangoContext* pContext = gtk_widget_get_pango_context(GTK_WIDGET(pEntry)); + return pango_to_vcl(pango_context_get_font_description(pContext), + Application::GetSettings().GetUILanguageTag().getLocale()); + } + virtual void disable_notify_events() override { if (GtkEntry* pEntry = get_entry()) @@ -13716,6 +13739,11 @@ public: m_xEntry->set_font(rFont); } + virtual vcl::Font get_entry_font() override + { + return m_xEntry->get_font(); + } + virtual void grab_focus() override { m_xEntry->grab_focus(); } virtual void connect_focus_in(const Link& rLink) override -- cgit