rendered paste bodyIndex: menu-item.c===================================================================RCS file: /cvs/ldtp/ldtp/src/menu-item.c,vretrieving revision 1.7diff -u -p -r1.7 menu-item.c--- menu-item.c 21 Jul 2006 11:24:25 -0000 1.7+++ menu-item.c 25 Jul 2006 19:46:59 -0000@@ -152,21 +152,28 @@ menu_item_cb (FILE *fp, gboolean combobox_flag, char *combobox_name) {- int i;+ int i = 0; gint role;- char *name = NULL;- char *role_name = NULL;- GList *menu_item = NULL;- Accessible *current_menu_item = NULL;+ char *name = NULL;+ char *role_name = NULL;+ GList *menu_item = NULL;+ Accessible *current_menu_item = NULL; Accessible *accessible_menu_item = NULL;++ if (!fp || !event || !window_name || !window_type)+ return; g_print ("==DEBUG== Inside record menu\n");- if (combobox_flag == FALSE ) {+ if (combobox_flag == FALSE) { current_menu_item = accessible_menu_item = event->source; role = Accessible_getRole (accessible_menu_item);- for(i = 0; role == SPI_ROLE_MENU || - role == SPI_ROLE_MENU_ITEM || - role == SPI_ROLE_CHECK_MENU_ITEM || - role == SPI_ROLE_RADIO_MENU_ITEM; i++) {+ if (role != SPI_ROLE_MENU_ITEM &&+ role != SPI_ROLE_CHECK_MENU_ITEM &&+ role != SPI_ROLE_RADIO_MENU_ITEM) /*If current level doesn't, then no need to proceed*/+ return;+ for (i = 0; role == SPI_ROLE_MENU ||+ role == SPI_ROLE_MENU_ITEM ||+ role == SPI_ROLE_CHECK_MENU_ITEM ||+ role == SPI_ROLE_RADIO_MENU_ITEM; i++) { name = Accessible_getName (current_menu_item); menu_item = g_list_append (menu_item , g_strdup(name)); SPI_freeString (name);@@ -182,9 +189,11 @@ menu_item_cb (FILE *fp, if (current_menu_item) role = Accessible_getRole (current_menu_item); }- if (current_menu_item && current_menu_item != accessible_menu_item) {+ if (current_menu_item && current_menu_item != accessible_menu_item) Accessible_unref (current_menu_item);- }++ if (i == 0) /* Means no navigation in the above for loop*/+ return; role_name = Accessible_getRoleName (event->source); fprintf (fp, "<COMMAND><ACTION>SELECTMENU</ACTION>"); fprintf (fp, "<WINDOW>%s</WINDOW>", window_type);@@ -208,17 +217,18 @@ menu_item_cb (FILE *fp, // Free the variables used g_list_free (menu_item); }- else if (combobox_flag == TRUE){+ else if (combobox_name) { name = Accessible_getName (event->source);- fprintf (fp, "<COMMAND><ACTION>COMBOSELECT</ACTION>");- fprintf (fp, "<WINDOW>%s</WINDOW>",window_type);- fprintf (fp, "<OBJECTTYPE>combo box</OBJECTTYPE>");- fprintf (fp, "<CONTEXT>%s</CONTEXT>", window_name);- fprintf (fp, "<COMPONENT>%s</COMPONENT>", combobox_name);- fprintf (fp, "<ARGUMENTS><ARGUMENT>%s</ARGUMENT></ARGUMENTS></COMMAND>\n", - name);- fflush (fp);- SPI_freeString (name);+ if (name) {+ fprintf (fp, "<COMMAND><ACTION>COMBOSELECT</ACTION>");+ fprintf (fp, "<WINDOW>%s</WINDOW>",window_type);+ fprintf (fp, "<OBJECTTYPE>combo box</OBJECTTYPE>");+ fprintf (fp, "<CONTEXT>%s</CONTEXT>", window_name);+ fprintf (fp, "<COMPONENT>%s</COMPONENT>", combobox_name);+ fprintf (fp, "<ARGUMENTS><ARGUMENT>%s</ARGUMENT></ARGUMENTS></COMMAND>\n", name);+ fflush (fp);+ SPI_freeString (name);+ } } }