- if ((SDL_GetModState() & (KMOD_LSHIFT | KMOD_LCTRL)) ==
- (KMOD_LSHIFT | KMOD_LCTRL)) {
- /* exit/enter grab if pressing Ctrl-Shift */
- if (!gui_grab)
- sdl_grab_start();
- else
- sdl_grab_end();
+ mod_state = (SDL_GetModState() & (KMOD_LSHIFT | KMOD_LCTRL)) ==
+ (KMOD_LSHIFT | KMOD_LCTRL);
+ gui_key_modifier_pressed = mod_state;
+ if (gui_key_modifier_pressed &&
+ ev->key.keysym.sym == SDLK_f) {
+ gui_keysym = ev->key.keysym.sym;
+ }
+ } else if (ev->type == SDL_KEYUP) {
+ mod_state = (SDL_GetModState() & (KMOD_LSHIFT | KMOD_LCTRL));
+ if (!mod_state) {
+ if (gui_key_modifier_pressed) {
+ switch(gui_keysym) {
+ case SDLK_f:
+ toggle_full_screen(ds);
+ break;
+ case 0:
+ /* exit/enter grab if pressing Ctrl-Shift */
+ if (!gui_grab)
+ sdl_grab_start();
+ else
+ sdl_grab_end();
+ break;
+ }
+ gui_key_modifier_pressed = 0;
+ gui_keysym = 0;
+ }