javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/Shell.java
--- a/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/Shell.java Fri May 14 15:47:24 2010 +0300
+++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/Shell.java Thu May 27 12:49:31 2010 +0300
@@ -132,6 +132,8 @@
Rectangle defBounds;
+Point oldSize;
+
/**
* The WindowSurface wrapper for top level shells. Window surface
* provides access for Qt created draw surface.
@@ -830,6 +832,20 @@
int setBounds (int x, int y, int width, int height, boolean move, boolean resize) {
// On Symbian platform top-level Shells are forced to maximized
if(OS.windowServer == OS.WS_SYMBIAN_S60 && parent == null) {
+ //for updating the layout when shell.pack is called after shell open.
+ // or aligning with other platform which has resizable top shell
+ if(resize) {
+ Point newSize = new Point(width, height);
+ if(oldSize == null || !oldSize.equals(newSize)) {
+ sendEvent(SWT.Resize);
+ // Activate layout
+ if (layout != null) {
+ markLayout (false, false);
+ updateLayout (false);
+ }
+ oldSize = newSize;
+ }
+ }
return 0;
}