diff options
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT')
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; |