Index: menu-item.c =================================================================== RCS file: /cvs/ldtp/ldtp/src/menu-item.c,v retrieving revision 1.7 diff -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, "SELECTMENU"); fprintf (fp, "%s", 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, "COMBOSELECT"); - fprintf (fp, "%s",window_type); - fprintf (fp, "combo box"); - fprintf (fp, "%s", window_name); - fprintf (fp, "%s", combobox_name); - fprintf (fp, "%s\n", - name); - fflush (fp); - SPI_freeString (name); + if (name) { + fprintf (fp, "COMBOSELECT"); + fprintf (fp, "%s",window_type); + fprintf (fp, "combo box"); + fprintf (fp, "%s", window_name); + fprintf (fp, "%s", combobox_name); + fprintf (fp, "%s\n", name); + fflush (fp); + SPI_freeString (name); + } } }