[Libreoffice-commits] core.git: vcl/unx
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Fri Sep 17 09:27:18 UTC 2021
vcl/unx/gtk3/gtkinst.cxx | 27 +++------------------------
1 file changed, 3 insertions(+), 24 deletions(-)
New commits:
commit b4cf6dd97837c34a3e4b754f5132026830051720
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Thu Sep 16 16:51:19 2021 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Fri Sep 17 11:26:44 2021 +0200
gtk4: listen to "toggled" so callbacks see get_menu_item_active of true
Change-Id: I130ebbb6dad9c0f69667a1c95e97583183656710
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122211
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index 13e441fe58f8..60b2a7450846 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -10852,7 +10852,7 @@ private:
GtkWidget* pToggleButton = gtk_widget_get_first_child(GTK_WIDGET(pMenuButton));
assert(GTK_IS_TOGGLE_BUTTON(pToggleButton));
- g_signal_connect(pToggleButton, "state-flags-changed", G_CALLBACK(signalItemFlagsChanged), this);
+ g_signal_connect(pToggleButton, "toggled", G_CALLBACK(signalItemToggled), this);
#endif
// by default the GtkMenuButton down arrow button is as wide as
@@ -10909,7 +10909,6 @@ private:
signal_clicked(::get_buildable_id(GTK_BUILDABLE(pItem)));
}
-#if !GTK_CHECK_VERSION(4, 0, 0)
static void signalItemToggled(GtkToggleButton* pItem, gpointer widget)
{
GtkInstanceToolbar* pThis = static_cast<GtkInstanceToolbar*>(widget);
@@ -10921,37 +10920,17 @@ private:
{
for (const auto& a : m_aMenuButtonMap)
{
+#if !GTK_CHECK_VERSION(4, 0, 0)
if (a.second->getWidget() == GTK_WIDGET(pItem))
- {
- signal_toggle_menu(a.first);
- break;
- }
- }
- }
#else
- static void signalItemFlagsChanged(GtkToggleButton* pItem, GtkStateFlags flags, gpointer widget)
- {
- GtkInstanceToolbar* pThis = static_cast<GtkInstanceToolbar*>(widget);
- bool bOldChecked = flags & GTK_STATE_FLAG_CHECKED;
- bool bNewChecked = gtk_widget_get_state_flags(GTK_WIDGET(pItem)) & GTK_STATE_FLAG_CHECKED;
- if (bOldChecked == bNewChecked)
- return;
- SolarMutexGuard aGuard;
- pThis->signal_item_toggled(pItem);
- }
-
- void signal_item_toggled(GtkToggleButton* pItem)
- {
- for (auto& a : m_aMenuButtonMap)
- {
if (a.second->getWidget() == gtk_widget_get_parent(GTK_WIDGET(pItem)))
+#endif
{
signal_toggle_menu(a.first);
break;
}
}
}
-#endif
#if GTK_CHECK_VERSION(4, 0, 0)
static void set_item_image(GtkWidget* pItem, GtkWidget* pImage)
More information about the Libreoffice-commits
mailing list