summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Table.java4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TableItem.java9
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java6
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeItem.java9
4 files changed, 17 insertions, 11 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Table.java b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Table.java
index bac5968bc6..c268ed90fd 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Table.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Table.java
@@ -2628,12 +2628,12 @@ void onPaint (Event event) {
if (!item.isDisposed ()) { /* ensure that item was not disposed in a callback */
noFocusDraw = item.paint (gc, orderedColumns [j], false) || noFocusDraw;
}
- if (isDisposed ()) return; /* ensure that receiver was not disposed in a callback */
+ if (isDisposed () || gc.isDisposed ()) return; /* ensure that receiver was not disposed in a callback */
}
}
}
}
- if (isDisposed ()) return; /* ensure that receiver was not disposed in a callback */
+ if (isDisposed () || gc.isDisposed ()) return; /* ensure that receiver was not disposed in a callback */
}
/* repaint grid lines */
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TableItem.java b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TableItem.java
index f6e219f511..1ef4a9572a 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TableItem.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TableItem.java
@@ -1027,13 +1027,14 @@ boolean paint (GC gc, TableColumn column, boolean backgroundOnly) {
event.height = parent.itemHeight;
parent.sendEvent (SWT.MeasureItem, event);
event.gc = null;
- gc.setAdvanced (oldAdvanced);
+ if (gc.isDisposed ()) return false;
gc.setAlpha (oldAlpha);
gc.setAntialias (oldAntialias);
gc.setBackgroundPattern (oldBackgroundPattern);
gc.setForegroundPattern (oldForegroundPattern);
gc.setInterpolation (oldInterpolation);
gc.setTextAntialias (oldTextAntialias);
+ gc.setAdvanced (oldAdvanced);
if (isDisposed ()) return false;
if (parent.itemHeight != event.height) {
parent.customHeightSet = true;
@@ -1112,7 +1113,7 @@ boolean paint (GC gc, TableColumn column, boolean backgroundOnly) {
gc.setClipping (cellBounds);
parent.sendEvent (SWT.EraseItem, event);
event.gc = null;
- gc.setAdvanced (oldAdvanced);
+ if (gc.isDisposed ()) return false;
gc.setAlpha (oldAlpha);
gc.setAntialias (oldAntialias);
gc.setBackgroundPattern (oldBackgroundPattern);
@@ -1120,6 +1121,7 @@ boolean paint (GC gc, TableColumn column, boolean backgroundOnly) {
gc.setForegroundPattern (oldForegroundPattern);
gc.setInterpolation (oldInterpolation);
gc.setTextAntialias (oldTextAntialias);
+ gc.setAdvanced (oldAdvanced);
if (isDisposed ()) return false;
if (!event.doit) {
drawBackground = drawForeground = drawSelection = drawFocus = false;
@@ -1278,7 +1280,7 @@ boolean paint (GC gc, TableColumn column, boolean backgroundOnly) {
gc.setClipping (cellBounds);
parent.sendEvent (SWT.PaintItem, event);
event.gc = null;
- gc.setAdvanced (oldAdvanced);
+ if (gc.isDisposed ()) return false;
gc.setAlpha (oldAlpha);
gc.setAntialias (oldAntialias);
gc.setBackgroundPattern (oldBackgroundPattern);
@@ -1286,6 +1288,7 @@ boolean paint (GC gc, TableColumn column, boolean backgroundOnly) {
gc.setForegroundPattern (oldForegroundPattern);
gc.setInterpolation (oldInterpolation);
gc.setTextAntialias (oldTextAntialias);
+ gc.setAdvanced (oldAdvanced);
drawFocus = isFocusItem && (event.detail & SWT.FOCUSED) != 0;
}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java
index 2d14ea2fd9..4d22cdf970 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/Tree.java
@@ -2779,7 +2779,7 @@ void onPaint (Event event) {
drawBackground (gc, rightX, 0, clientArea.width - rightX, clientArea.height - fillHeight);
}
}
-
+
/* paint the items */
boolean noFocusDraw = false;
int[] lineDash = gc.getLineDash ();
@@ -2798,12 +2798,12 @@ void onPaint (Event event) {
if (!item.isDisposed ()) { /* ensure that item was not disposed in a callback */
noFocusDraw = item.paint (gc, orderedColumns [j], false) || noFocusDraw;
}
- if (isDisposed ()) return; /* ensure that receiver was not disposed in a callback */
+ if (isDisposed () || gc.isDisposed ()) return; /* ensure that receiver was not disposed in a callback */
}
}
}
}
- if (isDisposed ()) return; /* ensure that receiver was not disposed in a callback */
+ if (isDisposed () || gc.isDisposed ()) return; /* ensure that receiver was not disposed in a callback */
}
/* repaint grid lines */
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeItem.java b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeItem.java
index ad5f250dcc..34f2349483 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeItem.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeItem.java
@@ -1587,7 +1587,7 @@ boolean paint (GC gc, TreeColumn column, boolean backgroundOnly) {
event.height = parent.itemHeight;
parent.sendEvent (SWT.MeasureItem, event);
event.gc = null;
- gc.setAdvanced (oldAdvanced);
+ if (gc.isDisposed ()) return false;
gc.setAlpha (oldAlpha);
gc.setAntialias (oldAntialias);
gc.setBackgroundPattern (oldBackgroundPattern);
@@ -1596,6 +1596,7 @@ boolean paint (GC gc, TreeColumn column, boolean backgroundOnly) {
gc.setLineDash (oldLineDash);
gc.setLineWidth (oldLineWidth);
gc.setTextAntialias (oldTextAntialias);
+ gc.setAdvanced (oldAdvanced);
if (isDisposed ()) return false;
if (parent.itemHeight != event.height) {
parent.customHeightSet = true;
@@ -1674,7 +1675,7 @@ boolean paint (GC gc, TreeColumn column, boolean backgroundOnly) {
gc.setClipping (cellBounds);
parent.sendEvent (SWT.EraseItem, event);
event.gc = null;
- gc.setAdvanced (oldAdvanced);
+ if (gc.isDisposed ()) return false;
gc.setAlpha (oldAlpha);
gc.setAntialias (oldAntialias);
gc.setBackgroundPattern (oldBackgroundPattern);
@@ -1684,6 +1685,7 @@ boolean paint (GC gc, TreeColumn column, boolean backgroundOnly) {
gc.setLineDash (oldLineDash);
gc.setLineWidth (oldLineWidth);
gc.setTextAntialias (oldTextAntialias);
+ gc.setAdvanced (oldAdvanced);
if (isDisposed ()) return false;
if (!event.doit) {
drawBackground = drawForeground = drawSelection = drawFocus = false;
@@ -1878,7 +1880,7 @@ boolean paint (GC gc, TreeColumn column, boolean backgroundOnly) {
gc.setClipping (cellBounds);
parent.sendEvent (SWT.PaintItem, event);
event.gc = null;
- gc.setAdvanced (oldAdvanced);
+ if (gc.isDisposed ()) return false;
gc.setAlpha (oldAlpha);
gc.setAntialias (oldAntialias);
gc.setBackgroundPattern (oldBackgroundPattern);
@@ -1888,6 +1890,7 @@ boolean paint (GC gc, TreeColumn column, boolean backgroundOnly) {
gc.setLineDash (oldLineDash);
gc.setLineWidth (oldLineWidth);
gc.setTextAntialias (oldTextAntialias);
+ gc.setAdvanced (oldAdvanced);
drawFocus = isFocusItem && (event.detail & SWT.FOCUSED) != 0;
}