keyboard: Right align shortcut

Reset button is in a `GtkRevealer` to not take up space when hidden.
This commit is contained in:
Ian Douglas Scott 2020-12-18 08:11:24 -08:00
parent fd661a6607
commit 5e8e9c3236
2 changed files with 24 additions and 16 deletions

View file

@ -28,6 +28,7 @@ struct _CcKeyboardShortcutRow
GtkLabel *accelerator_label; GtkLabel *accelerator_label;
GtkButton *reset_button; GtkButton *reset_button;
GtkRevealer *reset_revealer;
CcKeyboardItem *item; CcKeyboardItem *item;
CcKeyboardManager *manager; CcKeyboardManager *manager;
@ -51,6 +52,7 @@ cc_keyboard_shortcut_row_class_init (CcKeyboardShortcutRowClass *klass)
gtk_widget_class_bind_template_child (widget_class, CcKeyboardShortcutRow, accelerator_label); gtk_widget_class_bind_template_child (widget_class, CcKeyboardShortcutRow, accelerator_label);
gtk_widget_class_bind_template_child (widget_class, CcKeyboardShortcutRow, reset_button); gtk_widget_class_bind_template_child (widget_class, CcKeyboardShortcutRow, reset_button);
gtk_widget_class_bind_template_child (widget_class, CcKeyboardShortcutRow, reset_revealer);
gtk_widget_class_bind_template_callback (widget_class, reset_shortcut_cb); gtk_widget_class_bind_template_callback (widget_class, reset_shortcut_cb);
} }
@ -64,7 +66,7 @@ cc_keyboard_shortcut_row_init (CcKeyboardShortcutRow *self)
static void static void
shortcut_modified_changed_cb (CcKeyboardShortcutRow *self) shortcut_modified_changed_cb (CcKeyboardShortcutRow *self)
{ {
gtk_widget_set_child_visible (GTK_WIDGET (self->reset_button), gtk_revealer_set_reveal_child (self->reset_revealer,
!cc_keyboard_item_is_value_default (self->item)); !cc_keyboard_item_is_value_default (self->item));
} }
@ -123,7 +125,7 @@ cc_keyboard_shortcut_row_new (CcKeyboardItem *item,
transform_binding_to_accel, transform_binding_to_accel,
NULL, NULL, NULL); NULL, NULL, NULL);
gtk_widget_set_child_visible (GTK_WIDGET (self->reset_button), gtk_revealer_set_reveal_child (self->reset_revealer,
!cc_keyboard_item_is_value_default (item)); !cc_keyboard_item_is_value_default (item));
g_signal_connect_object (item, g_signal_connect_object (item,
"notify::key-combos", "notify::key-combos",

View file

@ -8,7 +8,7 @@
<child> <child>
<object class="GtkLabel" id="accelerator_label"> <object class="GtkLabel" id="accelerator_label">
<property name="visible">True</property> <property name="visible">True</property>
<property name="xalign">0.0</property> <property name="xalign">1.0</property>
<property name="use-markup">True</property> <property name="use-markup">True</property>
<style> <style>
<class name="dim-label" /> <class name="dim-label" />
@ -16,22 +16,28 @@
</object> </object>
</child> </child>
<child> <child>
<object class="GtkButton" id="reset_button"> <object class="GtkRevealer" id = "reset_revealer">
<property name="visible">True</property> <property name="visible">True</property>
<property name="valign">center</property> <property name="transition-type">slide-right</property>
<property name="relief">none</property>
<property name="tooltip-text" translatable="yes">Reset the shortcut to its default value</property>
<signal name="clicked" handler="reset_shortcut_cb" swapped="true"/>
<child> <child>
<object class="GtkImage"> <object class="GtkButton" id="reset_button">
<property name="visible">True</property> <property name="visible">True</property>
<property name="icon-name">edit-clear-symbolic</property> <property name="valign">center</property>
<property name="icon-size">1</property> <property name="relief">none</property>
<style> <property name="tooltip-text" translatable="yes">Reset the shortcut to its default value</property>
<class name="flat" /> <signal name="clicked" handler="reset_shortcut_cb" swapped="true"/>
<class name="circular" /> <child>
<class name="reset-shortcut-button" /> <object class="GtkImage">
</style> <property name="visible">True</property>
<property name="icon-name">edit-clear-symbolic</property>
<property name="icon-size">1</property>
<style>
<class name="flat" />
<class name="circular" />
<class name="reset-shortcut-button" />
</style>
</object>
</child>
</object> </object>
</child> </child>
</object> </object>