-// System.out.println(" widget selection: " + selection);
- selectionProvider.setAndFireNonEqualSelection(selection);
+// System.out.println(" widget selection: " + widgetSelection);
+ boolean equals = selectionProvider.selectionEquals(widgetSelection);
+ selectionProvider.setSelectionWithoutFiring(widgetSelection);
+ return equals ? null : widgetSelection;
+ }
+
+ /**
+ * @return the new selection if it was different from the old selection in
+ * {@link #selectionProvider}
+ */
+ private boolean resetSelectionFromWidgetAndFirePostSelection(boolean force) {
+ ISelection s = resetSelectionFromWidget();
+ boolean fire = s != null || force;
+ if (fire) {
+ //System.out.println("FIRING POST-SELECTION: " + selectionProvider.getSelection());
+ selectionProvider.firePostSelection(selectionProvider.getSelection());
+ }
+ return fire;