]> xenbits.xensource.com Git - qemu-upstream-4.4-testing.git/commitdiff
gtk: implement -full-screen
authorPeter Wu <lekensteyn@gmail.com>
Mon, 10 Jun 2013 18:04:43 +0000 (20:04 +0200)
committerMichael Tokarev <mjt@tls.msk.ru>
Tue, 11 Jun 2013 19:45:44 +0000 (23:45 +0400)
Aiming for GTK as replacement for SDL, a feature like -full-screen should also
be implemented.

Bringing the window into full-screen mode is done by activating the "Fullscreen"
menu item. This is done after showing the windows to make the cursor and menu
hidden.

v2: drop -no-frame implementation, use booleans instead of ints and ensure
    consistency between ui state and menu.

Signed-off-by: Peter Wu <lekensteyn@gmail.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
include/ui/console.h
ui/gtk.c
vl.c

index 4307b5fe88a5979eefbd10a5b877d2ce97c9906d..f1d79f92a48e92bb4a264b9af9db39411165b7eb 100644 (file)
@@ -339,6 +339,6 @@ int index_from_keycode(int code);
 
 /* gtk.c */
 void early_gtk_display_init(void);
-void gtk_display_init(DisplayState *ds);
+void gtk_display_init(DisplayState *ds, bool full_screen);
 
 #endif
index 63f6081913aed62891292baf7a06743a8a783f5d..e314dba343938166f03c43649bed1e3b59169a66 100644 (file)
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1435,7 +1435,7 @@ static const DisplayChangeListenerOps dcl_ops = {
     .dpy_cursor_define = gd_cursor_define,
 };
 
-void gtk_display_init(DisplayState *ds)
+void gtk_display_init(DisplayState *ds, bool full_screen)
 {
     GtkDisplayState *s = g_malloc0(sizeof(*s));
     char *filename;
@@ -1511,6 +1511,10 @@ void gtk_display_init(DisplayState *ds)
 
     gtk_widget_show_all(s->window);
 
+    if (full_screen) {
+        gtk_menu_item_activate(GTK_MENU_ITEM(s->full_screen_item));
+    }
+
     register_displaychangelistener(&s->dcl);
 
     global_state = s;
diff --git a/vl.c b/vl.c
index 180fddea3935279bf9925f6a87aaf114e5badb6c..169c8072aa2119a60e2017ad2f13b758199a316a 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -4348,7 +4348,7 @@ int main(int argc, char **argv, char **envp)
 #endif
 #if defined(CONFIG_GTK)
     case DT_GTK:
-        gtk_display_init(ds);
+        gtk_display_init(ds, full_screen);
         break;
 #endif
     default: