| 348 | | } else { |
|---|
| 349 | | if (Fl::event_state(FL_SHIFT)) { |
|---|
| 350 | | if (prev == 0) prev = tnode; |
|---|
| 351 | | select_range(prev, tnode, 1); |
|---|
| 352 | | //current_ = 0; |
|---|
| 353 | | state_ = FL_TOGGLE_SELECT; |
|---|
| 354 | | do_callback(); |
|---|
| 355 | | } else if (Fl::event_state(FL_CTRL)) { |
|---|
| 356 | | //if (!tnode->selected_) |
|---|
| 357 | | select_range(tnode, tnode, Fl::event_state(FL_CTRL)); |
|---|
| 358 | | /* |
|---|
| 359 | | else { |
|---|
| 360 | | selection_current_ = NULL; |
|---|
| 361 | | tnode->selected_ = 0; |
|---|
| 362 | | tnode->changed_ = 1; |
|---|
| 363 | | tnode = 0; |
|---|
| 364 | | } |
|---|
| 365 | | current_ = 0; |
|---|
| 366 | | */ |
|---|
| 367 | | state_ = FL_TOGGLE_SELECT; |
|---|
| 368 | | do_callback(); |
|---|
| 369 | | } else { |
|---|
| 370 | | select_range(tnode, tnode, 0); |
|---|
| 371 | | state_ = Fl::event_clicks() ? FL_TOGGLE_HIT : FL_TOGGLE_SELECT; |
|---|
| 372 | | if (tnode == current_ && state_ == FL_TOGGLE_SELECT) { |
|---|
| 373 | | state_ = FL_TOGGLE_RESELECT; |
|---|
| 374 | | } |
|---|
| 375 | | //current_ = tnode; |
|---|
| 376 | | if (state_ == FL_TOGGLE_RESELECT && edit_on_reselect_) { |
|---|
| 377 | | edit(tnode, x() + depth*16 + label_offset_, cy); |
|---|
| 378 | | } |
|---|
| 379 | | |
|---|
| 380 | | do_callback(); |
|---|
| | 347 | } // else { |
|---|
| | 348 | // select_range(tnode, tnode, 0); |
|---|
| | 349 | state_ = Fl::event_clicks() ? FL_TOGGLE_HIT : FL_TOGGLE_SELECT; |
|---|
| | 350 | if (tnode == current_ && state_ == FL_TOGGLE_SELECT) { |
|---|
| | 351 | state_ = FL_TOGGLE_RESELECT; |
|---|