Font chooser: Hide tweak button sometimes
authorMatthias Clasen <mclasen@redhat.com>
Sat, 31 Mar 2018 22:57:06 +0000 (18:57 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 1 Apr 2018 01:02:51 +0000 (21:02 -0400)
When there is no chance of tweaking anything, don't
show a tweak button.

gtk/gtkfontchooserdialog.c

index b4812388850cf50b905aa0cf01bc8ca93a330730..a2ab27da6e6a1ce69b5d7792ba3ac1f4321a207c 100644 (file)
@@ -138,6 +138,21 @@ gtk_font_chooser_dialog_key_press_event (GtkWidget   *dialog,
   return handled;
 }
 
+static void
+update_tweak_button (GtkFontChooserDialog *dialog)
+{
+  GtkFontChooserLevel level;
+
+  if (!dialog->priv->tweak_button)
+    return;
+
+  g_object_get (dialog->priv->fontchooser, "level", &level, NULL);
+  if ((level & (GTK_FONT_CHOOSER_LEVEL_FEATURES | GTK_FONT_CHOOSER_LEVEL_VARIATIONS)) != 0)
+    gtk_widget_show (dialog->priv->tweak_button);
+  else
+    gtk_widget_hide (dialog->priv->tweak_button);
+}
+
 static void
 setup_tweak_button (GtkFontChooserDialog *dialog)
 {
@@ -238,6 +253,8 @@ gtk_font_chooser_dialog_init (GtkFontChooserDialog *fontchooserdiag)
   g_signal_connect_swapped (priv->fontchooser, "notify::font-desc",
                             G_CALLBACK (update_button), fontchooserdiag);
   update_button (fontchooserdiag);
+  g_signal_connect_swapped (priv->fontchooser, "notify::level",
+                            G_CALLBACK (update_tweak_button), fontchooserdiag);
 }
 
 /**