[gtk+/wip/matthiasc/tab-strip] closable tab: Only show the button when active
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/matthiasc/tab-strip] closable tab: Only show the button when active
- Date: Tue, 31 May 2016 12:49:17 +0000 (UTC)
commit ce2c6eff1e4ca0f8a294c675eb0b7b5c6dbd2e21
Author: Matthias Clasen <mclasen redhat com>
Date: Tue May 31 00:36:22 2016 -0400
closable tab: Only show the button when active
gtk/gtkclosabletab.c | 27 +++++++++++++++++++++------
1 files changed, 21 insertions(+), 6 deletions(-)
---
diff --git a/gtk/gtkclosabletab.c b/gtk/gtkclosabletab.c
index 1c50731..810a870 100644
--- a/gtk/gtkclosabletab.c
+++ b/gtk/gtkclosabletab.c
@@ -45,11 +45,6 @@ struct _GtkClosableTabClass
G_DEFINE_TYPE (GtkClosableTab, gtk_closable_tab, GTK_TYPE_TAB)
static void
-gtk_closable_tab_class_init (GtkClosableTabClass *klass)
-{
-}
-
-static void
close_tab (GtkClosableTab *tab)
{
GtkWidget *widget;
@@ -74,8 +69,28 @@ gtk_closable_tab_init (GtkClosableTab *self)
self->button = gtk_button_new_from_icon_name ("window-close-symbolic", GTK_ICON_SIZE_MENU);
gtk_button_set_relief (GTK_BUTTON (self->button), GTK_RELIEF_NONE);
- gtk_widget_show (self->button);
gtk_box_pack_end (GTK_BOX (self->box), self->button, FALSE, FALSE, 0);
g_signal_connect_swapped (self->button, "clicked", G_CALLBACK (close_tab), self);
}
+
+static void
+gtk_closable_tab_state_flags_changed (GtkWidget *widget,
+ GtkStateFlags old_state)
+{
+ GtkClosableTab *tab = GTK_CLOSABLE_TAB (widget);
+ gboolean checked;
+
+ checked = (gtk_widget_get_state_flags (widget) & GTK_STATE_FLAG_CHECKED) != 0;
+
+ gtk_widget_set_visible (tab->button, checked);
+}
+
+static void
+gtk_closable_tab_class_init (GtkClosableTabClass *klass)
+{
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+
+ widget_class->state_flags_changed = gtk_closable_tab_state_flags_changed;
+}
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]