edit-dialog : correct time row visibility

The revealer widget in edit dialog's event time interval row uses to hide the
time selector widgets when the event is checked as all-day and also reveal the
widgets when not checked as all-day.

Sometimes edit dialog may turn on the visibility of the time selector
widgets when the revealer's animation already starts, causing a flickering of the widgets.

We remove the revealer widget and leave edit dialog to toggle the
visibility of time selector widgets when needed.

https://bugzilla.gnome.org/show_bug.cgi?id=771572
This commit is contained in:
Abdullahi Usman
2017-08-22 21:01:20 -03:00
committed by Georges Basile Stavracas Neto
parent d9a775e2fe
commit e56bbc78a8
2 changed files with 27 additions and 55 deletions
+27 -45
View File
@@ -287,23 +287,13 @@
</packing>
</child>
<child>
<object class="GtkRevealer">
<object class="GtkLabel" id="times_label">
<property name="visible">True</property>
<property name="margin-top">12</property>
<property name="reveal_child" bind-source="all_day_check" bind-property="active" bind-flags="default|invert-boolean|sync-create" />
<property name="sensitive" bind-source="GcalEditDialog" bind-property="writable" bind-flags="default" />
<signal name="notify::child-revealed" handler="update_revealer_visibility_cb" swapped="no" />
<signal name="notify::reveal-child" handler="update_revealer_visibility_cb" swapped="no" />
<child>
<object class="GtkLabel" id="times_label">
<property name="visible">True</property>
<property name="xalign">1.0</property>
<property name="label" translatable="yes">Time</property>
<style>
<class name="dim-label"/>
</style>
</object>
</child>
<property name="xalign">1.0</property>
<property name="label" translatable="yes">Time</property>
<style>
<class name="dim-label"/>
</style>
</object>
<packing>
<property name="left_attach">0</property>
@@ -311,41 +301,33 @@
</packing>
</child>
<child>
<object class="GtkRevealer">
<object class="GtkBox">
<property name="visible">True</property>
<property name="margin-top">12</property>
<property name="reveal_child" bind-source="all_day_check" bind-property="active" bind-flags="default|invert-boolean|sync-create" />
<property name="sensitive" bind-source="GcalEditDialog" bind-property="writable" bind-flags="default" />
<signal name="notify::child-revealed" handler="update_revealer_visibility_cb" swapped="no" />
<signal name="notify::reveal-child" handler="update_revealer_visibility_cb" swapped="no" />
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
<object class="GtkBox">
<object class="GcalTimeSelector" id="start_time_selector">
<property name="visible">True</property>
<property name="spacing">6</property>
<child>
<object class="GcalTimeSelector" id="start_time_selector">
<property name="visible">True</property>
<property name="can_focus">True</property>
<signal name="notify::time" handler="sync_datetimes" object="GcalEditDialog" swapped="yes" />
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label">-</property>
</object>
</child>
<child>
<object class="GcalTimeSelector" id="end_time_selector">
<property name="visible">True</property>
<property name="can_focus">True</property>
<signal name="notify::time" handler="sync_datetimes" object="GcalEditDialog" swapped="yes" />
</object>
</child>
<property name="can_focus">True</property>
<property name="sensitive" bind-source="GcalEditDialog" bind-property="writable" bind-flags="default" />
<signal name="notify::time" handler="sync_datetimes" object="GcalEditDialog" swapped="yes" />
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label">-</property>
</object>
</child>
<child>
<object class="GcalTimeSelector" id="end_time_selector">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="sensitive" bind-source="GcalEditDialog" bind-property="writable" bind-flags="default" />
<signal name="notify::time" handler="sync_datetimes" object="GcalEditDialog" swapped="yes" />
</object>
</child>
</object>
-10
View File
@@ -356,15 +356,6 @@ fix_reminders_label_height_cb (GtkWidget *summary_label,
gtk_widget_set_size_request (reminders_label, -1, allocation->height);
}
static void
update_revealer_visibility_cb (GtkRevealer *revealer)
{
if (gtk_revealer_get_reveal_child (revealer))
gtk_widget_set_visible (GTK_WIDGET (revealer), TRUE);
else if (!gtk_revealer_get_child_revealed (revealer))
gtk_widget_set_visible (GTK_WIDGET (revealer), FALSE);
}
static void
sync_datetimes (GcalEditDialog *self,
GParamSpec *pspec,
@@ -626,7 +617,6 @@ gcal_edit_dialog_class_init (GcalEditDialogClass *klass)
gtk_widget_class_bind_template_callback (widget_class, sync_datetimes);
gtk_widget_class_bind_template_callback (widget_class, update_summary);
gtk_widget_class_bind_template_callback (widget_class, update_location);
gtk_widget_class_bind_template_callback (widget_class, update_revealer_visibility_cb);
}
static void