X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbclistbox.C;h=76f8fde1eee13f042d592db2f3f2793977d4bda1;hb=dafc18d66d48cd981a012d2e73a3b3db5351c538;hp=c78af1a68db7e489ea9cc9ecd1b838d68f97a251;hpb=3ec3a9cc6afc6561311686b3ec597ee3c1d80d6f;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bclistbox.C b/cinelerra-5.1/guicast/bclistbox.C index c78af1a6..76f8fde1 100644 --- a/cinelerra-5.1/guicast/bclistbox.C +++ b/cinelerra-5.1/guicast/bclistbox.C @@ -732,9 +732,10 @@ void BC_ListBox::calculate_last_coords_recursive( // Lowest right icon coordinate. current_icon_x = item->icon_x; if(current_icon_x > *icon_x) *icon_x = current_icon_x; - if(current_icon_x + get_item_w(item) > *next_icon_x) + if(current_icon_x + get_item_w(item) > *next_icon_x) { *next_icon_x = current_icon_x + get_item_w(item); - + *next_icon_y = 0; + } current_icon_y = item->icon_y + get_item_h(item); if(current_icon_y > *next_icon_y) *next_icon_y = current_icon_y; @@ -1129,8 +1130,8 @@ int BC_ListBox::get_items_height(ArrayList *data, int x, y, w, h; BC_ListBoxItem *item = data[master_column].values[j]; - if(display_format == LISTBOX_ICONS) - { + if( display_format == LISTBOX_ICONS || + display_format == LISTBOX_ICON_LIST ) { get_icon_mask(item, x, y, w, h); if(y + h + yposition > highest) highest = y + h + yposition; @@ -1141,8 +1142,6 @@ int BC_ListBox::get_items_height(ArrayList *data, { get_text_mask(item, x, y, w, h); *result += h; - - // Descend into sublist if(item->get_sublist() && item->get_expand()) @@ -1154,9 +1153,7 @@ int BC_ListBox::get_items_height(ArrayList *data, } } - if((display_format == LISTBOX_TEXT || - display_format == LISTBOX_ICON_LIST) && - top_level) + if( display_format == LISTBOX_TEXT && top_level ) { highest = LISTBOX_MARGIN + *result; } @@ -2419,9 +2416,8 @@ int BC_ListBox::get_cursor_item(ArrayList *data, } } } - else + else if( gui ) { // Text is treed - { // Cursor is inside items rectangle if(cursor_x >= 0 && cursor_x < (yscrollbar ? @@ -3126,17 +3122,14 @@ int BC_ListBox::button_release_event() //printf("BC_ListBox::button_release_event 10\n"); unset_repeat(get_resources()->scroll_repeat); current_operation = NO_OPERATION; - translate_coordinates(top_level->event_win, - gui->win, - gui->get_cursor_x(), - gui->get_cursor_y(), - &cursor_x, - &cursor_y); - - selection_number1 = - selection_number = - get_cursor_item(data, cursor_x, cursor_y); + if( gui ) { + translate_coordinates(top_level->event_win, gui->win, + gui->get_cursor_x(), gui->get_cursor_y(), + &cursor_x, &cursor_y); + selection_number1 = selection_number = + get_cursor_item(data, cursor_x, cursor_y); //printf("BC_ListBox::button_release_event %d %d\n", selection_number2, selection_number1); + } if(is_popup) {