if (OS.GTK_VERSION >= OS.VERSION (2, 4, 0)) { return computeNativeSize (handle, wHint, hHint, changed); }
public Point computeSize (int wHint, int hHint, boolean changed) {	checkWidget ();	if (wHint != SWT.DEFAULT && wHint < 0) wHint = 0;	if (hHint != SWT.DEFAULT && hHint < 0) hHint = 0;	int[] w = new int [1], h = new int [1];	int /*long*/ layout = OS.gtk_entry_get_layout (entryHandle);	OS.pango_layout_get_size (layout, w, h);	int xborder = INNER_BORDER, yborder = INNER_BORDER;	int /*long*/ style = OS.gtk_widget_get_style (entryHandle);	xborder += OS.gtk_style_get_xthickness (style);	yborder += OS.gtk_style_get_ythickness (style);	int [] property = new int [1];	OS.gtk_widget_style_get (entryHandle, OS.interior_focus, property, 0);	if (property [0] == 0) {		OS.gtk_widget_style_get (entryHandle, OS.focus_line_width, property, 0);		xborder += property [0];		yborder += property [0];	}	int width = OS.PANGO_PIXELS (w [0]) + xborder  * 2;	int height = OS.PANGO_PIXELS (h [0]) + yborder  * 2;	GtkRequisition arrowRequesition = new GtkRequisition ();	OS.gtk_widget_size_request (arrowHandle, arrowRequesition);	GtkRequisition listRequesition = new GtkRequisition ();	int /*long*/ listParent = OS.gtk_widget_get_parent (listHandle);	OS.gtk_widget_size_request (listParent != 0 ? listParent : listHandle, listRequesition);		width = Math.max (listRequesition.width, width) + arrowRequesition.width + 4;	width = wHint == SWT.DEFAULT ? width : wHint;	height = hHint == SWT.DEFAULT ? height : hHint;	return new Point (width, height);}