diff options
author | Felipe Heidrich <fheidric> | 2004-03-08 23:51:39 +0000 |
---|---|---|
committer | Felipe Heidrich <fheidric> | 2004-03-08 23:51:39 +0000 |
commit | b2cde8ef6d2afdfc9c75fd6d9711433abec76ac2 (patch) | |
tree | 46ad373c909bb4ff091ba58929dfb6e006adaabe | |
parent | 4aaaf02b968cda71835ce6129adcd03df9c278a9 (diff) | |
download | eclipse.platform.swt-b2cde8ef6d2afdfc9c75fd6d9711433abec76ac2.tar.gz eclipse.platform.swt-b2cde8ef6d2afdfc9c75fd6d9711433abec76ac2.tar.xz eclipse.platform.swt-b2cde8ef6d2afdfc9c75fd6d9711433abec76ac2.zip |
*** empty log message ***
-rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Tree.java | 13 |
1 files changed, 11 insertions, 2 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 701367bcac..0b4aec0c0e 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 @@ -199,9 +199,17 @@ void createHandle (int index) { if (modelHandle == 0) error (SWT.ERROR_NO_HANDLES); handle = OS.gtk_tree_view_new_with_model (modelHandle); if (handle == 0) error (SWT.ERROR_NO_HANDLES); + + /* + * Bug in ATK. For some reason, ATK segments fault if + * the GtkTreeView has a column and does not have items. + * The fix is to insert the column only when an item is + * created. + */ columnHandle = OS.gtk_tree_view_column_new (); if (columnHandle == 0) error (SWT.ERROR_NO_HANDLES); OS.g_object_ref (columnHandle); + if ((style & SWT.CHECK) != 0) { checkRenderer = OS.gtk_cell_renderer_toggle_new (); if (checkRenderer == 0) error (SWT.ERROR_NO_HANDLES); @@ -445,9 +453,10 @@ public int getItemHeight () { checkWidget (); int itemCount = OS.gtk_tree_model_iter_n_children (modelHandle, 0); if (itemCount == 0) { - int /*long*/ column = OS.gtk_tree_view_get_column (handle, 0); int [] w = new int [1], h = new int [1]; - OS.gtk_tree_view_column_cell_get_size (column, null, null, null, w, h); + OS.gtk_tree_view_insert_column (handle, columnHandle, 0); + OS.gtk_tree_view_column_cell_get_size (columnHandle, null, null, null, w, h); + OS.gtk_tree_view_remove_column (handle, columnHandle); return h [0]; } else { int /*long*/ iter = OS.g_malloc (OS.GtkTreeIter_sizeof ()); |