@@ -6143,11 +6143,22 @@ void leaveProc(long controller, long user_data) {
6143
6143
void computeSizeProc (long toplevel , long size , long user_data ) {
6144
6144
Shell shell = (Shell )getWidget (user_data );
6145
6145
if (shell == null ) return ;
6146
- if (windowSizeSet && !shell .geometry .getResize () ) return ;
6147
- GTK4 .gdk_toplevel_size_set_size (size ,shell .geometry .getRequestedWidth (),shell .geometry .getRequestedHeight () );
6146
+ if (shell .geometry .getResize ()) {
6147
+ GTK4 .gdk_toplevel_size_set_size (size ,shell .geometry .getRequestedWidth (),shell .geometry .getRequestedHeight () );
6148
+ windowSizeSet = true ;
6149
+ shell .geometry .setResize (false );
6150
+ }
6151
+ if (windowSizeSet ) return ;
6152
+
6153
+ //Only used to set initial size if resize not requested
6154
+ int [] defaultWidth = new int [1 ];
6155
+ int [] defaultHeight = new int [1 ];
6156
+ GTK4 .gdk_toplevel_size_get_bounds (size , defaultWidth , defaultHeight );
6157
+ defaultWidth [0 ] = (int ) (defaultWidth [0 ] * Shell .SHELL_TO_MONITOR_RATIO );
6158
+ defaultHeight [0 ] = (int ) (defaultHeight [0 ] * Shell .SHELL_TO_MONITOR_RATIO );
6159
+ GTK4 .gdk_toplevel_size_set_size (size , defaultWidth [0 ], defaultHeight [0 ]);
6148
6160
windowSizeSet = true ;
6149
6161
shell .geometry .setResize (false );
6150
-
6151
6162
}
6152
6163
6153
6164
void activateProc (long action , long parameter , long user_data ) {
0 commit comments