Notify previous value when a state if toggled, e.g. ATK_STATE_COLLAPSED to
authorPadraig O'Briain <padraigo@src.gnome.org>
Thu, 8 Nov 2001 09:24:47 +0000 (09:24 +0000)
committerPadraig O'Briain <padraigo@src.gnome.org>
Thu, 8 Nov 2001 09:24:47 +0000 (09:24 +0000)
* atk/atkobject.c (atk_object_notify_state_change):
Notify previous value when a state if toggled, e.g. ATK_STATE_COLLAPSED
to ATK_STATE_EXPANDED or vice versa.

ChangeLog
atk/atkobject.c

index d4cef9e..f2b4a45 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2001-11-08  Padraig O'Briain  <padraig.obriain@sun.com>
+
+       * atk/atkobject.c (atk_object_notify_state_change):
+       Notify previous value when a state if toggled, e.g. ATK_STATE_COLLAPSED
+       to ATK_STATE_EXPANDED or vice versa.
+
 2001-11-05  Padraig O'Briain  <padraig.obriain@sun.com>
 
        * atk/atkobject.h:
index 206ba49..0d9c163 100755 (executable)
@@ -740,12 +740,26 @@ atk_object_notify_state_change (AtkObject *accessible,
                                 gboolean  value)
 {
   AtkPropertyValues  values = { 0, };
+  AtkState toggle_states[] = { ATK_STATE_EXPANDED, ATK_STATE_COLLAPSED };
+  AtkState toggled_states[] = { ATK_STATE_COLLAPSED, ATK_STATE_EXPANDED };
 
   values.property_name = atk_object_name_property_state;
   if (value)
     {
+       gint i;
+
        g_value_init (&values.new_value, G_TYPE_INT);
        g_value_set_int (&values.new_value, state);
+
+       for (i = 0; i < sizeof (toggle_states); i ++)
+         {
+           if (toggle_states[i] == state)
+             {
+               g_value_init (&values.old_value, G_TYPE_INT);
+               g_value_set_int (&values.old_value, toggled_states[i]);
+               break;
+             }
+         }
     }
     else
     {