}
 
 /* menu: enter (switch bpp, etc), begin/end drawing */
+void plat_video_menu_update(void);
 void plat_video_menu_enter(int is_rom_loaded);
 void plat_video_menu_begin(void);
 void plat_video_menu_end(void);
 
       flags |= SDL_FULLSCREEN;
       win_w = fs_w;
       win_h = fs_h;
-    }
+    } else if (window_b)
+      flags |= SDL_RESIZABLE;
 
     SDL_PumpEvents();
 
   switch (event->type) {
   case SDL_VIDEORESIZE:
     //printf("resize %dx%d\n", event->resize.w, event->resize.h);
-    if (plat_target.vout_method != 0
-        && !plat_target.vout_fullscreen && !old_fullscreen)
+    if ((plat_target.vout_method != 0 || window_b) &&
+        !plat_target.vout_fullscreen && !old_fullscreen)
     {
       window_w = event->resize.w & ~3;
       window_h = event->resize.h & ~3;
-      plat_sdl_change_video_mode(0, 0, 1);
+      plat_sdl_change_video_mode(window_w, window_h, 1);
     }
     break;
   case SDL_ACTIVEEVENT:
     *dst = v;
 }
 
+int plat_sdl_is_windowed(void)
+{
+  return window_b != 0;
+}
 // vim:shiftwidth=2:expandtab
 
 extern void (*plat_sdl_quit_cb)(void);
 
 int plat_sdl_init(void);
+int plat_sdl_is_windowed(void);
 int plat_sdl_change_video_mode(int w, int h, int force);
 void plat_sdl_overlay_clear(void);
 void plat_sdl_event_handler(void *event_);