X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbclistbox.C;h=ef29b0b6eac0dc8848673528f1333ec4d590a1fc;hb=2a56d102d9db53017b306f2a61a2382f29a75783;hp=4a55593fae1e2d23479905b3c8c3dd3c6e620919;hpb=b46dd3711f7aaa94d2df9f27cd2ce16f7487693a;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/guicast/bclistbox.C b/cinelerra-5.1/guicast/bclistbox.C index 4a55593f..ef29b0b6 100644 --- a/cinelerra-5.1/guicast/bclistbox.C +++ b/cinelerra-5.1/guicast/bclistbox.C @@ -1223,7 +1223,7 @@ int BC_ListBox::get_text_mask(BC_ListBoxItem *item, h = get_text_h(item) + ICON_MARGIN * 2; break; } case LISTBOX_ICON_LIST: { - w = get_text_width(MEDIUMFONT, item->text) + LISTBOX_MARGIN * 2; + w = column_width ? column_width[0] : default_column_width[0]; h = row_height; break; } default: @@ -2615,7 +2615,7 @@ int BC_ListBox::button_press_event() // Multiple item selection is possible if( selection_mode == LISTBOX_MULTIPLE && - (ctrl_down() || shift_down()) ) { + (ctrl_down() || shift_down() || current_item->selected) ) { // Expand text selection. // Fill items between selected region and current item. if( shift_down() && @@ -2639,14 +2639,14 @@ int BC_ListBox::button_press_event() new_value = 1; } // Toggle a single item on or off - else { + else if( ctrl_down() ) { toggle_item_selection(data, selection_number); new_value = current_item->selected; } } // Select single item else { - if( !current_item->selected || !new_value ) { + if( !current_item->selected || (get_buttonpress() == 1 && !new_value) ) { set_all_selected(data, 0); set_selected(data, selection_number, 1); }