[gnome-calendar] month-view: fix hiding event widgets when removing
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] month-view: fix hiding event widgets when removing
- Date: Sun, 19 Nov 2017 14:30:49 +0000 (UTC)
commit 0f1a8c93f2033458421375e35568967ff536fb6f
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Sun Nov 19 12:18:32 2017 -0200
month-view: fix hiding event widgets when removing
src/views/gcal-month-view.c | 28 +++++++++++++++++++++++++---
1 files changed, 25 insertions(+), 3 deletions(-)
---
diff --git a/src/views/gcal-month-view.c b/src/views/gcal-month-view.c
index f13de95..a70f714 100644
--- a/src/views/gcal-month-view.c
+++ b/src/views/gcal-month-view.c
@@ -188,6 +188,13 @@ event_activated (GcalMonthView *self,
}
static void
+event_widget_visibility_changed_cb (GcalMonthView *self)
+{
+ self->pending_event_allocation = TRUE;
+ gtk_widget_queue_resize (GTK_WIDGET (self));
+}
+
+static void
setup_child_widget (GcalMonthView *self,
GtkWidget *widget)
{
@@ -195,8 +202,7 @@ setup_child_widget (GcalMonthView *self,
gtk_widget_set_parent (widget, GTK_WIDGET (self));
g_signal_connect_swapped (widget, "activate", G_CALLBACK (event_activated), self);
- g_signal_connect_swapped (widget, "hide", G_CALLBACK (gtk_widget_queue_resize), self);
- g_signal_connect_swapped (widget, "show", G_CALLBACK (gtk_widget_queue_resize), self);
+ g_signal_connect_swapped (widget, "notify::visible", G_CALLBACK (event_widget_visibility_changed_cb),
self);
}
static gboolean
@@ -541,6 +547,9 @@ count_events_per_day (GcalMonthView *self,
gint last_cell;
gint i;
+ if (!gtk_widget_get_visible (l->data))
+ continue;
+
event = gcal_event_widget_get_event (l->data);
calculate_event_cells (self, event, &first_cell, &last_cell);
@@ -558,7 +567,12 @@ count_events_per_day (GcalMonthView *self,
cell = GPOINTER_TO_INT (key) + self->days_delay - 1;
for (l = children; l; l = l->next)
- events_per_day[cell]++;
+ {
+ if (!gtk_widget_get_visible (l->data))
+ continue;
+
+ events_per_day[cell]++;
+ }
}
}
@@ -599,6 +613,10 @@ allocate_multiday_events (GcalMonthView *self,
gint block_idx;
child_widget = (GtkWidget*) l->data;
+
+ if (!gtk_widget_get_visible (child_widget))
+ continue;
+
event = gcal_event_widget_get_event (l->data);
child_context = gtk_widget_get_style_context (l->data);
@@ -772,6 +790,10 @@ allocate_single_day_events (GcalMonthView *self,
gint minimum_height;
child_widget = aux->data;
+
+ if (!gtk_widget_get_visible (child_widget))
+ continue;
+
child_context = gtk_widget_get_style_context (child_widget);
gtk_style_context_get_margin (child_context, gtk_style_context_get_state (child_context), &margin);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]