gdm r6103 - in trunk: . gui/simple-greeter
- From: halfline svn gnome org
- To: svn-commits-list gnome org
- Subject: gdm r6103 - in trunk: . gui/simple-greeter
- Date: Sat, 5 Apr 2008 06:14:13 +0100 (BST)
Author: halfline
Date: Sat Apr 5 06:14:13 2008
New Revision: 6103
URL: http://svn.gnome.org/viewvc/gdm?rev=6103&view=rev
Log:
2008-04-05 Ray Strode <rstrode redhat com>
* gui/simple-greeter/gdm-scrollable-widget.[ch]:
(gdm_scrollable_widget_animation_stop),
(gdm_scrollable_widget_stop_sliding):
* gui/simple-greeter/gdm-chooser-widget.c:
(gdm_chooser_widget_grow),
(gdm_chooser_widget_shrink):
Cancel pending animations before starting new ones
Modified:
trunk/ChangeLog
trunk/gui/simple-greeter/gdm-chooser-widget.c
trunk/gui/simple-greeter/gdm-scrollable-widget.c
trunk/gui/simple-greeter/gdm-scrollable-widget.h
Modified: trunk/gui/simple-greeter/gdm-chooser-widget.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-chooser-widget.c (original)
+++ trunk/gui/simple-greeter/gdm-chooser-widget.c Sat Apr 5 06:14:13 2008
@@ -603,6 +603,10 @@
static void
gdm_chooser_widget_grow (GdmChooserWidget *widget)
{
+ if (widget->priv->state == GDM_CHOOSER_WIDGET_STATE_SHRINKING) {
+ gdm_scrollable_widget_stop_sliding (GDM_SCROLLABLE_WIDGET (widget->priv->scrollable_widget));
+ }
+
gtk_alignment_set (GTK_ALIGNMENT (widget->priv->frame_alignment),
0.0, 0.0, 1.0, 1.0);
@@ -651,6 +655,16 @@
{
g_assert (widget->priv->should_hide_inactive_items == TRUE);
+ if (widget->priv->state == GDM_CHOOSER_WIDGET_STATE_GROWING) {
+
+ /* FIXME: since we don't distinguish between a canceled
+ * animation and a finished one, the next line is going
+ * to mean at the next size-allocate signal,
+ * height_when_grown is going to get set to the wrong value
+ */
+ gdm_scrollable_widget_stop_sliding (GDM_SCROLLABLE_WIDGET (widget->priv->scrollable_widget));
+ }
+
set_frame_text (widget, widget->priv->active_text);
gtk_alignment_set (GTK_ALIGNMENT (widget->priv->frame_alignment),
Modified: trunk/gui/simple-greeter/gdm-scrollable-widget.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-scrollable-widget.c (original)
+++ trunk/gui/simple-greeter/gdm-scrollable-widget.c Sat Apr 5 06:14:13 2008
@@ -106,6 +106,7 @@
gdm_scrollable_widget_animation_free (GdmScrollableWidgetAnimation *animation)
{
g_object_unref (animation->timer);
+ animation->timer = NULL;
g_slice_free (GdmScrollableWidgetAnimation, animation);
}
@@ -193,6 +194,12 @@
gdm_timer_start (animation->timer, .50);
}
+static void
+gdm_scrollable_widget_animation_stop (GdmScrollableWidgetAnimation *animation)
+{
+ gdm_timer_stop (animation->timer);
+}
+
static gboolean
gdm_scrollable_widget_needs_scrollbar (GdmScrollableWidget *widget)
{
@@ -621,6 +628,18 @@
}
void
+gdm_scrollable_widget_stop_sliding (GdmScrollableWidget *scrollable_widget)
+{
+ g_return_if_fail (GDM_IS_SCROLLABLE_WIDGET (scrollable_widget));
+
+ if (scrollable_widget->priv->animation != NULL) {
+ gdm_scrollable_widget_animation_stop (scrollable_widget->priv->animation);
+ }
+
+ g_assert (scrollable_widget->priv->animation == NULL);
+}
+
+void
gdm_scrollable_widget_slide_to_height (GdmScrollableWidget *scrollable_widget,
int height,
GdmScrollableWidgetSlideStepFunc step_func,
@@ -634,7 +653,7 @@
g_return_if_fail (GDM_IS_SCROLLABLE_WIDGET (scrollable_widget));
widget = GTK_WIDGET (scrollable_widget);
- g_return_if_fail (scrollable_widget->priv->animation == NULL);
+ gdm_scrollable_widget_stop_sliding (scrollable_widget);
input_redirected = gdm_scrollable_redirect_input_to_event_sink (scrollable_widget);
Modified: trunk/gui/simple-greeter/gdm-scrollable-widget.h
==============================================================================
--- trunk/gui/simple-greeter/gdm-scrollable-widget.h (original)
+++ trunk/gui/simple-greeter/gdm-scrollable-widget.h Sat Apr 5 06:14:13 2008
@@ -61,6 +61,7 @@
GType gdm_scrollable_widget_get_type (void);
GtkWidget * gdm_scrollable_widget_new (void);
+void gdm_scrollable_widget_stop_sliding (GdmScrollableWidget *widget);
void gdm_scrollable_widget_slide_to_height (GdmScrollableWidget *widget,
int height,
GdmScrollableWidgetSlideStepFunc step_func,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]