[gcompris/gcomprixogoo] Fixed fullscreen mode to work on Windows.
- From: Bruno Coudoin <bcoudoin src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gcompris/gcomprixogoo] Fixed fullscreen mode to work on Windows.
- Date: Sun, 31 Jan 2010 17:47:03 +0000 (UTC)
commit b12d73b4e7ffc2e17ae420302043549ab9274573
Author: Bruno Coudoin <bruno coudoin free fr>
Date: Sun Jan 31 18:38:01 2010 +0100
Fixed fullscreen mode to work on Windows.
src/gcompris/gcompris.c | 41 ++++++++++++++++++++++++++++++++---------
1 files changed, 32 insertions(+), 9 deletions(-)
---
diff --git a/src/gcompris/gcompris.c b/src/gcompris/gcompris.c
index eafde87..64e2d68 100644
--- a/src/gcompris/gcompris.c
+++ b/src/gcompris/gcompris.c
@@ -1039,24 +1039,47 @@ void gc_board_end()
*/
void gc_fullscreen_set(gboolean state)
{
+ static gint window_x = 0;
+ static gint window_y = 0;
+ static gint window_w = BOARDWIDTH;
+ static gint window_h = BOARDHEIGHT;
+
fullscreen = state;
if(state)
{
- gdk_window_set_decorations (window->window, 0);
+ gtk_window_get_position ( (GtkWindow*)( window ), &window_x, &window_y );
+ gtk_window_get_size ( GTK_WINDOW ( window ), &window_w, &window_h );
+#ifdef WIN32
+ // WARNING: Doing this is required on Windows
+ // but keep the window hidden on GNU/Linux
+ gtk_widget_hide ( window );
+#endif
+ gtk_window_set_decorated ( GTK_WINDOW ( window ), FALSE );
+ gtk_window_set_type_hint ( GTK_WINDOW ( window ),
+ GDK_WINDOW_TYPE_HINT_DESKTOP );
if (popt_sugar_look)
- gtk_window_maximize (GTK_WINDOW(window));
+ gtk_window_maximize ( GTK_WINDOW( window ) );
else
- gtk_window_fullscreen (GTK_WINDOW(window));
- gtk_widget_set_uposition (window, 0, 0);
+ gtk_window_fullscreen ( GTK_WINDOW ( window ) );
+
+ gtk_window_move ( GTK_WINDOW ( window ), 0, 0 );
+
+ GdkScreen *screen = gtk_window_get_screen ( GTK_WINDOW ( window ) );
+ gtk_window_resize ( GTK_WINDOW ( window ),
+ gdk_screen_get_width (screen),
+ gdk_screen_get_height (screen) );
}
else
{
- gdk_window_set_decorations (window->window, GDK_DECOR_ALL);
- gtk_window_unfullscreen (GTK_WINDOW(window));
-
- /* Mandatory or on windows we get iconified */
- gtk_window_deiconify (GTK_WINDOW(window));
+ gtk_widget_hide ( window );
+ gtk_window_set_type_hint ( GTK_WINDOW ( window ),
+ GDK_WINDOW_TYPE_HINT_NORMAL );
+ gtk_window_unfullscreen ( GTK_WINDOW ( window ) );
+ gtk_window_set_decorated ( GTK_WINDOW ( window ), TRUE );
+ gtk_window_move ( GTK_WINDOW ( window ), window_x, window_y );
+ gtk_window_resize ( GTK_WINDOW ( window ), window_w, window_h );
}
+ gtk_window_present ( GTK_WINDOW ( window ) );
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]