X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.c;h=264a3366832f24750ff3de0a2a9d3527ed2b9377;hb=342de2ef2eff4f6936541b70d1eabf01f315fa47;hp=14d4f1c089311632e9a449366b22e218b98a62e8;hpb=8cea50fbd1b74a2bc164a79cbd26bdbb3abd6689;p=rocksndiamonds.git diff --git a/src/libgame/system.c b/src/libgame/system.c index 14d4f1c0..264a3366 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -72,7 +72,7 @@ void InitProgramInfo(char *argv0, char *userdata_subdir, char *userdata_subdir_unix, char *program_title, char *window_title, char *icon_title, char *x11_icon_filename, char *x11_iconmask_filename, - char *msdos_cursor_filename, + char *sdl_icon_filename, char *msdos_cursor_filename, char *cookie_prefix, char *filename_prefix, int program_version) { @@ -89,6 +89,7 @@ void InitProgramInfo(char *argv0, program.x11_icon_filename = x11_icon_filename; program.x11_iconmask_filename = x11_iconmask_filename; + program.sdl_icon_filename = sdl_icon_filename; program.msdos_cursor_filename = msdos_cursor_filename; program.cookie_prefix = cookie_prefix; @@ -326,9 +327,11 @@ void InitVideoBuffer(DrawBuffer **backbuffer, DrawWindow **window, video.width = width; video.height = height; video.depth = GetRealDepth(depth); + video.fullscreen_available = FULLSCREEN_STATUS; video.fullscreen_enabled = FALSE; video.fullscreen_modes = NULL; + video.fullscreen_mode_current = NULL; #if defined(TARGET_SDL) SDLInitVideoBuffer(backbuffer, window, fullscreen); @@ -455,13 +458,15 @@ void BlitBitmap(Bitmap *src_bitmap, Bitmap *dst_bitmap, dst_x, dst_y, BLIT_OPAQUE); } -void FadeScreen(Bitmap *bitmap_cross, int fade_mode, int fade_delay, - int post_delay) +void FadeRectangle(Bitmap *bitmap_cross, int x, int y, int width, int height, + int fade_mode, int fade_delay, int post_delay) { #if defined(TARGET_SDL) - SDLFadeScreen(bitmap_cross, fade_mode, fade_delay, post_delay); + SDLFadeRectangle(bitmap_cross, x, y, width, height, + fade_mode, fade_delay, post_delay); #else - X11FadeScreen(bitmap_cross, fade_mode, fade_delay, post_delay); + X11FadeRectangle(bitmap_cross, x, y, width, height, + fade_mode, fade_delay, post_delay); #endif } @@ -1228,7 +1233,6 @@ KeyMod HandleKeyModState(Key key, int key_status) { static KeyMod current_modifiers = KMOD_None; -#if !defined(TARGET_SDL) if (key != KSYM_UNDEFINED) /* new key => check for modifier key change */ { KeyMod new_modifier = KMOD_None; @@ -1268,7 +1272,6 @@ KeyMod HandleKeyModState(Key key, int key_status) else current_modifiers &= ~new_modifier; } -#endif return current_modifiers; } @@ -1282,6 +1285,17 @@ KeyMod GetKeyModState() #endif } +KeyMod GetKeyModStateFromEvents() +{ + /* always use key modifier state as tracked from key events (this is needed + if the modifier key event was injected into the event queue, but the key + was not really pressed on keyboard -- SDL_GetModState() seems to directly + query the keys as held pressed on the keyboard) -- this case is currently + only used to filter out clipboard insert events from "True X-Mouse" tool */ + + return HandleKeyModState(KSYM_UNDEFINED, 0); +} + boolean CheckCloseWindowEvent(ClientMessageEvent *event) { if (event->type != EVENT_CLIENTMESSAGE)