46
46
static int DirectFB_TranslateButton(DFBInputDeviceButtonIdentifier button);
49
DirectFB_SetContext(_THIS, SDL_WindowID id)
49
DirectFB_SetContext(_THIS, SDL_Window *window)
51
51
#if (DFB_VERSION_ATLEAST(1,0,0))
52
52
/* FIXME: does not work on 1.0/1.2 with radeon driver
178
178
case DWET_MOTION:
179
179
if (ClientXY(p, &evt->x, &evt->y)) {
180
SDL_Window *window = SDL_GetWindowFromID(p->sdl_id);
180
SDL_Window *window = p->window;
181
181
if (!devdata->use_linux_input) {
182
182
if (!(flags & SDL_WINDOW_INPUT_GRABBED))
183
183
SDL_SendMouseMotion(devdata->mouse_id[0], 0,
195
195
if (!(window->flags & SDL_WINDOW_MOUSE_FOCUS))
196
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_ENTER, 0,
196
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_ENTER, 0,
219
219
case DWET_POSITION:
220
220
if (ClientXY(p, &evt->x, &evt->y)) {
221
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_MOVED,
221
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_MOVED,
225
225
case DWET_POSITION_SIZE:
226
226
if (ClientXY(p, &evt->x, &evt->y)) {
227
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_MOVED,
227
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_MOVED,
230
230
/* fall throught */
235
235
(p->theme.top_size + p->theme.bottom_size +
236
236
p->theme.caption_size);
237
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_RESIZED,
237
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_RESIZED,
241
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_CLOSE, 0, 0);
241
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_CLOSE, 0, 0);
243
243
case DWET_GOTFOCUS:
244
DirectFB_SetContext(_this, p->sdl_id);
245
FocusAllKeyboards(_this, p->sdl_id);
246
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_FOCUS_GAINED,
244
DirectFB_SetContext(_this, p->window);
245
FocusAllKeyboards(_this, p->window);
246
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_FOCUS_GAINED,
249
249
case DWET_LOSTFOCUS:
250
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_FOCUS_LOST, 0, 0);
250
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_FOCUS_LOST, 0, 0);
251
251
FocusAllKeyboards(_this, 0);
254
254
/* SDL_DirectFB_ReshowCursor(_this, 0); */
255
FocusAllMice(_this, p->sdl_id);
255
FocusAllMice(_this, p->window);
256
256
// FIXME: when do we really enter ?
257
257
if (ClientXY(p, &evt->x, &evt->y))
258
258
MotionAllMice(_this, evt->x, evt->y);
259
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_ENTER, 0, 0);
259
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_ENTER, 0, 0);
262
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_LEAVE, 0, 0);
262
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_LEAVE, 0, 0);
263
263
FocusAllMice(_this, 0);
264
264
/* SDL_DirectFB_ReshowCursor(_this, 1); */
372
372
SDL_DFB_DEVICEDATA(_this);
373
373
DFB_WindowData *p;
374
374
DFBInputEvent ievt;
375
Sint32 /* SDL_WindowID */ grabbed_window;
375
SDL_Window *grabbed_window;
377
grabbed_window = NULL;
379
379
for (p = devdata->firstwin; p != NULL; p = p->next) {
380
380
DFBWindowEvent evt;
381
SDL_Window *w = SDL_GetWindowFromID(p->sdl_id);
381
SDL_Window *w = SDL_GetWindowFromID(p->window);
383
383
if (w->flags & SDL_WINDOW_INPUT_GRABBED) {
384
grabbed_window = p->sdl_id;
387
387
while (p->eventbuffer->GetEvent(p->eventbuffer,