2009-01-19 Claudio Saavedra <csaavedra@igalia.com>
+ * src/hildon-date-selector.c: (hildon_date_selector_get_date): Check
+ that there's actually a month or year selected before obtaining them.
+ * src/hildon-picker-dialog.c: (_restore_current_selection): Block emission
+ of the HildonTouchSelector::changed signal, as it was emitted on every
+ single item selection.
+
+ Fix some warnings and possible crashers due to the selection restoring.
+
+2009-01-19 Claudio Saavedra <csaavedra@igalia.com>
+
* src/hildon-picker-button.c: (hildon_picker_button_clicked): Connect
the signal handlers only after creating the dialog instead of on every
button click.
GtkTreeIter iter;
if (year != NULL) {
- hildon_touch_selector_get_selected (HILDON_TOUCH_SELECTOR (selector),
- selector->priv->year_column, &iter);
- gtk_tree_model_get (selector->priv->year_model,
- &iter, COLUMN_INT, year, -1);
+ if (hildon_touch_selector_get_selected (HILDON_TOUCH_SELECTOR (selector),
+ selector->priv->year_column, &iter))
+ gtk_tree_model_get (selector->priv->year_model,
+ &iter, COLUMN_INT, year, -1);
}
if (month != NULL) {
- hildon_touch_selector_get_selected (HILDON_TOUCH_SELECTOR (selector),
- selector->priv->month_column, &iter);
- gtk_tree_model_get (selector->priv->month_model,
- &iter, COLUMN_INT, month, -1);
+ if (hildon_touch_selector_get_selected (HILDON_TOUCH_SELECTOR (selector),
+ selector->priv->month_column, &iter))
+ gtk_tree_model_get (selector->priv->month_model,
+ &iter, COLUMN_INT, month, -1);
}
-
if (day != NULL) {
if (hildon_touch_selector_get_selected (HILDON_TOUCH_SELECTOR (selector),
selector->priv->day_column, &iter))
return;
}
+ g_signal_handler_block (selector, dialog->priv->signal_changed_id);
for (iter = current_selection, i = 0; iter; iter = g_slist_next (iter), i++) {
selected = (GList *) (iter->data);
model = hildon_touch_selector_get_model (selector, i);
hildon_touch_selector_select_iter (selector, i, &tree_iter, FALSE);
}
}
+ g_signal_handler_unblock (selector, dialog->priv->signal_changed_id);
}
static gboolean