shell: Try to always use delayed removal

This commit is contained in:
Bastien Nocera 2012-05-10 19:20:58 +01:00
parent 62d2bcf0b8
commit bec2efb36a

View file

@ -468,29 +468,22 @@ cc_notebook_remove_page (CcNotebook *self,
GtkWidget *widget) GtkWidget *widget)
{ {
ClutterActorIter iter; ClutterActorIter iter;
ClutterActor *child, *frame, *selected_frame; ClutterActor *child, *frame;
int index; int index;
gboolean found_current;
g_return_if_fail (CC_IS_NOTEBOOK (self)); g_return_if_fail (CC_IS_NOTEBOOK (self));
g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (GTK_IS_WIDGET (widget));
g_return_if_fail (widget != self->priv->selected_page); g_return_if_fail (widget != self->priv->selected_page);
found_current = FALSE;
frame = g_object_get_data (G_OBJECT (widget), "cc-notebook-frame"); frame = g_object_get_data (G_OBJECT (widget), "cc-notebook-frame");
selected_frame = g_object_get_data (G_OBJECT (self->priv->selected_page), "cc-notebook-frame");
index = 0; index = 0;
clutter_actor_iter_init (&iter, self->priv->bin); clutter_actor_iter_init (&iter, self->priv->bin);
while (clutter_actor_iter_next (&iter, &child)) { while (clutter_actor_iter_next (&iter, &child)) {
if (frame == child) { if (frame == child) {
if (found_current || if (setup_delayed_remove (self, frame) == FALSE)
setup_delayed_remove (self, frame) == FALSE) {
clutter_actor_iter_remove (&iter); clutter_actor_iter_remove (&iter);
}
break; break;
} else if (selected_frame == child) {
found_current = TRUE;
} }
index++; index++;