After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 310134 - Unable to expand the user account in Folder pane using accessibility interface
Unable to expand the user account in Folder pane using accessibility interface
Status: RESOLVED FIXED
Product: atk
Classification: Platform
Component: gail
0.9
Other Linux
: Normal normal
: ---
Assigned To: bill.haneman
bill.haneman
: 310135 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2005-07-12 14:07 UTC by jpremkumar
Modified: 2006-04-19 10:56 UTC
See Also:
GNOME target: ---
GNOME version: 2.9/2.10


Attachments
patch to ensure that EXPANDED state is set even when model_row_inserted event is received (3.22 KB, patch)
2005-10-06 10:20 UTC, bill.haneman
none Details | Review
revised patch (3.79 KB, patch)
2005-10-06 11:18 UTC, bill.haneman
none Details | Review
revised patch (3.79 KB, patch)
2005-10-06 11:19 UTC, bill.haneman
committed Details | Review
crash after applying the last patch (34.33 KB, text/plain)
2005-10-06 11:42 UTC, Nagappan Alagappan
  Details
crash in a cell (12.31 KB, text/plain)
2005-10-06 14:27 UTC, Nagappan Alagappan
  Details

Description jpremkumar 2005-07-12 14:07:54 UTC
Distribution/Version: SuSE 9.3

1. Created an account with name jpremkumar@novell.com
2. Using at-poke tried to fire 'expand' event 

expected result:
The corresponding folder should get expanded

actual result:
folder is not getting expanded

Additional information:
 When i try to expand other folders like 'On This computer' or 'vfolder' it works
Comment 1 Jeffrey Stedfast 2005-07-12 15:31:24 UTC
*** Bug 310135 has been marked as a duplicate of this bug. ***
Comment 2 Harry Lu 2005-07-14 09:01:11 UTC
I traced the problem for a while and found this might be a problem of gail 
component of atk product.
The "expand or contract" action will only work for the first time and fails for 
all the followed tries.

when user activate the "expand or contract" action, toggle_cell_expanded() of 
gailtreeview.c will be called. It has the following code:

 if (atk_state_set_contains_state (stateset, ATK_STATE_EXPANDED))
    gtk_tree_view_collapse_row (tree_view, path);
  else
    gtk_tree_view_expand_row (tree_view, path, TRUE);

gtk_tree_view_expand_row  will emit "row-expanded" signal which will be caught 
in gailtreeview.c's gail_tree_view_expand_row_gtk(). It will try to update the 
cell's state in idle:
 gailview->idle_expand_id = g_idle_add (idle_expand_row, data);

But before the idle function is executed, a "row-inserted" signal is emitted 
which is caught by model_row_inserted() in gailtreeview.c. It has the following 
code:
 if (gailview->idle_expand_id)
    {
      g_source_remove (gailview->idle_expand_id);
      gailview->idle_expand_id = 0;
    }

So the idle function won't be executed in this case and the cell's stateset is 
not updated. Next time, when user active the action, it will still try to call 
gtk_tree_view_expand_row (tree_view, path, TRUE);
for already expanded row. So the failure is.

CC gail developers.
Comment 3 bill.haneman 2005-10-06 10:20:05 UTC
Created attachment 53102 [details] [review]
patch to ensure that EXPANDED state is set even when model_row_inserted event is received

untested!
Comment 4 bill.haneman 2005-10-06 11:18:56 UTC
Created attachment 53105 [details] [review]
revised patch

tested version of patch.  Designed to avoid regressing bug 132551.
Comment 5 bill.haneman 2005-10-06 11:19:01 UTC
Created attachment 53106 [details] [review]
revised patch

tested version of patch.  Designed to avoid regressing bug 132551.
Comment 6 Nagappan Alagappan 2005-10-06 11:42:52 UTC
Created attachment 53107 [details]
crash after applying the last patch
Comment 7 bill.haneman 2005-10-06 11:46:11 UTC
Comment on attachment 53107 [details]
crash after applying the last patch

This crash is unrelated IMO.

>...
>#3  0x0805eaf0 in segv_redirect (sig=11) at main.c:424
>#4  <signal handler called>
>#5  0x41815166 in gail_widget_focus_gtk (widget=0x82fcc78, event=0x80f38d0)
>    at gailwidget.c:921
>#6  0x40d5fe60 in _gtk_marshal_BOOLEAN__BOXED (closure=0x8301080, 
>    return_value=0xbfd71260, n_param_values=2, param_values=0xbfd7134c, 
>    invocation_hint=0xbfd7124c, marshal_data=0x41815130) at gtkmarshalers.c:83
>#7  0x411b9d19 in g_closure_invoke (closure=0x8301080, return_value=0x0, 
>    n_param_values=0, param_values=0x0, invocation_hint=0x0) at gclosure.c:492
>#8  0x411c9b95 in signal_emit_unlocked_R (node=0x8099b00, detail=0, 
>    instance=0x82fcc78, emission_return=0xbfd714cc, 
>    instance_and_params=0xbfd7134c) at gsignal.c:2555
>#9  0x411cabee in g_signal_emit_valist (instance=0x82fcc78, signal_id=55, 
>    detail=0, var_args=0xbfd71550 "h\025׿Ð8\017\bxÌ/\b¯%å@xÌ/\bx0\t\b")
>    at gsignal.c:2254
>#10 0x411cb1f5 in g_signal_emit (instance=0x0, signal_id=0, detail=0)
>    at gsignal.c:2288
>#11 0x40e523b4 in gtk_widget_event_internal (widget=0x82fcc78, event=0x80f38d0)
>    at gtkwidget.c:3735
>#12 0x40e62f41 in do_focus_change (widget=0x82fcc78, in=0) at gtkwindow.c:4608...
Comment 8 Nagappan Alagappan 2005-10-06 14:27:15 UTC
Created attachment 53117 [details]
crash in a cell
Comment 9 bill.haneman 2005-11-01 16:52:28 UTC
Nagappan, I think the stack traces you have recently posted are unrelated.
Please file separate bugs for the scenarios in which they occur (unless they are
specifically never reproducible without the above patch).  Thanks!
Comment 10 bill.haneman 2005-11-01 17:03:19 UTC
Please move the stack traces to new bug(s) if they are still relevant.  The bug
described in the original comments is fixed in cvs.