From 4298b95bb97d341558b263bf15c02aa1575f6293 Mon Sep 17 00:00:00 2001 From: karl-qdh Date: Thu, 24 Mar 2011 13:41:43 +0000 Subject: Change timer to 999ms --- src/indicator-datetime.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/indicator-datetime.c') diff --git a/src/indicator-datetime.c b/src/indicator-datetime.c index 1cdcd3f..f789e2b 100644 --- a/src/indicator-datetime.c +++ b/src/indicator-datetime.c @@ -813,7 +813,7 @@ setup_timer (IndicatorDatetime * self, GDateTime * datetime) if (self->priv->show_seconds || (self->priv->time_mode == SETTINGS_TIME_CUSTOM && self->priv->custom_show_seconds)) { - self->priv->timer = g_timeout_add_full(G_PRIORITY_HIGH, 865, timer_func, self, NULL); + self->priv->timer = g_timeout_add_full(G_PRIORITY_HIGH, 999, timer_func, self, NULL); } else { if (datetime == NULL) { datetime = g_date_time_new_now_local(); -- cgit v1.2.3 From 09ad161fe9f61375d15abf38a6fefad6b23050e6 Mon Sep 17 00:00:00 2001 From: karl-qdh Date: Mon, 28 Mar 2011 11:54:16 +0100 Subject: Make switch statement more consistent might fix bug #743394 seems to be a weirdness in C related to; http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37231 --- src/indicator-datetime.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/indicator-datetime.c') diff --git a/src/indicator-datetime.c b/src/indicator-datetime.c index 1cdcd3f..28484f2 100644 --- a/src/indicator-datetime.c +++ b/src/indicator-datetime.c @@ -525,7 +525,7 @@ set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec } break; } - case PROP_SHOW_SECONDS: + case PROP_SHOW_SECONDS: { if (g_value_get_boolean(value) != self->priv->show_seconds) { self->priv->show_seconds = !self->priv->show_seconds; if (self->priv->time_mode != SETTINGS_TIME_CUSTOM) { @@ -534,7 +534,8 @@ set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec } } break; - case PROP_SHOW_DAY: + } + case PROP_SHOW_DAY: { if (g_value_get_boolean(value) != self->priv->show_day) { self->priv->show_day = !self->priv->show_day; if (self->priv->time_mode != SETTINGS_TIME_CUSTOM) { @@ -542,7 +543,8 @@ set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec } } break; - case PROP_SHOW_DATE: + } + case PROP_SHOW_DATE: { if (g_value_get_boolean(value) != self->priv->show_date) { self->priv->show_date = !self->priv->show_date; if (self->priv->time_mode != SETTINGS_TIME_CUSTOM) { @@ -550,6 +552,7 @@ set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec } } break; + } case PROP_CUSTOM_TIME_FORMAT: { const gchar * newstr = g_value_get_string(value); if (g_strcmp0(newstr, self->priv->custom_string) != 0) { @@ -585,11 +588,12 @@ set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec gtk_widget_set_visible (GTK_WIDGET (self->priv->ido_calendar), self->priv->show_calendar); } break; - } - default: + } + default: { G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); return; } + } if (!update) { return; -- cgit v1.2.3 From fb7e5a07951216e5771614b92f4a49f57807b337 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 30 Mar 2011 10:29:58 -0500 Subject: Switching to one variable with all the marks in it --- src/datetime-service.c | 2 +- src/dbus-shared.h | 4 +--- src/indicator-datetime.c | 15 +-------------- 3 files changed, 3 insertions(+), 18 deletions(-) (limited to 'src/indicator-datetime.c') diff --git a/src/datetime-service.c b/src/datetime-service.c index e284418..ef67d85 100644 --- a/src/datetime-service.c +++ b/src/datetime-service.c @@ -860,7 +860,7 @@ update_appointment_menu_items (gpointer user_data) g_list_free(sorted_comp_instances); GVariant * marks = g_variant_builder_end (&markeddays); - dbusmenu_menuitem_property_set_variant (calendar, CALENDAR_MENUITEM_PROP_MARK, marks); + dbusmenu_menuitem_property_set_variant (calendar, CALENDAR_MENUITEM_PROP_MARKS, marks); updating_appointments = FALSE; g_debug("End of objects"); diff --git a/src/dbus-shared.h b/src/dbus-shared.h index 8b1a20b..51632f9 100644 --- a/src/dbus-shared.h +++ b/src/dbus-shared.h @@ -31,9 +31,7 @@ with this program. If not, see . // The following properties are not *really* properties, but are just // a way of accessing the calendar from the service -#define CALENDAR_MENUITEM_PROP_MARK "calendar-mark" -#define CALENDAR_MENUITEM_PROP_UNMARK "calendar-unmark" -#define CALENDAR_MENUITEM_PROP_CLEAR_MARKS "calendar-clear-marks" +#define CALENDAR_MENUITEM_PROP_MARKS "calendar-marks" #define CALENDAR_MENUITEM_PROP_SET_DATE "calendar-set-date" diff --git a/src/indicator-datetime.c b/src/indicator-datetime.c index e55bfa0..b6b8885 100644 --- a/src/indicator-datetime.c +++ b/src/indicator-datetime.c @@ -1192,7 +1192,7 @@ static void calendar_prop_change_cb (DbusmenuMenuitem * mi, gchar * prop, GVariant *value, IdoCalendarMenuItem * mi_data) { g_debug("Changing calendar property"); - if (!g_strcmp0(prop, CALENDAR_MENUITEM_PROP_MARK)) { + if (!g_strcmp0(prop, CALENDAR_MENUITEM_PROP_MARKS)) { ido_calendar_menu_item_clear_marks (IDO_CALENDAR_MENU_ITEM (mi_data)); g_debug("Marks: Cleared"); GVariantIter *iter; @@ -1204,19 +1204,6 @@ calendar_prop_change_cb (DbusmenuMenuitem * mi, gchar * prop, GVariant *value, I g_debug("Marks: Marked day: %d", day); } g_variant_iter_free (iter); - } else if (!g_strcmp0(prop, CALENDAR_MENUITEM_PROP_UNMARK)) { - GVariantIter *iter; - gint day; - - g_variant_get (value, "ai", &iter); - while (g_variant_iter_loop (iter, "i", &day)) { - g_debug("Unmarked day: %d", day); - ido_calendar_menu_item_unmark_day (IDO_CALENDAR_MENU_ITEM (mi_data), day); - } - g_variant_iter_free (iter); - } else if (!g_strcmp0(prop, CALENDAR_MENUITEM_PROP_CLEAR_MARKS)) { - ido_calendar_menu_item_clear_marks (IDO_CALENDAR_MENU_ITEM (mi_data)); - g_debug("Cleared Marks"); } else if (!g_strcmp0(prop, CALENDAR_MENUITEM_PROP_SET_DATE)) { gsize size = 3; const gint * array = g_variant_get_fixed_array(value, &size, sizeof(gint)); -- cgit v1.2.3 From b7c7b708126be12a4c73f14a7017c8118f99e10e Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 30 Mar 2011 10:34:58 -0500 Subject: Some debugging info --- src/indicator-datetime.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/indicator-datetime.c') diff --git a/src/indicator-datetime.c b/src/indicator-datetime.c index b6b8885..707dd24 100644 --- a/src/indicator-datetime.c +++ b/src/indicator-datetime.c @@ -1191,7 +1191,7 @@ indicator_prop_change_cb (DbusmenuMenuitem * mi, gchar * prop, GVariant *value, static void calendar_prop_change_cb (DbusmenuMenuitem * mi, gchar * prop, GVariant *value, IdoCalendarMenuItem * mi_data) { - g_debug("Changing calendar property"); + g_debug("Changing calendar property: %s", prop); if (!g_strcmp0(prop, CALENDAR_MENUITEM_PROP_MARKS)) { ido_calendar_menu_item_clear_marks (IDO_CALENDAR_MENU_ITEM (mi_data)); g_debug("Marks: Cleared"); @@ -1350,6 +1350,7 @@ new_calendar_item (DbusmenuMenuitem * newitem, DbusmenuClient * client, gpointer user_data) { + g_debug("New calendar item"); g_return_val_if_fail(DBUSMENU_IS_MENUITEM(newitem), FALSE); g_return_val_if_fail(DBUSMENU_IS_GTKCLIENT(client), FALSE); /* Note: not checking parent, it's reasonable for it to be NULL */ -- cgit v1.2.3 From ce0945b155b33f862904fa4a8c05b8f4cd119ece Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 30 Mar 2011 10:43:05 -0500 Subject: Making sure to get the inital values of the calendar properties --- src/indicator-datetime.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/indicator-datetime.c') diff --git a/src/indicator-datetime.c b/src/indicator-datetime.c index 707dd24..1bd1916 100644 --- a/src/indicator-datetime.c +++ b/src/indicator-datetime.c @@ -1377,11 +1377,26 @@ new_calendar_item (DbusmenuMenuitem * newitem, gtk_widget_set_visible (GTK_WIDGET (self->priv->ido_calendar), self->priv->show_calendar); dbusmenu_gtkclient_newitem_base(DBUSMENU_GTKCLIENT(client), newitem, GTK_MENU_ITEM(ido), parent); + g_signal_connect_after(ido, "month-changed", G_CALLBACK(month_changed_cb), (gpointer)newitem); g_signal_connect_after(ido, "day-selected", G_CALLBACK(day_selected_cb), (gpointer)newitem); g_signal_connect_after(ido, "day-selected-double-click", G_CALLBACK(day_selected_double_click_cb), (gpointer)newitem); g_signal_connect(G_OBJECT(newitem), DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED, G_CALLBACK(calendar_prop_change_cb), ido); + + /* Run the current values through prop changed */ + GVariant * propval = NULL; + + propval = dbusmenu_menuitem_property_get_variant(newitem, CALENDAR_MENUITEM_PROP_MARKS); + if (propval != NULL) { + calendar_prop_change_cb(newitem, CALENDAR_MENUITEM_PROP_MARKS, propval, ido); + } + + propval = dbusmenu_menuitem_property_get_variant(newitem, CALENDAR_MENUITEM_PROP_SET_DATE); + if (propval != NULL) { + calendar_prop_change_cb(newitem, CALENDAR_MENUITEM_PROP_SET_DATE, propval, ido); + } + return TRUE; } -- cgit v1.2.3 From 8e1ab0d64a937669c7e9361e7e0942c4c8099358 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 30 Mar 2011 10:54:47 -0500 Subject: Making the right size group more real to remove an annoying error --- src/indicator-datetime.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'src/indicator-datetime.c') diff --git a/src/indicator-datetime.c b/src/indicator-datetime.c index 1bd1916..7b6695c 100644 --- a/src/indicator-datetime.c +++ b/src/indicator-datetime.c @@ -101,6 +101,8 @@ struct _IndicatorDatetimePrivate { GList * timezone_items; GSettings * settings; + + GtkSizeGroup * indicator_right_group; }; /* Enum for the properties so that they can be quickly @@ -182,8 +184,6 @@ INDICATOR_SET_TYPE(INDICATOR_DATETIME_TYPE) G_DEFINE_TYPE (IndicatorDatetime, indicator_datetime, INDICATOR_OBJECT_TYPE); -static GtkSizeGroup * indicator_right_group = NULL; - static void indicator_datetime_class_init (IndicatorDatetimeClass *klass) { @@ -341,6 +341,7 @@ indicator_datetime_init (IndicatorDatetime *self) } self->priv->sm = indicator_service_manager_new_version(SERVICE_NAME, SERVICE_VERSION); + self->priv->indicator_right_group = GTK_SIZE_GROUP(gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL)); self->priv->service_proxy_cancel = g_cancellable_new(); @@ -458,6 +459,11 @@ indicator_datetime_dispose (GObject *object) self->priv->service_proxy = NULL; } + if (self->priv->indicator_right_group != NULL) { + g_object_unref(G_OBJECT(self->priv->indicator_right_group)); + self->priv->indicator_right_group = NULL; + } + G_OBJECT_CLASS (indicator_datetime_parent_class)->dispose (object); return; } @@ -1226,7 +1232,9 @@ new_appointment_item (DbusmenuMenuitem * newitem, DbusmenuMenuitem * parent, Dbu { g_return_val_if_fail(DBUSMENU_IS_MENUITEM(newitem), FALSE); g_return_val_if_fail(DBUSMENU_IS_GTKCLIENT(client), FALSE); + g_return_val_if_fail(IS_INDICATOR_DATETIME(user_data), FALSE); /* Note: not checking parent, it's reasonable for it to be NULL */ + IndicatorDatetime * self = INDICATOR_DATETIME(user_data); indicator_item_t * mi_data = g_new0(indicator_item_t, 1); @@ -1276,7 +1284,7 @@ new_appointment_item (DbusmenuMenuitem * newitem, DbusmenuMenuitem * parent, Dbu /* Usually either the time or the count on the individual item. */ mi_data->right = gtk_label_new(dbusmenu_menuitem_property_get(newitem, APPOINTMENT_MENUITEM_PROP_RIGHT)); - gtk_size_group_add_widget(indicator_right_group, mi_data->right); + gtk_size_group_add_widget(self->priv->indicator_right_group, mi_data->right); gtk_misc_set_alignment(GTK_MISC(mi_data->right), 1.0, 0.5); gtk_box_pack_start(GTK_BOX(hbox), mi_data->right, FALSE, FALSE, 0); gtk_widget_show(mi_data->right); @@ -1426,15 +1434,10 @@ new_timezone_item(DbusmenuMenuitem * newitem, { g_return_val_if_fail(DBUSMENU_IS_MENUITEM(newitem), FALSE); g_return_val_if_fail(DBUSMENU_IS_GTKCLIENT(client), FALSE); + g_return_val_if_fail(IS_INDICATOR_DATETIME(user_data), FALSE); /* Note: not checking parent, it's reasonable for it to be NULL */ - - IndicatorObject *io = g_object_get_data (G_OBJECT (client), "indicator"); - if (io == NULL) { - g_warning ("found no indicator to attach the timezone to"); - return FALSE; - } - IndicatorDatetime *self = INDICATOR_DATETIME(io); + IndicatorDatetime * self = INDICATOR_DATETIME(user_data); IndicatorDatetimePrivate *priv = INDICATOR_DATETIME_GET_PRIVATE(self); // Menu item with a radio button and a right aligned time @@ -1461,7 +1464,7 @@ new_timezone_item(DbusmenuMenuitem * newitem, /* Usually either the time or the count on the individual item. */ mi_data->right = gtk_label_new(""); - gtk_size_group_add_widget(indicator_right_group, mi_data->right); + gtk_size_group_add_widget(self->priv->indicator_right_group, mi_data->right); gtk_misc_set_alignment(GTK_MISC(mi_data->right), 1.0, 0.5); gtk_box_pack_start(GTK_BOX(hbox), mi_data->right, FALSE, FALSE, 0); gtk_widget_show(mi_data->right); @@ -1518,9 +1521,9 @@ get_menu (IndicatorObject * io) DbusmenuGtkClient *client = dbusmenu_gtkmenu_get_client(self->priv->menu); g_object_set_data (G_OBJECT (client), "indicator", io); - dbusmenu_client_add_type_handler(DBUSMENU_CLIENT(client), DBUSMENU_CALENDAR_MENUITEM_TYPE, new_calendar_item); - dbusmenu_client_add_type_handler(DBUSMENU_CLIENT(client), APPOINTMENT_MENUITEM_TYPE, new_appointment_item); - dbusmenu_client_add_type_handler(DBUSMENU_CLIENT(client), TIMEZONE_MENUITEM_TYPE, new_timezone_item); + dbusmenu_client_add_type_handler_full(DBUSMENU_CLIENT(client), DBUSMENU_CALENDAR_MENUITEM_TYPE, new_calendar_item, io, NULL); + dbusmenu_client_add_type_handler_full(DBUSMENU_CLIENT(client), APPOINTMENT_MENUITEM_TYPE, new_appointment_item, io, NULL); + dbusmenu_client_add_type_handler_full(DBUSMENU_CLIENT(client), TIMEZONE_MENUITEM_TYPE, new_timezone_item, io, NULL); return GTK_MENU(self->priv->menu); } -- cgit v1.2.3 From 073715557f637c7cd87c906718d99a3c682f7e5f Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 30 Mar 2011 10:57:02 -0500 Subject: Cleaning up debug output --- src/indicator-datetime.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/indicator-datetime.c') diff --git a/src/indicator-datetime.c b/src/indicator-datetime.c index 7b6695c..5d35c59 100644 --- a/src/indicator-datetime.c +++ b/src/indicator-datetime.c @@ -1200,14 +1200,14 @@ calendar_prop_change_cb (DbusmenuMenuitem * mi, gchar * prop, GVariant *value, I g_debug("Changing calendar property: %s", prop); if (!g_strcmp0(prop, CALENDAR_MENUITEM_PROP_MARKS)) { ido_calendar_menu_item_clear_marks (IDO_CALENDAR_MENU_ITEM (mi_data)); - g_debug("Marks: Cleared"); GVariantIter *iter; gint day; + g_debug("\tMarks: %s", g_variant_print(value, FALSE)); + g_variant_get (value, "ai", &iter); while (g_variant_iter_loop (iter, "i", &day)) { ido_calendar_menu_item_mark_day (IDO_CALENDAR_MENU_ITEM (mi_data), day); - g_debug("Marks: Marked day: %d", day); } g_variant_iter_free (iter); } else if (!g_strcmp0(prop, CALENDAR_MENUITEM_PROP_SET_DATE)) { -- cgit v1.2.3 From fbd5c581cc7f8ca4bc7386f6957b5c41e3d266cf Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 30 Mar 2011 10:58:17 -0500 Subject: Protecting against NULL values --- src/indicator-datetime.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'src/indicator-datetime.c') diff --git a/src/indicator-datetime.c b/src/indicator-datetime.c index 5d35c59..c96ec48 100644 --- a/src/indicator-datetime.c +++ b/src/indicator-datetime.c @@ -1200,21 +1200,28 @@ calendar_prop_change_cb (DbusmenuMenuitem * mi, gchar * prop, GVariant *value, I g_debug("Changing calendar property: %s", prop); if (!g_strcmp0(prop, CALENDAR_MENUITEM_PROP_MARKS)) { ido_calendar_menu_item_clear_marks (IDO_CALENDAR_MENU_ITEM (mi_data)); - GVariantIter *iter; - gint day; - g_debug("\tMarks: %s", g_variant_print(value, FALSE)); + if (value != NULL) { + GVariantIter *iter; + gint day; - g_variant_get (value, "ai", &iter); - while (g_variant_iter_loop (iter, "i", &day)) { - ido_calendar_menu_item_mark_day (IDO_CALENDAR_MENU_ITEM (mi_data), day); + g_debug("\tMarks: %s", g_variant_print(value, FALSE)); + + g_variant_get (value, "ai", &iter); + while (g_variant_iter_loop (iter, "i", &day)) { + ido_calendar_menu_item_mark_day (IDO_CALENDAR_MENU_ITEM (mi_data), day); + } + g_variant_iter_free (iter); + } else { + g_debug("\tMarks: "); } - g_variant_iter_free (iter); } else if (!g_strcmp0(prop, CALENDAR_MENUITEM_PROP_SET_DATE)) { - gsize size = 3; - const gint * array = g_variant_get_fixed_array(value, &size, sizeof(gint)); - g_debug("Setting date y-m-d: %d-%d-%d", array[0], array[1], array[2]); - ido_calendar_menu_item_set_date (IDO_CALENDAR_MENU_ITEM (mi_data), array[0], array[1], array[2]); + if (value != NULL) { + gsize size = 3; + const gint * array = g_variant_get_fixed_array(value, &size, sizeof(gint)); + g_debug("Setting date y-m-d: %d-%d-%d", array[0], array[1], array[2]); + ido_calendar_menu_item_set_date (IDO_CALENDAR_MENU_ITEM (mi_data), array[0], array[1], array[2]); + } } else { g_warning("Indicator Item property '%s' unknown", prop); } -- cgit v1.2.3 From 6be8ddada1ca8b9901d7b9dccef39af47230bf32 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 30 Mar 2011 13:21:10 -0500 Subject: Moving the registration of the type handlers into the init so that they'll not execute more than once. --- src/indicator-datetime.c | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) (limited to 'src/indicator-datetime.c') diff --git a/src/indicator-datetime.c b/src/indicator-datetime.c index c96ec48..1e8b452 100644 --- a/src/indicator-datetime.c +++ b/src/indicator-datetime.c @@ -177,6 +177,9 @@ static void system_proxy_cb (GObject * object, GAsyncResult * res, gpointer use static void service_proxy_cb (GObject * object, GAsyncResult * res, gpointer user_data); static gint generate_strftime_bitmask (const char *time_str); static void timezone_update_labels (indicator_item_t * mi_data); +static gboolean new_calendar_item (DbusmenuMenuitem * newitem, DbusmenuMenuitem * parent, DbusmenuClient * client, gpointer user_data); +static gboolean new_appointment_item (DbusmenuMenuitem * newitem, DbusmenuMenuitem * parent, DbusmenuClient * client, gpointer user_data); +static gboolean new_timezone_item (DbusmenuMenuitem * newitem, DbusmenuMenuitem * parent, DbusmenuClient * client, gpointer user_data); /* Indicator Module Config */ INDICATOR_SET_VERSION @@ -343,6 +346,13 @@ indicator_datetime_init (IndicatorDatetime *self) self->priv->sm = indicator_service_manager_new_version(SERVICE_NAME, SERVICE_VERSION); self->priv->indicator_right_group = GTK_SIZE_GROUP(gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL)); + self->priv->menu = dbusmenu_gtkmenu_new(SERVICE_NAME, MENU_OBJ); + + DbusmenuGtkClient *client = dbusmenu_gtkmenu_get_client(self->priv->menu); + dbusmenu_client_add_type_handler_full(DBUSMENU_CLIENT(client), DBUSMENU_CALENDAR_MENUITEM_TYPE, new_calendar_item, self, NULL); + dbusmenu_client_add_type_handler_full(DBUSMENU_CLIENT(client), APPOINTMENT_MENUITEM_TYPE, new_appointment_item, self, NULL); + dbusmenu_client_add_type_handler_full(DBUSMENU_CLIENT(client), TIMEZONE_MENUITEM_TYPE, new_timezone_item, self, NULL); + self->priv->service_proxy_cancel = g_cancellable_new(); g_dbus_proxy_new_for_bus (G_BUS_TYPE_SESSION, @@ -1368,15 +1378,10 @@ new_calendar_item (DbusmenuMenuitem * newitem, g_debug("New calendar item"); g_return_val_if_fail(DBUSMENU_IS_MENUITEM(newitem), FALSE); g_return_val_if_fail(DBUSMENU_IS_GTKCLIENT(client), FALSE); + g_return_val_if_fail(IS_INDICATOR_DATETIME(user_data), FALSE); /* Note: not checking parent, it's reasonable for it to be NULL */ - IndicatorObject *io = g_object_get_data (G_OBJECT (client), "indicator"); - if (io == NULL) { - g_warning ("found no indicator to attach the caledar to"); - return FALSE; - } - - IndicatorDatetime *self = INDICATOR_DATETIME(io); + IndicatorDatetime *self = INDICATOR_DATETIME(user_data); self->priv = INDICATOR_DATETIME_GET_PRIVATE(self); IdoCalendarMenuItem *ido = IDO_CALENDAR_MENU_ITEM (ido_calendar_menu_item_new ()); @@ -1521,17 +1526,6 @@ get_menu (IndicatorObject * io) { IndicatorDatetime * self = INDICATOR_DATETIME(io); - if (self->priv->menu == NULL) { - self->priv->menu = dbusmenu_gtkmenu_new(SERVICE_NAME, MENU_OBJ); - } - - DbusmenuGtkClient *client = dbusmenu_gtkmenu_get_client(self->priv->menu); - g_object_set_data (G_OBJECT (client), "indicator", io); - - dbusmenu_client_add_type_handler_full(DBUSMENU_CLIENT(client), DBUSMENU_CALENDAR_MENUITEM_TYPE, new_calendar_item, io, NULL); - dbusmenu_client_add_type_handler_full(DBUSMENU_CLIENT(client), APPOINTMENT_MENUITEM_TYPE, new_appointment_item, io, NULL); - dbusmenu_client_add_type_handler_full(DBUSMENU_CLIENT(client), TIMEZONE_MENUITEM_TYPE, new_timezone_item, io, NULL); - return GTK_MENU(self->priv->menu); } -- cgit v1.2.3 From b9355e5f0e32e04c93158e962e985f60abfbb35b Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 30 Mar 2011 13:23:49 -0500 Subject: Check for the signal name in the handler --- src/indicator-datetime.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/indicator-datetime.c') diff --git a/src/indicator-datetime.c b/src/indicator-datetime.c index 1e8b452..222844e 100644 --- a/src/indicator-datetime.c +++ b/src/indicator-datetime.c @@ -390,7 +390,7 @@ system_proxy_cb (GObject * object, GAsyncResult * res, gpointer user_data) g_error_free(error); return; } - g_signal_connect(proxy, "g-signal::ActiveChanged", G_CALLBACK(session_active_change_cb), self); + g_signal_connect(proxy, "g-signal", G_CALLBACK(session_active_change_cb), self); } @@ -820,9 +820,11 @@ static void session_active_change_cb (GDBusProxy * proxy, gchar * sender_name, gchar * signal_name, GVariant * parameters, gpointer user_data) { - // Just returned from suspend - IndicatorDatetime * self = INDICATOR_DATETIME(user_data); - update_time(self); + if (g_strcmp0(signal_name, "ActiveChanged") == 0) { + // Just returned from suspend + IndicatorDatetime * self = INDICATOR_DATETIME(user_data); + update_time(self); + } return; } -- cgit v1.2.3 From c0166121f74d4d0552f1241a8bc42f380cfbd662 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 30 Mar 2011 13:32:31 -0500 Subject: Protecting against the widgets being NULL at startup --- src/indicator-datetime.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/indicator-datetime.c') diff --git a/src/indicator-datetime.c b/src/indicator-datetime.c index 222844e..cafcf1f 100644 --- a/src/indicator-datetime.c +++ b/src/indicator-datetime.c @@ -556,7 +556,9 @@ set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec case PROP_SHOW_CLOCK: { if (g_value_get_boolean(value) != self->priv->show_clock) { self->priv->show_clock = g_value_get_boolean(value); - gtk_widget_set_visible (GTK_WIDGET (self->priv->label), self->priv->show_clock); + if (self->priv->label != NULL) { + gtk_widget_set_visible (GTK_WIDGET (self->priv->label), self->priv->show_clock); + } } break; } @@ -626,7 +628,9 @@ set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec case PROP_SHOW_CALENDAR: { if (g_value_get_boolean(value) != self->priv->show_calendar) { self->priv->show_calendar = g_value_get_boolean(value); - gtk_widget_set_visible (GTK_WIDGET (self->priv->ido_calendar), self->priv->show_calendar); + if (self->priv->ido_calendar != NULL) { + gtk_widget_set_visible (GTK_WIDGET (self->priv->ido_calendar), self->priv->show_calendar); + } } break; } -- cgit v1.2.3 From 99044a57ae60b55336f8db18734d89be707c23a5 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 30 Mar 2011 16:52:03 -0500 Subject: Removing a warning that will occur on the default GTK properties --- src/indicator-datetime.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'src/indicator-datetime.c') diff --git a/src/indicator-datetime.c b/src/indicator-datetime.c index 3f9344d..d85b3fd 100644 --- a/src/indicator-datetime.c +++ b/src/indicator-datetime.c @@ -1204,8 +1204,6 @@ indicator_prop_change_cb (DbusmenuMenuitem * mi, gchar * prop, GVariant *value, timezone_update_labels(mi_data); } else if (!g_strcmp0(prop, TIMEZONE_MENUITEM_PROP_RADIO)) { gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(mi_data->gmi), g_variant_get_boolean(value)); - } else { - g_warning("Indicator Item property '%s' unknown", prop); } return; } @@ -1238,8 +1236,6 @@ calendar_prop_change_cb (DbusmenuMenuitem * mi, gchar * prop, GVariant *value, I g_debug("Setting date y-m-d: %d-%d-%d", array[0], array[1], array[2]); ido_calendar_menu_item_set_date (IDO_CALENDAR_MENU_ITEM (mi_data), array[0], array[1], array[2]); } - } else { - g_warning("Indicator Item property '%s' unknown", prop); } return; } -- cgit v1.2.3