Ignore:
Timestamp:
05/31/08 15:31:59 (16 years ago)
Author:
bjn8
Message:

Widgets now are always enclosed fully; fixes 2 minor bugs and improves user interaction...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/gui/FrameUtils.java

    r81 r82  
    88import java.util.Collections;
    99import java.util.Comparator;
     10import java.util.LinkedList;
    1011import java.util.List;
    1112
     
    11831184                List<Item> enclosed = getItemsEnclosedBy(DisplayIO.getCurrentFrame(),
    11841185                                firstItem.getEnclosedShape());
     1186               
     1187                // Brook: enclosed widgets are to be fully enclosed, never partially
     1188                List<InteractiveWidget> enclosedWidgets = new LinkedList<InteractiveWidget>();
    11851189                for (Item i : enclosed) {
    11861190                        if (!enclosure.contains(i))
    11871191                                i.setSelectedMode(Item.SelectedMode.None);
     1192                        if (i instanceof WidgetCorner) {
     1193                                if (!enclosedWidgets.contains(((WidgetCorner)i).getWidgetSource()))
     1194                                                enclosedWidgets.add(((WidgetCorner)i).getWidgetSource());
     1195                        }
     1196                }
     1197               
     1198                for (InteractiveWidget iw : enclosedWidgets) {
     1199                        for (Item i : iw.getItems()) {
     1200                                if (!enclosed.contains(i)) {
     1201                                        enclosed.add(i);
     1202                                }
     1203                        }
    11881204                }
    11891205
Note: See TracChangeset for help on using the changeset viewer.