summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Wu <lekensteyn@gmail.com>2013-06-11 10:42:24 +0200
committerPeter Wu <lekensteyn@gmail.com>2013-06-11 10:52:20 +0200
commit23803b6e5ce393239c6b3de8df1aa9bee84dd61c (patch)
treee85a7ffe4a6c0cd4e11e1153de0f5e872ce139f3
parent609a79dc11fcb6eddfe380e0c6db72021d055c85 (diff)
downloadqemu-23803b6e5ce393239c6b3de8df1aa9bee84dd61c.tar.gz
Unbreak -no-quit for GTK, validate SDL optionsgtk-updates
Certain options (-no-frame, -alt-grab, -ctrl-grab) only make sense with SDL. When compiling without SDL, these options (and -no-quit) print an error message and exit qemu. In case QEMU is compiled with SDL support, the three aforementioned options still do not make sense with other display types. This patch addresses that issue by printing a warning. I have chosen not to exit QEMU afterwards because having the option is not harmful and before this patch it would be ignored anyway. By delaying the sanity check from compile-time with some ifdefs to run-time, -no-quit is now also properly supported when compiling without SDL. Signed-off-by: Peter Wu <lekensteyn@gmail.com>
-rw-r--r--vl.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/vl.c b/vl.c
index cfd2d3e822..29ab85c922 100644
--- a/vl.c
+++ b/vl.c
@@ -3523,7 +3523,6 @@ int main(int argc, char **argv, char **envp)
case QEMU_OPTION_full_screen:
full_screen = 1;
break;
-#ifdef CONFIG_SDL
case QEMU_OPTION_no_frame:
no_frame = 1;
break;
@@ -3536,14 +3535,11 @@ int main(int argc, char **argv, char **envp)
case QEMU_OPTION_no_quit:
no_quit = 1;
break;
+#ifdef CONFIG_SDL
case QEMU_OPTION_sdl:
display_type = DT_SDL;
break;
#else
- case QEMU_OPTION_no_frame:
- case QEMU_OPTION_alt_grab:
- case QEMU_OPTION_ctrl_grab:
- case QEMU_OPTION_no_quit:
case QEMU_OPTION_sdl:
fprintf(stderr, "SDL support is disabled\n");
exit(1);
@@ -4084,6 +4080,15 @@ int main(int argc, char **argv, char **envp)
#endif
}
+ if ((no_frame || alt_grab || ctrl_grab) && display_type != DT_SDL) {
+ fprintf(stderr, "-no-frame, -alt-grab and -ctrl-grab are only valid "
+ "for SDL, ignoring option\n");
+ }
+ if (no_quit && (display_type != DT_GTK && display_type != DT_SDL)) {
+ fprintf(stderr, "-no-quit is only valid for GTK and SDL, "
+ "ignoring option\n");
+ }
+
#if defined(CONFIG_GTK)
if (display_type == DT_GTK) {
early_gtk_display_init();