[Xfce4-commits] [panel-plugins/xfce4-statusnotifier-plugin] 02/02: Handle empty menu as no menu
noreply at xfce.org
noreply at xfce.org
Fri Oct 27 09:05:10 CEST 2017
This is an automated email from the git hooks/post-receive script.
n i n e t l s p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository panel-plugins/xfce4-statusnotifier-plugin.
commit 7e0c1ff68b4d619b06cb0733e178c074f68aea3d
Author: Viktor Odintsev <ninetls at xfce.org>
Date: Fri Oct 27 10:03:51 2017 +0300
Handle empty menu as no menu
---
panel-plugin/sn-button.c | 2 +-
panel-plugin/sn-util.c | 27 +++++++++++++++++++++++++++
panel-plugin/sn-util.h | 4 +++-
3 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/panel-plugin/sn-button.c b/panel-plugin/sn-button.c
index d2a6415..de1a120 100644
--- a/panel-plugin/sn-button.c
+++ b/panel-plugin/sn-button.c
@@ -257,7 +257,7 @@ sn_button_button_press (GtkWidget *widget,
if ((event->button == 1 && (button->menu_only || menu_is_primary)) || event->button == 3)
{
- if (button->menu != NULL)
+ if (button->menu != NULL && sn_container_has_children (button->menu))
{
button->menu_deactivate_handler =
g_signal_connect_swapped (G_OBJECT (button->menu), "deactivate",
diff --git a/panel-plugin/sn-util.c b/panel-plugin/sn-util.c
index a738d71..59c4656 100644
--- a/panel-plugin/sn-util.c
+++ b/panel-plugin/sn-util.c
@@ -136,3 +136,30 @@ sn_signal_connect_weak_swapped (gpointer instance,
return sn_signal_connect_weak_internal (instance, detailed_signal,
c_handler, data, G_CONNECT_SWAPPED);
}
+
+
+
+static void
+sn_container_has_children_callback (GtkWidget *widget,
+ gpointer user_data)
+{
+ gboolean *has_children = user_data;
+ *has_children = TRUE;
+}
+
+
+
+gboolean
+sn_container_has_children (GtkWidget *widget)
+{
+ gboolean has_children = FALSE;
+
+ if (GTK_IS_CONTAINER (widget))
+ {
+ gtk_container_foreach (GTK_CONTAINER (widget),
+ sn_container_has_children_callback,
+ &has_children);
+ }
+
+ return has_children;
+}
diff --git a/panel-plugin/sn-util.h b/panel-plugin/sn-util.h
index 15e0baa..9cf81cb 100644
--- a/panel-plugin/sn-util.h
+++ b/panel-plugin/sn-util.h
@@ -19,7 +19,7 @@
#ifndef __SN_UTIL_H__
#define __SN_UTIL_H__
-#include <glib-object.h>
+#include <gtk/gtk.h>
G_BEGIN_DECLS
@@ -33,6 +33,8 @@ gulong sn_signal_connect_weak_swapped (gpointer
GCallback c_handler,
gpointer data);
+gboolean sn_container_has_children (GtkWidget *widget);
+
G_END_DECLS
#endif /* !__SN_UTIL_H__ */
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list