equal
deleted
inserted
replaced
148 modes[nmodes] = NULL; |
148 modes[nmodes] = NULL; |
149 } |
149 } |
150 return modes; |
150 return modes; |
151 } |
151 } |
152 |
152 |
153 static int (*orig_eventfilter) (const SDL_Event * event); |
153 static int (*orig_eventfilter) (SDL_Event * event); |
154 |
154 |
155 static int |
155 static int |
156 SDL_CompatEventFilter(const SDL_Event * event) |
156 SDL_CompatEventFilter(SDL_Event * event) |
157 { |
157 { |
158 SDL_Event fake; |
158 SDL_Event fake; |
159 |
159 |
160 switch (event->type) { |
160 switch (event->type) { |
161 case SDL_WINDOWEVENT: |
161 case SDL_WINDOWEVENT: |
201 fake.active.gain = 1; |
201 fake.active.gain = 1; |
202 fake.active.state = SDL_APPINPUTFOCUS; |
202 fake.active.state = SDL_APPINPUTFOCUS; |
203 SDL_PushEvent(&fake); |
203 SDL_PushEvent(&fake); |
204 break; |
204 break; |
205 } |
205 } |
|
206 case SDL_KEYDOWN: |
|
207 case SDL_KEYUP: |
|
208 { |
|
209 Uint32 unicode = 0; |
|
210 if (event->key.type == SDL_KEYDOWN && event->key.keysym.sym < 256) { |
|
211 int shifted = !!(event->key.keysym.mod & KMOD_SHIFT); |
|
212 int capslock = !!(event->key.keysym.mod & KMOD_CAPS); |
|
213 if ((shifted ^ capslock) != 0) { |
|
214 unicode = SDL_toupper(event->key.keysym.sym); |
|
215 } else { |
|
216 unicode = event->key.keysym.sym; |
|
217 } |
|
218 } |
|
219 if (unicode) { |
|
220 event->key.keysym.unicode = unicode; |
|
221 } |
|
222 break; |
|
223 } |
206 } |
224 } |
207 if (orig_eventfilter) { |
225 if (orig_eventfilter) { |
208 return orig_eventfilter(event); |
226 return orig_eventfilter(event); |
209 } else { |
227 } else { |
210 return 1; |
228 return 1; |
226 } |
244 } |
227 |
245 |
228 SDL_Surface * |
246 SDL_Surface * |
229 SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags) |
247 SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags) |
230 { |
248 { |
231 int (*filter) (const SDL_Event * event); |
249 int (*filter) (SDL_Event * event); |
232 const SDL_DisplayMode *desktop_mode; |
250 const SDL_DisplayMode *desktop_mode; |
233 SDL_DisplayMode mode; |
251 SDL_DisplayMode mode; |
234 int i; |
252 int i; |
235 Uint32 window_flags; |
253 Uint32 window_flags; |
236 Uint32 desktop_format; |
254 Uint32 desktop_format; |