From: Peter Wu <lekensteyn@gmail.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: qemu-trivial@nongnu.org, Anthony Liguori <aliguori@us.ibm.com>,
qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-trivial] [Qemu-devel] [PATCH] gtk: implement -full-screen and -no-frame
Date: Sun, 09 Jun 2013 23:49:56 +0200 [thread overview]
Message-ID: <12151202.rdheR2yjjV@al> (raw)
In-Reply-To: <CA+aC4ktaHDBRywD6fReNWW5eNmOkr-TGBYjGXY426uMF=GMftw@mail.gmail.com>
On Sunday 09 June 2013 13:33:14 Anthony Liguori wrote:
> On Sun, Jun 9, 2013 at 5:30 AM, Peter Wu <lekensteyn@gmail.com> wrote:
> > Aiming for GTK as replacement for SDL, features like -full-screen and
> > -no-frame should also be implemented.
> >
> > Bringing the window into full-screen mode is done by faking activating the
> > full screen menu item with a NULL menu item (which currently is not used
> > by gd_menu_full_screen). This is done after showing the windows to make
> > the cursor and menu hidden.
> >
> > Signed-off-by: Peter Wu <lekensteyn@gmail.com>
> > ---
> >
> > include/ui/console.h | 2 +-
> > ui/gtk.c | 10 +++++++++-
> > vl.c | 2 +-
> > 3 files changed, 11 insertions(+), 3 deletions(-)
> >
> > diff --git a/include/ui/console.h b/include/ui/console.h
> > index 4307b5f..7174ba9 100644
> > --- a/include/ui/console.h
> > +++ b/include/ui/console.h
> > @@ -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, int full_screen, int no_frame);
> >
> > #endif
> >
> > diff --git a/ui/gtk.c b/ui/gtk.c
> > index 3bc2842..3df2611 100644
> > --- a/ui/gtk.c
> > +++ b/ui/gtk.c
> > @@ -1433,7 +1433,7 @@ static const DisplayChangeListenerOps dcl_ops = {
> >
> > .dpy_cursor_define = gd_cursor_define,
> >
> > };
> >
> > -void gtk_display_init(DisplayState *ds)
> > +void gtk_display_init(DisplayState *ds, int full_screen, int no_frame)
> >
> > {
> >
> > GtkDisplayState *s = g_malloc0(sizeof(*s));
> > char *filename;
> >
> > @@ -1457,6 +1457,10 @@ void gtk_display_init(DisplayState *ds)
> >
> > s->scale_y = 1.0;
> > s->free_scale = FALSE;
> >
> > + if (no_frame) {
> > + gtk_window_set_decorated(GTK_WINDOW(s->window), FALSE);
> > + }
> > +
>
> Is this really desirable? Why do people use -no-frame? I don't think
> we should carry over features from SDL just because they are there.
I started using it because -full-screen didn't work well in SDL. In SDL, full-
screen mode changes de video mode too. At some point, I even managed to crash
QEMU in full screen mode with certain Xorg settings.
I just added it to GTK because it was possible to do so. In GTK, I -full-
screen hides the menu bar (although there is still some pixels visible on the
top!) and the border without changing modes (which is a plus!). Due to this,
there is not really a need for -no-frame for me.
Others are likely using -no-frame in a space-constrained environment where
they need to show multiple windows.
> > setlocale(LC_ALL, "");
> > bindtextdomain("qemu", CONFIG_QEMU_LOCALEDIR);
> > textdomain("qemu");
> >
> > @@ -1509,6 +1513,10 @@ void gtk_display_init(DisplayState *ds)
> >
> > gtk_widget_show_all(s->window);
> >
> > + if (full_screen) {
> > + gd_menu_full_screen(NULL, s);
> > + }
> > +
>
> You should activate the menu item by using gtk_check_menu_item_set_active().
>
> Otherwise the menu with be out of sync with the UI state.
Alright, I forgot to check that. I will this fix in a next patch where I will
leave out -no-frame as well.
Thanks for review!
Regards,
Peter
> Regards,
>
> Anthony Liguori
>
> > register_displaychangelistener(&s->dcl);
> >
> > global_state = s;
> >
> > diff --git a/vl.c b/vl.c
> > index 47ab45d..5a00710 100644
> > --- a/vl.c
> > +++ b/vl.c
> > @@ -4347,7 +4347,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, no_frame);
> >
> > break;
> >
> > #endif
> >
> > default:
> > --
> > 1.8.3
WARNING: multiple messages have this Message-ID (diff)
From: Peter Wu <lekensteyn@gmail.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: qemu-trivial@nongnu.org, Anthony Liguori <aliguori@us.ibm.com>,
qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] gtk: implement -full-screen and -no-frame
Date: Sun, 09 Jun 2013 23:49:56 +0200 [thread overview]
Message-ID: <12151202.rdheR2yjjV@al> (raw)
In-Reply-To: <CA+aC4ktaHDBRywD6fReNWW5eNmOkr-TGBYjGXY426uMF=GMftw@mail.gmail.com>
On Sunday 09 June 2013 13:33:14 Anthony Liguori wrote:
> On Sun, Jun 9, 2013 at 5:30 AM, Peter Wu <lekensteyn@gmail.com> wrote:
> > Aiming for GTK as replacement for SDL, features like -full-screen and
> > -no-frame should also be implemented.
> >
> > Bringing the window into full-screen mode is done by faking activating the
> > full screen menu item with a NULL menu item (which currently is not used
> > by gd_menu_full_screen). This is done after showing the windows to make
> > the cursor and menu hidden.
> >
> > Signed-off-by: Peter Wu <lekensteyn@gmail.com>
> > ---
> >
> > include/ui/console.h | 2 +-
> > ui/gtk.c | 10 +++++++++-
> > vl.c | 2 +-
> > 3 files changed, 11 insertions(+), 3 deletions(-)
> >
> > diff --git a/include/ui/console.h b/include/ui/console.h
> > index 4307b5f..7174ba9 100644
> > --- a/include/ui/console.h
> > +++ b/include/ui/console.h
> > @@ -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, int full_screen, int no_frame);
> >
> > #endif
> >
> > diff --git a/ui/gtk.c b/ui/gtk.c
> > index 3bc2842..3df2611 100644
> > --- a/ui/gtk.c
> > +++ b/ui/gtk.c
> > @@ -1433,7 +1433,7 @@ static const DisplayChangeListenerOps dcl_ops = {
> >
> > .dpy_cursor_define = gd_cursor_define,
> >
> > };
> >
> > -void gtk_display_init(DisplayState *ds)
> > +void gtk_display_init(DisplayState *ds, int full_screen, int no_frame)
> >
> > {
> >
> > GtkDisplayState *s = g_malloc0(sizeof(*s));
> > char *filename;
> >
> > @@ -1457,6 +1457,10 @@ void gtk_display_init(DisplayState *ds)
> >
> > s->scale_y = 1.0;
> > s->free_scale = FALSE;
> >
> > + if (no_frame) {
> > + gtk_window_set_decorated(GTK_WINDOW(s->window), FALSE);
> > + }
> > +
>
> Is this really desirable? Why do people use -no-frame? I don't think
> we should carry over features from SDL just because they are there.
I started using it because -full-screen didn't work well in SDL. In SDL, full-
screen mode changes de video mode too. At some point, I even managed to crash
QEMU in full screen mode with certain Xorg settings.
I just added it to GTK because it was possible to do so. In GTK, I -full-
screen hides the menu bar (although there is still some pixels visible on the
top!) and the border without changing modes (which is a plus!). Due to this,
there is not really a need for -no-frame for me.
Others are likely using -no-frame in a space-constrained environment where
they need to show multiple windows.
> > setlocale(LC_ALL, "");
> > bindtextdomain("qemu", CONFIG_QEMU_LOCALEDIR);
> > textdomain("qemu");
> >
> > @@ -1509,6 +1513,10 @@ void gtk_display_init(DisplayState *ds)
> >
> > gtk_widget_show_all(s->window);
> >
> > + if (full_screen) {
> > + gd_menu_full_screen(NULL, s);
> > + }
> > +
>
> You should activate the menu item by using gtk_check_menu_item_set_active().
>
> Otherwise the menu with be out of sync with the UI state.
Alright, I forgot to check that. I will this fix in a next patch where I will
leave out -no-frame as well.
Thanks for review!
Regards,
Peter
> Regards,
>
> Anthony Liguori
>
> > register_displaychangelistener(&s->dcl);
> >
> > global_state = s;
> >
> > diff --git a/vl.c b/vl.c
> > index 47ab45d..5a00710 100644
> > --- a/vl.c
> > +++ b/vl.c
> > @@ -4347,7 +4347,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, no_frame);
> >
> > break;
> >
> > #endif
> >
> > default:
> > --
> > 1.8.3
next prev parent reply other threads:[~2013-06-09 21:50 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-09 10:30 [Qemu-trivial] [PATCH] gtk: implement -full-screen and -no-frame Peter Wu
2013-06-09 10:30 ` [Qemu-devel] " Peter Wu
2013-06-09 18:33 ` [Qemu-trivial] " Anthony Liguori
2013-06-09 18:33 ` Anthony Liguori
2013-06-09 21:49 ` Peter Wu [this message]
2013-06-09 21:49 ` Peter Wu
2013-06-10 12:33 ` [Qemu-trivial] " Kevin Wolf
2013-06-10 12:33 ` Kevin Wolf
2013-06-10 12:43 ` [Qemu-trivial] " Peter Wu
2013-06-10 12:43 ` Peter Wu
2013-06-10 13:15 ` [Qemu-trivial] " Kevin Wolf
2013-06-10 13:15 ` Kevin Wolf
2013-06-10 15:39 ` [Qemu-trivial] " Michael Tokarev
2013-06-10 15:39 ` [Qemu-devel] " Michael Tokarev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=12151202.rdheR2yjjV@al \
--to=lekensteyn@gmail.com \
--cc=aliguori@us.ibm.com \
--cc=anthony@codemonkey.ws \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.