diff options
author | Paul D'Pong | 2020-09-10 20:53:59 +0000 |
---|---|---|
committer | Alexander Kurtakov | 2020-09-11 04:57:17 +0000 |
commit | e29922459cba18f9f7ff821f12b3cee57f01ae15 (patch) | |
tree | f1c64825e817a85fa032c7c3aae15ef9d9fe0c92 | |
parent | 909e2928b6bc5d431a8333a70ea1cded5651f818 (diff) | |
download | eclipse.platform.swt-e29922459cba18f9f7ff821f12b3cee57f01ae15.tar.gz eclipse.platform.swt-e29922459cba18f9f7ff821f12b3cee57f01ae15.tar.xz eclipse.platform.swt-e29922459cba18f9f7ff821f12b3cee57f01ae15.zip |
Bug 566877 - [GTK4] gtk_tree_view_column_cell_get_size signature
change/cleanup
- Fixed signature for gtk_tree_view_column_cell_get_size in the Tree
class
- Removed the width variable for many of the functions that are
exclusively asking for height
- More consistent spacing
Change-Id: I059a6a13451b4059fc32a3ed48f42904321bb037
Signed-off-by: Paul D'Pong <sdamrong@redhat.com>
4 files changed, 95 insertions, 73 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/List.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/List.java index 096a5563f2..c85dbfb288 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/List.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/List.java @@ -547,36 +547,38 @@ public int getItemHeight () { return DPIUtil.autoScaleDown(getItemHeightInPixels()); } -int getItemHeightInPixels () { +int getItemHeightInPixels() { checkWidget(); - int itemCount = GTK.gtk_tree_model_iter_n_children (modelHandle, 0); - long column = GTK.gtk_tree_view_get_column (handle, 0); - - int height; - int [] w = new int [1], h = new int [1]; + int height = 0; + int itemCount = GTK.gtk_tree_model_iter_n_children(modelHandle, 0); + long column = GTK.gtk_tree_view_get_column(handle, 0); + int[] h = new int[1]; if (itemCount == 0) { if (GTK.GTK4) { - GTK.gtk_tree_view_column_cell_get_size(column, null, null, w, h); + GTK.gtk_tree_view_column_cell_get_size(column, null, null, null, h); } else { - GTK.gtk_tree_view_column_cell_get_size (column, null, null, null, w, h); + GTK.gtk_tree_view_column_cell_get_size(column, null, null, null, null, h); } - - height = h[0]; } else { - long iter = OS.g_malloc (GTK.GtkTreeIter_sizeof ()); - GTK.gtk_tree_model_get_iter_first (modelHandle, iter); - GTK.gtk_tree_view_column_cell_set_cell_data (column, modelHandle, iter, false, false); - GTK.gtk_tree_view_column_cell_get_size (column, null, null, null, w, h); - height = h[0]; + long iter = OS.g_malloc(GTK.GtkTreeIter_sizeof()); + + GTK.gtk_tree_model_get_iter_first(modelHandle, iter); + GTK.gtk_tree_view_column_cell_set_cell_data(column, modelHandle, iter, false, false); + if (GTK.GTK4) { + GTK.gtk_tree_view_column_cell_get_size(column, null, null, null, h); + } else { + GTK.gtk_tree_view_column_cell_get_size(column, null, null, null, null, h); + } - OS.g_free (iter); + OS.g_free(iter); } + height = h[0]; - long textRenderer = getTextRenderer (column); - int [] ypad = new int[1]; + long textRenderer = getTextRenderer(column); + int[] ypad = new int[1]; if (textRenderer != 0) GTK.gtk_cell_renderer_get_padding(textRenderer, null, ypad); - height += ypad [0]; + height += ypad[0]; return height; } 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 7d0d68748a..d980dc689d 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 @@ -334,7 +334,7 @@ public void addSelectionListener (SelectionListener listener) { } int calculateWidth (long column, long iter) { - GTK.gtk_tree_view_column_cell_set_cell_data (column, modelHandle, iter, false, false); + GTK.gtk_tree_view_column_cell_set_cell_data(column, modelHandle, iter, false, false); /* * Bug in GTK. The width calculated by gtk_tree_view_column_cell_get_size() @@ -343,17 +343,18 @@ int calculateWidth (long column, long iter) { */ //This workaround is causing the problem Bug 459834 in GTK3. So reverting the workaround for GTK3 - int [] width = new int [1]; + int[] width = new int[1]; if (GTK.GTK4) { GTK.gtk_tree_view_column_cell_get_size(column, null, null, width, null); } else { - GTK.gtk_tree_view_column_cell_get_size (column, null, null, null, width, null); + GTK.gtk_tree_view_column_cell_get_size(column, null, null, null, width, null); } - long textRenderer = getTextRenderer (column); - int [] xpad = new int[1]; + long textRenderer = getTextRenderer(column); + int[] xpad = new int[1]; if (textRenderer != 0) GTK.gtk_cell_renderer_get_padding(textRenderer, xpad, null); - return width [0] + xpad [0]*2; + + return width[0] + xpad[0] * 2; } /** @@ -1703,43 +1704,48 @@ public int getItemHeight () { int getItemHeightInPixels () { checkWidget(); + int height = 0; + if (itemCount == 0) { - long column = GTK.gtk_tree_view_get_column (handle, 0); - int [] w = new int [1], h = new int [1]; + long column = GTK.gtk_tree_view_get_column(handle, 0); + int[] h = new int[1]; ignoreSize = true; if (GTK.GTK4) { - GTK.gtk_tree_view_column_cell_get_size(column, null, null, w, h); + GTK.gtk_tree_view_column_cell_get_size(column, null, null, null, h); } else { - GTK.gtk_tree_view_column_cell_get_size (column, null, null, null, w, h); + GTK.gtk_tree_view_column_cell_get_size(column, null, null, null, null, h); } - int height = h [0]; - long textRenderer = getTextRenderer (column); - if (textRenderer != 0) GTK.gtk_cell_renderer_get_preferred_height_for_width (textRenderer, handle, 0, h, null); - height += h [0]; + + height = h[0]; + long textRenderer = getTextRenderer(column); + if (textRenderer != 0) GTK.gtk_cell_renderer_get_preferred_height_for_width(textRenderer, handle, 0, h, null); + height += h[0]; ignoreSize = false; - return height; } else { - int height = 0; - long iter = OS.g_malloc (GTK.GtkTreeIter_sizeof ()); - GTK.gtk_tree_model_get_iter_first (modelHandle, iter); - int columnCount = Math.max (1, this.columnCount); - for (int i=0; i<columnCount; i++) { - long column = GTK.gtk_tree_view_get_column (handle, i); - GTK.gtk_tree_view_column_cell_set_cell_data (column, modelHandle, iter, false, false); - int [] w = new int [1], h = new int [1]; + long iter = OS.g_malloc(GTK.GtkTreeIter_sizeof()); + GTK.gtk_tree_model_get_iter_first(modelHandle, iter); + + int columnCount = Math.max(1, this.columnCount); + for (int i = 0; i < columnCount; i++) { + long column = GTK.gtk_tree_view_get_column(handle, i); + GTK.gtk_tree_view_column_cell_set_cell_data(column, modelHandle, iter, false, false); + int[] h = new int[1]; if (GTK.GTK4) { - GTK.gtk_tree_view_column_cell_get_size(column, null, null, w, h); + GTK.gtk_tree_view_column_cell_get_size(column, null, null, null, h); } else { - GTK.gtk_tree_view_column_cell_get_size (column, null, null, null, w, h); + GTK.gtk_tree_view_column_cell_get_size (column, null, null, null, null, h); } - long textRenderer = getTextRenderer (column); - int [] ypad = new int[1]; + + long textRenderer = getTextRenderer(column); + int[] ypad = new int[1]; if (textRenderer != 0) GTK.gtk_cell_renderer_get_padding(textRenderer, null, ypad); - height = Math.max(height, h [0] + ypad [0]); + height = Math.max(height, h[0] + ypad[0]); } + OS.g_free (iter); - return height; } + + return height; } /** diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TableItem.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TableItem.java index 385bd7e1a2..a5d3f9b99d 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TableItem.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/TableItem.java @@ -423,7 +423,7 @@ Rectangle getBoundsInPixels (int index) { if (GTK.GTK4) { GTK.gtk_tree_view_column_cell_get_size(column, null, null, columnWidth, columnHeight); } else { - GTK.gtk_tree_view_column_cell_get_size (column, null, null, null, columnWidth, columnHeight); + GTK.gtk_tree_view_column_cell_get_size(column, null, null, null, columnWidth, columnHeight); } parent.ignoreSize = false; rect.height = columnHeight [0]; 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 b481de7fab..63ca2a4d8b 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 @@ -1790,41 +1790,50 @@ public int getItemHeight () { } int getItemHeightInPixels () { - checkWidget (); - int itemCount = GTK.gtk_tree_model_iter_n_children (modelHandle, 0); + checkWidget(); + int height = 0; + int itemCount = GTK.gtk_tree_model_iter_n_children(modelHandle, 0); + if (itemCount == 0) { - long column = GTK.gtk_tree_view_get_column (handle, 0); - int [] w = new int [1], h = new int [1]; + long column = GTK.gtk_tree_view_get_column(handle, 0); + int[] h = new int[1]; ignoreSize = true; if (GTK.GTK4) { - GTK.gtk_tree_view_column_cell_get_size(column, null, null, w, h); + GTK.gtk_tree_view_column_cell_get_size(column, null, null, null, h); } else { - GTK.gtk_tree_view_column_cell_get_size (column, null, null, null, w, h); + GTK.gtk_tree_view_column_cell_get_size(column, null, null, null, null, h); } - int height = h [0]; - long textRenderer = getTextRenderer (column); - if (textRenderer != 0) GTK.gtk_cell_renderer_get_preferred_height_for_width (textRenderer, handle, 0, h, null); - height += h [0]; + + height = h[0]; + long textRenderer = getTextRenderer(column); + if (textRenderer != 0) GTK.gtk_cell_renderer_get_preferred_height_for_width(textRenderer, handle, 0, h, null); + height += h[0]; ignoreSize = false; - return height; } else { - int height = 0; - long iter = OS.g_malloc (GTK.GtkTreeIter_sizeof ()); - GTK.gtk_tree_model_get_iter_first (modelHandle, iter); - int columnCount = Math.max (1, this.columnCount); - for (int i=0; i<columnCount; i++) { - long column = GTK.gtk_tree_view_get_column (handle, i); - GTK.gtk_tree_view_column_cell_set_cell_data (column, modelHandle, iter, false, false); - int [] w = new int [1], h = new int [1]; - GTK.gtk_tree_view_column_cell_get_size (column, null, null, null, w, h); + long iter = OS.g_malloc(GTK.GtkTreeIter_sizeof()); + GTK.gtk_tree_model_get_iter_first(modelHandle, iter); + + int columnCount = Math.max(1, this.columnCount); + for (int i = 0; i < columnCount; i++) { + long column = GTK.gtk_tree_view_get_column(handle, i); + GTK.gtk_tree_view_column_cell_set_cell_data(column, modelHandle, iter, false, false); + int[] h = new int[1]; + if (GTK.GTK4) { + GTK.gtk_tree_view_column_cell_get_size(column, null, null, null, h); + } else { + GTK.gtk_tree_view_column_cell_get_size (column, null, null, null, null, h); + } + long textRenderer = getTextRenderer(column); - int [] ypad = new int[1]; + int[] ypad = new int[1]; if (textRenderer != 0) GTK.gtk_cell_renderer_get_padding(textRenderer, null, ypad); - height = Math.max(height, h [0] + ypad [0]); + height = Math.max(height, h[0] + ypad[0]); } + OS.g_free (iter); - return height; } + + return height; } /** @@ -2167,7 +2176,12 @@ long gtk_button_press_event (long widget, long event) { } double [] eventRX = new double [1]; double [] eventRY = new double [1]; - GDK.gdk_event_get_root_coords(event, eventRX, eventRY); + if (GTK.GTK4) { + long root = GTK.gtk_widget_get_root(widget); + GTK.gtk_widget_translate_coordinates(widget, root, eventX[0], eventY[0], eventRX, eventRY); + } else { + GDK.gdk_event_get_root_coords(event, eventRX, eventRY); + } long eventGdkResource = gdk_event_get_surface_or_window(event); if (GTK.GTK4) { |