tangled
alpha
login
or
join now
keii.dev
/
SDL
0
fork
atom
Simple Directmedia Layer
0
fork
atom
overview
issues
pulls
pipelines
Fixed crashes when a window has NULL driverdata
Sam Lantinga
2 years ago
43a59ffe
69ee186a
+12
-4
2 changed files
expand all
collapse all
unified
split
src
video
x11
SDL_x11window.c
test
gamepad_battery.h
+12
-4
src/video/x11/SDL_x11window.c
reviewed
···
1387
1387
{
1388
1388
SDL_WindowData *data = window->driverdata;
1389
1389
SDL_DisplayData *displaydata = SDL_GetDisplayDriverDataForWindow(window);
1390
1390
+
int screen = (displaydata ? displaydata->screen : 0);
1390
1391
Display *display = data->videodata->display;
1391
1392
XEvent event;
1392
1393
1393
1394
if (X11_IsWindowMapped(_this, window)) {
1394
1394
-
X11_XWithdrawWindow(display, data->xwindow, displaydata->screen);
1395
1395
+
X11_XWithdrawWindow(display, data->xwindow, screen);
1395
1396
/* Blocking wait for "UnmapNotify" event */
1396
1397
if (!(window->flags & SDL_WINDOW_EXTERNAL)) {
1397
1398
X11_XIfEvent(display, &event, &isUnmapNotify, (XPointer)&data->xwindow);
···
1417
1418
X11_PumpEvents(_this);
1418
1419
}
1419
1420
1420
1420
-
static void X11_SetWindowActive(SDL_VideoDevice *_this, SDL_Window *window)
1421
1421
+
static int X11_SetWindowActive(SDL_VideoDevice *_this, SDL_Window *window)
1421
1422
{
1423
1423
+
CHECK_WINDOW_DATA(window);
1424
1424
+
1422
1425
SDL_WindowData *data = window->driverdata;
1423
1426
SDL_DisplayData *displaydata = SDL_GetDisplayDriverDataForWindow(window);
1424
1427
Display *display = data->videodata->display;
···
1443
1446
1444
1447
X11_XFlush(display);
1445
1448
}
1449
1449
+
return 0;
1446
1450
}
1447
1451
1448
1452
void X11_RaiseWindow(SDL_VideoDevice *_this, SDL_Window *window)
···
1458
1462
X11_XFlush(display);
1459
1463
}
1460
1464
1461
1461
-
static void X11_SetWindowMaximized(SDL_VideoDevice *_this, SDL_Window *window, SDL_bool maximized)
1465
1465
+
static int X11_SetWindowMaximized(SDL_VideoDevice *_this, SDL_Window *window, SDL_bool maximized)
1462
1466
{
1467
1467
+
CHECK_WINDOW_DATA(window);
1468
1468
+
1463
1469
SDL_WindowData *data = window->driverdata;
1464
1470
SDL_DisplayData *displaydata = SDL_GetDisplayDriverDataForWindow(window);
1465
1471
Display *display = data->videodata->display;
···
1472
1478
and this is functional behavior, so don't remove that state
1473
1479
now, we'll take care of it when we leave fullscreen mode.
1474
1480
*/
1475
1475
-
return;
1481
1481
+
return 0;
1476
1482
}
1477
1483
1478
1484
if (X11_IsWindowMapped(_this, window)) {
···
1513
1519
X11_SetNetWMState(_this, data->xwindow, window->flags);
1514
1520
}
1515
1521
X11_XFlush(display);
1522
1522
+
1523
1523
+
return 0;
1516
1524
}
1517
1525
1518
1526
void X11_MaximizeWindow(SDL_VideoDevice *_this, SDL_Window *window)
test/gamepad_battery.h
reviewed