popup_w = w;
popup_h = h;
- for(int i = 0; i < 3; i++)
- {
- button_images[i] = 0;
- column_bg[i] = 0;
- }
- for(int i = 0; i < 5; i++)
- toggle_images[i] = 0;
+ for(int i = 0; i < 3; i++) column_bg[i] = 0;
+ for(int i = 0; i < 4; i++) button_images[i] = 0;
+ for(int i = 0; i < 5; i++) toggle_images[i] = 0;
column_sort_up = 0;
column_sort_dn = 0;
if(bg_pixmap) delete bg_pixmap;
if(xscrollbar) delete xscrollbar;
if(yscrollbar) delete yscrollbar;
- for(int i = 0; i < 3; i++)
- {
- if(button_images[i]) delete button_images[i];
- if(column_bg[i]) delete column_bg[i];
- }
- for(int i = 0; i < 5; i++)
- if(toggle_images[i]) delete toggle_images[i];
+ for(int i = 0; i < 3; i++) delete column_bg[i];
+ for(int i = 0; i < 4; i++) delete button_images[i];
+ for(int i = 0; i < 5; i++) delete toggle_images[i];
if(column_sort_up) delete column_sort_up;
if(column_sort_dn) delete column_sort_dn;
{
if(use_button)
{
- for( volatile int i = 0; i < 4; ++i ) // volatile due to cplr bug
+ for( int i = 0; i < 4; ++i )
{
button_images[i] = new BC_Pixmap(parent_window,
BC_WindowBase::get_resources()->listbox_button[i],
// 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;
}
}
}
- else
+ else if( gui ) {
// Text is treed
- {
// Cursor is inside items rectangle
if(cursor_x >= 0 &&
cursor_x < (yscrollbar ?
//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)
{