summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kurtakov <akurtako@redhat.com>2012-11-07 14:01:47 +0200
committerAlexander Kurtakov <akurtako@redhat.com>2012-11-07 14:01:47 +0200
commitc778b241fcd142fdc0d822f0796eed03c48ad14a (patch)
tree881a9f7068d599ab133da57473319a0051ce47f3
parentd9f25bc7d1ecd6068aa4c063198febec711ff57a (diff)
downloadeclipse.platform.swt-c778b241fcd142fdc0d822f0796eed03c48ad14a.tar.gz
eclipse.platform.swt-c778b241fcd142fdc0d822f0796eed03c48ad14a.tar.xz
eclipse.platform.swt-c778b241fcd142fdc0d822f0796eed03c48ad14a.zip
Use gtk_tree_view_column_get_button in Tree too.
One gtk call instead of traversing the hierarchy of widgets.
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java16
1 files changed, 10 insertions, 6 deletions
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 a92171ff99..95baf3b196 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
@@ -783,13 +783,17 @@ void createItem (TreeColumn column, int index) {
column.labelHandle = labelHandle;
column.imageHandle = imageHandle;
OS.gtk_tree_view_column_set_widget (column.handle, boxHandle);
- long /*int*/ widget = OS.gtk_widget_get_parent (boxHandle);
- while (widget != handle) {
- if (OS.GTK_IS_BUTTON (widget)) {
- column.buttonHandle = widget;
- break;
+ if (OS.GTK3) {
+ column.buttonHandle = OS.gtk_tree_view_column_get_button(column.handle);
+ } else {
+ long /*int*/ widget = OS.gtk_widget_get_parent (boxHandle);
+ while (widget != handle) {
+ if (OS.GTK_IS_BUTTON (widget)) {
+ column.buttonHandle = widget;
+ break;
+ }
+ widget = OS.gtk_widget_get_parent (widget);
}
- widget = OS.gtk_widget_get_parent (widget);
}
if (columnCount == columns.length) {
TreeColumn [] newColumns = new TreeColumn [columns.length + 4];