summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TableItem.java4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/emulated/treetable/org/eclipse/swt/widgets/TreeItem.java4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java6
4 files changed, 16 insertions, 2 deletions
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 abdf2bccaa..23afd14881 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
@@ -924,6 +924,7 @@ int getPreferredWidth (int columnIndex) {
event.y = parent.getItemY (this);
event.width = width;
event.height = parent.itemHeight;
+ event.detail = isSelected () ? SWT.SELECTED : 0;
parent.sendEvent (SWT.MeasureItem, event);
if (parent.itemHeight != event.height) {
parent.customHeightSet = true;
@@ -1083,6 +1084,7 @@ boolean paint (GC gc, TableColumn column, boolean backgroundOnly) {
Pattern oldForegroundPattern = gc.getForegroundPattern ();
int oldInterpolation = gc.getInterpolation ();
int oldTextAntialias = gc.getTextAntialias ();
+ boolean isSelected = isSelected ();
if (parent.hooks (SWT.MeasureItem)) {
int contentWidth = getContentWidth (columnIndex);
@@ -1096,6 +1098,7 @@ boolean paint (GC gc, TableColumn column, boolean backgroundOnly) {
event.y = parent.getItemY (this);
event.width = contentWidth;
event.height = parent.itemHeight;
+ event.detail = isSelected ? SWT.SELECTED : 0;
parent.sendEvent (SWT.MeasureItem, event);
event.gc = null;
if (gc.isDisposed ()) return false;
@@ -1153,7 +1156,6 @@ boolean paint (GC gc, TableColumn column, boolean backgroundOnly) {
parent.drawBackground (gc, cellBounds.x, cellBounds.y, fillWidth, cellBounds.height, 0, 0);
}
- boolean isSelected = isSelected ();
boolean isFocusItem = parent.focusItem == this && parent.isFocusControl ();
boolean drawBackground = true;
boolean drawForeground = true;
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 966b66986e..6f9b10b180 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
@@ -1467,6 +1467,7 @@ int getPreferredWidth (int columnIndex) {
event.y = parent.getItemY (this);
event.width = width;
event.height = parent.itemHeight;
+ event.detail = isSelected () ? SWT.SELECTED : 0;
parent.sendEvent (SWT.MeasureItem, event);
if (parent.itemHeight != event.height) {
parent.customHeightSet = true;
@@ -1685,6 +1686,7 @@ boolean paint (GC gc, TreeColumn column, boolean backgroundOnly) {
int[] oldLineDash = gc.getLineDash ();
int oldLineWidth = gc.getLineWidth ();
int oldTextAntialias = gc.getTextAntialias ();
+ boolean isSelected = isSelected ();
if (parent.hooks (SWT.MeasureItem)) {
int contentWidth = getContentWidth (columnIndex);
@@ -1698,6 +1700,7 @@ boolean paint (GC gc, TreeColumn column, boolean backgroundOnly) {
event.y = parent.getItemY (this);
event.width = contentWidth;
event.height = parent.itemHeight;
+ event.detail = isSelected ? SWT.SELECTED : 0;
parent.sendEvent (SWT.MeasureItem, event);
event.gc = null;
if (gc.isDisposed ()) return false;
@@ -1757,7 +1760,6 @@ boolean paint (GC gc, TreeColumn column, boolean backgroundOnly) {
parent.drawBackground (gc, cellBounds.x, cellBounds.y, fillWidth, cellBounds.height, 0, 0);
}
- boolean isSelected = isSelected ();
boolean isFocusItem = parent.focusItem == this && parent.isFocusControl ();
boolean drawBackground = true;
boolean drawForeground = true;
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java
index d0dfe65392..305a54feed 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Table.java
@@ -2529,12 +2529,15 @@ int /*long*/ rendererGetSizeProc (int /*long*/ cell, int /*long*/ widget, int /*
if (!ignoreSize && OS.GTK_IS_CELL_RENDERER_TEXT (cell)) {
int /*long*/ iter = OS.g_object_get_qdata (cell, Display.SWT_OBJECT_INDEX2);
TableItem item = null;
+ boolean isSelected = false;
if (iter != 0) {
int /*long*/ path = OS.gtk_tree_model_get_path (modelHandle, iter);
int [] buffer = new int [1];
OS.memmove (buffer, OS.gtk_tree_path_get_indices (path), 4);
int index = buffer [0];
item = _getItem (index);
+ int /*long*/ selection = OS.gtk_tree_view_get_selection (handle);
+ isSelected = OS.gtk_tree_selection_path_is_selected (selection, path);
OS.gtk_tree_path_free (path);
}
if (item != null) {
@@ -2567,6 +2570,7 @@ int /*long*/ rendererGetSizeProc (int /*long*/ cell, int /*long*/ widget, int /*
event.gc = gc;
event.width = contentWidth [0];
event.height = contentHeight [0];
+ if (isSelected) event.detail = SWT.SELECTED;
sendEvent (SWT.MeasureItem, event);
gc.dispose ();
contentWidth [0] = event.width - imageWidth;
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java
index db619d7091..40c116ee84 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java
@@ -2564,6 +2564,12 @@ int /*long*/ rendererGetSizeProc (int /*long*/ cell, int /*long*/ widget, int /*
event.gc = gc;
event.width = contentWidth [0];
event.height = contentHeight [0];
+ int /*long*/ path = OS.gtk_tree_model_get_path (modelHandle, iter);
+ int /*long*/ selection = OS.gtk_tree_view_get_selection (handle);
+ if (OS.gtk_tree_selection_path_is_selected (selection, path)) {
+ event.detail = SWT.SELECTED;
+ }
+ OS.gtk_tree_path_free (path);
sendEvent (SWT.MeasureItem, event);
gc.dispose ();
contentWidth [0] = event.width - imageWidth;