[gnome-calendar] window: update calendar colors from popover
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar] window: update calendar colors from popover
- Date: Tue, 16 Feb 2016 17:09:27 +0000 (UTC)
commit 9ba89e1db6d6ca81586b3eee6f232c9da5aec41e
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Tue Feb 16 15:04:31 2016 -0200
window: update calendar colors from popover
When we change the calendar color, everything that represents
this calendar must be updated to match the changes. The calendar
popover, however, wasn't aware of these changes and did not match
updates of calendars.
Fix that by destryoing and readding the row for the given calendar
when it changes.
https://bugzilla.gnome.org/show_bug.cgi?id=762069
src/gcal-window.c | 19 +++++++------------
1 files changed, 7 insertions(+), 12 deletions(-)
---
diff --git a/src/gcal-window.c b/src/gcal-window.c
index 5f1696e..a705790 100644
--- a/src/gcal-window.c
+++ b/src/gcal-window.c
@@ -209,10 +209,8 @@ static void source_row_activated (GtkListBox *l
GtkListBoxRow *row,
gpointer user_data);
-static void source_enabled (GcalManager *manager,
- ESource *source,
- gboolean enabled,
- gpointer user_data);
+static void source_changed (GcalWindow *window,
+ ESource *source);
static void on_calendar_toggled (GObject *object,
@@ -899,15 +897,11 @@ source_row_activated (GtkListBox *listbox,
}
static void
-source_enabled (GcalManager *manager,
- ESource *source,
- gboolean enabled,
- gpointer user_data)
+source_changed (GcalWindow *window,
+ ESource *source)
{
- GcalWindow *window;
GList *children, *aux;
- window =GCAL_WINDOW (user_data);
children = gtk_container_get_children (GTK_CONTAINER (window->calendar_listbox));
for (aux = children; aux != NULL; aux = aux->next)
@@ -923,7 +917,7 @@ source_enabled (GcalManager *manager,
if (child_source != NULL && child_source == source)
{
gtk_widget_destroy (aux->data);
- add_source (manager, source, enabled, user_data);
+ add_source (window->manager, source, gcal_manager_source_enabled (window->manager, source),
window);
break;
}
}
@@ -1444,8 +1438,9 @@ gcal_window_set_property (GObject *object,
if (g_set_object (&self->manager, g_value_get_object (value)))
{
g_signal_connect (self->manager, "source-added", G_CALLBACK (add_source), object);
- g_signal_connect (self->manager, "source-enabled", G_CALLBACK (source_enabled), object);
g_signal_connect (self->manager, "source-removed", G_CALLBACK (remove_source), object);
+ g_signal_connect_swapped (self->manager, "source-enabled", G_CALLBACK (source_changed), object);
+ g_signal_connect_swapped (self->manager, "source-changed", G_CALLBACK (source_changed), object);
gcal_edit_dialog_set_manager (GCAL_EDIT_DIALOG (self->edit_dialog), self->manager);
gcal_year_view_set_manager (GCAL_YEAR_VIEW (self->year_view), self->manager);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]