Re: [GnomeMeeting-devel-list] win32 build issues
- From: Michael Rickmann <mrickma gwdg de>
- To: GnomeMeeting development mailing list <gnomemeeting-devel-list gnome org>
- Subject: Re: [GnomeMeeting-devel-list] win32 build issues
- Date: Sun, 12 Feb 2006 23:16:49 +0100
Hi Julien;
Julien PUYDT schrieb:
....
Well, well, well... I'll have to dig into SDL to find out if there's
something special to do on win32...
Thanks for the report :-)
There is quite a bit unpredictable in SDL-Win32. I tried to get ekiga
fullscreen running on Windows this weekend. The outcome is not very
satisfying. I made the observation that ekiga does not crash but happily
continues behind the SDL window when you switch back from fullscreen.
But don't dare to switch to fullscreen back again. The fullscreen window
can be removed by pressing the disconnect button. So SDL for Windows
just did not remove the window.
The rest of the day I spent convincing SDL to do so. In principle
1) SDL-Win32 does not like keys to trigger its quit.
2) Any events or other stuff which happens to SDL-Win32 between polling
and SDL_QUIT make the window stay there.
3) As documented SDL_WM_ToggleFullScreen does not work on Windows
So I used the right mouse button for returning, grabbed input and quit
SDL as soon as I get notice.
Attached is a patch that makes win32 fullscreen work for me. Not very
nice but perhaps a start.
Regards
Michael
P.S.: I will be off for two weeks.
diff -Nru ekiga.orig/src/gui/main.cpp ekiga/src/gui/main.cpp
--- ekiga.orig/src/gui/main.cpp 2006-02-12 00:03:33.000000000 +0100
+++ ekiga/src/gui/main.cpp 2006-02-12 21:05:15.000000000 +0100
@@ -1632,9 +1632,16 @@
SDL_Init (SDL_INIT_VIDEO);
mw->screen = SDL_SetVideoMode (gdk_screen_get_width (defaultscreen), gdk_screen_get_height (defaultscreen), 0,
SDL_SWSURFACE | SDL_HWSURFACE |
+#if 0 // WIN32
+ SDL_FULLSCREEN |
+#endif
SDL_ANYFORMAT);
+#ifndef WIN32
SDL_WM_ToggleFullScreen (mw->screen);
SDL_ShowCursor (SDL_DISABLE);
+#else
+ SDL_WM_GrabInput(SDL_GRAB_ON);
+#endif
}
}
@@ -1647,12 +1654,17 @@
while (SDL_PollEvent (&event)) {
+#ifndef WIN32
if (event.type == SDL_KEYDOWN) {
/* Exit Full Screen */
if ((event.key.keysym.sym == SDLK_ESCAPE) ||
(event.key.keysym.sym == SDLK_f)) {
+#else
+ if (event.type == SDL_MOUSEBUTTONDOWN) {
+ if (event.button.button == SDL_BUTTON_RIGHT) {
+#endif
return TRUE;
}
}
@@ -2631,8 +2643,13 @@
else if (display_type == FULLSCREEN) {
gm_mw_init_fullscreen_video_window (main_window);
- if (gm_mw_poll_fullscreen_video_window (main_window))
+ if (gm_mw_poll_fullscreen_video_window (main_window)) {
gm_mw_toggle_fullscreen (main_window);
+#ifdef WIN32
+ gm_mw_destroy_fullscreen_video_window (main_window);
+ return;
+#endif
+ }
}
#endif
else {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]