[gtk/active-media-controls: 1/3] scalebutton: Add an active property
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/active-media-controls: 1/3] scalebutton: Add an active property
- Date: Tue, 28 Apr 2020 05:18:57 +0000 (UTC)
commit 116eb992c13b32c7deda2fc6f87bca06f89ee113
Author: Matthias Clasen <mclasen redhat com>
Date: Tue Apr 28 01:15:29 2020 -0400
scalebutton: Add an active property
This is set to TRUE while the popup is visible.
We will use it to prevent the button from being
hidden while the user is interacting with it.
gtk/gtkscalebutton.c | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
---
diff --git a/gtk/gtkscalebutton.c b/gtk/gtkscalebutton.c
index 809e790857..896683f2ea 100644
--- a/gtk/gtkscalebutton.c
+++ b/gtk/gtkscalebutton.c
@@ -98,7 +98,8 @@ enum
PROP_VALUE,
PROP_SIZE,
PROP_ADJUSTMENT,
- PROP_ICONS
+ PROP_ICONS,
+ PROP_ACTIVE
};
typedef struct
@@ -248,6 +249,13 @@ gtk_scale_button_class_init (GtkScaleButtonClass *klass)
G_TYPE_STRV,
GTK_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class,
+ PROP_ACTIVE,
+ g_param_spec_boolean ("active",
+ P_("Active"),
+ P_("Active"),
+ FALSE,
+ G_PARAM_READABLE));
/**
* GtkScaleButton::value-changed:
* @button: the object which received the signal
@@ -403,6 +411,14 @@ gtk_scale_button_closed (GtkScaleButton *button)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->button), FALSE);
}
+static void
+notify_active (GObject *object,
+ GParamSpec *pspec,
+ GObject *button)
+{
+ g_object_notify (button, "active");
+}
+
static void
gtk_scale_button_init (GtkScaleButton *button)
{
@@ -416,6 +432,9 @@ gtk_scale_button_init (GtkScaleButton *button)
gtk_widget_init_template (GTK_WIDGET (button));
gtk_widget_set_parent (priv->dock, GTK_WIDGET (button));
+ g_signal_connect (priv->dock, "notify::visible",
+ G_CALLBACK (notify_active), button);
+
/* Need a local reference to the adjustment */
priv->adjustment = gtk_adjustment_new (0, 0, 100, 2, 20, 0);
g_object_ref_sink (priv->adjustment);
@@ -503,6 +522,9 @@ gtk_scale_button_get_property (GObject *object,
case PROP_ICONS:
g_value_set_boxed (value, priv->icon_list);
break;
+ case PROP_ACTIVE:
+ g_value_set_boolean (value, gtk_widget_get_visible (priv->dock));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]