Mercurial > geeqie.yaz
comparison src/view_file_icon.c @ 580:e27c374460d3
vficon_release_cb(): use switch() and cleanup.
author | zas_ |
---|---|
date | Sun, 04 May 2008 23:57:20 +0000 |
parents | 2ef88100cee2 |
children | 9b43b8256afe |
comparison
equal
deleted
inserted
replaced
579:2ef88100cee2 | 580:e27c374460d3 |
---|---|
1477 gint vficon_release_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data) | 1477 gint vficon_release_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data) |
1478 { | 1478 { |
1479 ViewFile *vf = data; | 1479 ViewFile *vf = data; |
1480 GtkTreeIter iter; | 1480 GtkTreeIter iter; |
1481 IconData *id = NULL; | 1481 IconData *id = NULL; |
1482 gint was_selected = FALSE; | 1482 gint was_selected; |
1483 | 1483 |
1484 tip_schedule(vf); | 1484 tip_schedule(vf); |
1485 | 1485 |
1486 if ((gint)bevent->x != 0 || (gint) bevent->y != 0) | 1486 if ((gint)bevent->x != 0 || (gint)bevent->y != 0) |
1487 { | 1487 { |
1488 id = vficon_find_data_by_coord(vf, (gint)bevent->x, (gint)bevent->y, &iter); | 1488 id = vficon_find_data_by_coord(vf, (gint)bevent->x, (gint)bevent->y, &iter); |
1489 } | 1489 } |
1490 | 1490 |
1491 if (VFICON_INFO(vf, click_id)) | 1491 if (VFICON_INFO(vf, click_id)) |
1492 { | 1492 { |
1493 vficon_selection_remove(vf, VFICON_INFO(vf, click_id), SELECTION_PRELIGHT, NULL); | 1493 vficon_selection_remove(vf, VFICON_INFO(vf, click_id), SELECTION_PRELIGHT, NULL); |
1494 } | 1494 } |
1495 | 1495 |
1496 if (id) was_selected = (id->selected & SELECTION_SELECTED); | 1496 if (!id || VFICON_INFO(vf, click_id) != id) return TRUE; |
1497 | 1497 |
1498 if (bevent->button == MOUSE_BUTTON_LEFT && | 1498 was_selected = (id->selected & SELECTION_SELECTED); |
1499 id && VFICON_INFO(vf, click_id) == id) | 1499 |
1500 { | 1500 switch (bevent->button) |
1501 vficon_set_focus(vf, id); | 1501 { |
1502 | 1502 case MOUSE_BUTTON_LEFT: |
1503 if (bevent->state & GDK_CONTROL_MASK) | 1503 { |
1504 { | 1504 vficon_set_focus(vf, id); |
1505 gint select; | 1505 |
1506 | 1506 if (bevent->state & GDK_CONTROL_MASK) |
1507 select = !(id->selected & SELECTION_SELECTED); | |
1508 if ((bevent->state & GDK_SHIFT_MASK) && VFICON_INFO(vf, prev_selection)) | |
1509 { | 1507 { |
1510 vficon_select_region_util(vf, VFICON_INFO(vf, prev_selection), id, select); | 1508 gint select; |
1509 | |
1510 select = !(id->selected & SELECTION_SELECTED); | |
1511 if ((bevent->state & GDK_SHIFT_MASK) && VFICON_INFO(vf, prev_selection)) | |
1512 { | |
1513 vficon_select_region_util(vf, VFICON_INFO(vf, prev_selection), id, select); | |
1514 } | |
1515 else | |
1516 { | |
1517 vficon_select_util(vf, id, select); | |
1518 } | |
1511 } | 1519 } |
1512 else | 1520 else |
1513 { | 1521 { |
1514 vficon_select_util(vf, id, select); | 1522 vficon_select_none(vf); |
1523 | |
1524 if ((bevent->state & GDK_SHIFT_MASK) && VFICON_INFO(vf, prev_selection)) | |
1525 { | |
1526 vficon_select_region_util(vf, VFICON_INFO(vf, prev_selection), id, TRUE); | |
1527 } | |
1528 else | |
1529 { | |
1530 vficon_select_util(vf, id, TRUE); | |
1531 was_selected = FALSE; | |
1532 } | |
1515 } | 1533 } |
1516 } | 1534 } |
1517 else | 1535 break; |
1518 { | 1536 case MOUSE_BUTTON_MIDDLE: |
1519 vficon_select_none(vf); | 1537 { |
1520 | 1538 vficon_select_util(vf, id, !(id->selected & SELECTION_SELECTED)); |
1521 if ((bevent->state & GDK_SHIFT_MASK) && | 1539 } |
1522 VFICON_INFO(vf, prev_selection)) | 1540 break; |
1523 { | 1541 default: |
1524 vficon_select_region_util(vf, VFICON_INFO(vf, prev_selection), id, TRUE); | 1542 break; |
1525 } | 1543 } |
1526 else | 1544 |
1527 { | 1545 if (!was_selected && (id->selected & SELECTION_SELECTED)) |
1528 vficon_select_util(vf, id, TRUE); | |
1529 was_selected = FALSE; | |
1530 } | |
1531 } | |
1532 } | |
1533 else if (bevent->button == MOUSE_BUTTON_MIDDLE && | |
1534 id && VFICON_INFO(vf, click_id) == id) | |
1535 { | |
1536 vficon_select_util(vf, id, !(id->selected & SELECTION_SELECTED)); | |
1537 } | |
1538 | |
1539 if (id && !was_selected && | |
1540 (id->selected & SELECTION_SELECTED)) | |
1541 { | 1546 { |
1542 vficon_send_layout_select(vf, id); | 1547 vficon_send_layout_select(vf, id); |
1543 } | 1548 } |
1544 | 1549 |
1545 return TRUE; | 1550 return TRUE; |