Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog11
-rw-r--r--gcompris.desktop.in2
-rw-r--r--src/gcompris/gcompris.c17
3 files changed, 22 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 6150d00..7602684 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2006-06-05 Bruno coudoin <bruno.coudoin@free.fr>
+ * Release 8.0BETA1
+
+ - Fixes GCompris flashing at startup when running in windows mode
+ Again by Hans de Goede.
+
+ * gcompris.desktop.in: Changed to be in the education category.
+ * src/gcompris/gcompris.c: (gcompris_set_fullscreen), (map_cb),
+ (xf86_window_configured):
+
+2006-06-05 Bruno coudoin <bruno.coudoin@free.fr>
+
- Fixes fullscreen issue with xvidmode.
By Hans de Goede.
diff --git a/gcompris.desktop.in b/gcompris.desktop.in
index 496811f..de907d7 100644
--- a/gcompris.desktop.in
+++ b/gcompris.desktop.in
@@ -7,7 +7,7 @@ Exec=gcompris
Icon=gcompris.png
Terminal=false
Type=Application
-Categories=GNOME;Application;Game;
+Categories=GNOME;Application;Education;
StartupNotify=true
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gcompris
diff --git a/src/gcompris/gcompris.c b/src/gcompris/gcompris.c
index d4fbcc5..31cbfd3 100644
--- a/src/gcompris/gcompris.c
+++ b/src/gcompris/gcompris.c
@@ -187,16 +187,15 @@ static struct poptOption options[] = {
#ifdef XF86_VIDMODE
static struct
{
- int vidmode_available;
XF86VidModeModeInfo fs_mode;
XF86VidModeModeInfo orig_mode;
int orig_viewport_x;
int orig_viewport_y;
-} XF86VidModeData = { 0, { 0 }, { 0 }, 0, 0 };
+} XF86VidModeData = { { 0 }, { 0 }, 0, 0 };
static void xf86_vidmode_init( void );
static void xf86_vidmode_set_fullscreen( int state );
-static void xf86_window_configured(GtkWindow *window,
+static gint xf86_window_configured(GtkWindow *window,
GdkEventConfigure *event, gpointer param);
#endif
@@ -825,9 +824,11 @@ void gcompris_set_fullscreen(gboolean state)
else
{
/* The hide must be done at least for KDE */
- gtk_widget_hide (window);
+ if (is_mapped)
+ gtk_widget_hide (window);
gdk_window_set_decorations (window->window, GDK_DECOR_ALL);
- gtk_widget_show (window);
+ if (is_mapped)
+ gtk_widget_show (window);
gdk_window_set_functions (window->window, GDK_FUNC_ALL);
gtk_window_unfullscreen (GTK_WINDOW(window));
gtk_widget_set_uposition (window, 0, 0);
@@ -906,8 +907,8 @@ static void map_cb (GtkWidget *widget, gpointer data)
{
if(is_mapped == FALSE)
{
- is_mapped = TRUE;
gcompris_set_fullscreen(properties->fullscreen);
+ is_mapped = TRUE;
}
g_warning("gcompris window is now mapped");
}
@@ -1127,7 +1128,7 @@ xf86_vidmode_set_fullscreen ( int state )
This has the added advantage that this way we know for sure the pointer is
always grabbed before setting the viewport otherwise setviewport may get
"canceled" by the pointer being outside the current viewport. */
-static void xf86_window_configured(GtkWindow *window,
+static gint xf86_window_configured(GtkWindow *window,
GdkEventConfigure *event, gpointer param)
{
if(properties->fullscreen && !properties->noxf86vm) {
@@ -1138,6 +1139,8 @@ static void xf86_window_configured(GtkWindow *window,
GDK_SCREEN_XNUMBER(gdk_screen_get_default()), event->x, event->y))
g_warning("XF86VidMode couldnot change viewport");
}
+ /* Act as if we aren't there / aren't hooked up */
+ return FALSE;
}
#endif