From 6ec72f6b717ef9e2d45ab014b04bcdb1c9bdb964 Mon Sep 17 00:00:00 2001 From: Thomas Bernard Date: Fri, 20 Jul 2018 12:06:45 +0200 Subject: [PATCH] check for X11_display when using SDL SDL can be using another video driver --- src/readline.c | 6 ++++++ src/sdlscreen.c | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/readline.c b/src/readline.c index 662ea8ae..5ba5a75c 100644 --- a/src/readline.c +++ b/src/readline.c @@ -437,6 +437,12 @@ bye: GFX2_Log(GFX2_ERROR, "Failed to get X11 display and window\n"); return NULL; } + if (X11_display == NULL) + { + char video_driver_name[32]; + GFX2_Log(GFX2_WARNING, "X11 display is NULL. X11 is needed for Copy/Paste. SDL video driver is currently %s\n", SDL_VideoDriverName(video_driver_name, sizeof(video_driver_name))); + return NULL; + } #endif selection = XInternAtom(X11_display, "CLIPBOARD", False); selection_owner = XGetSelectionOwner(X11_display, selection); diff --git a/src/sdlscreen.c b/src/sdlscreen.c index eb30c8fb..87ccd02d 100644 --- a/src/sdlscreen.c +++ b/src/sdlscreen.c @@ -588,6 +588,12 @@ void Allow_drag_and_drop(int flag) if (GFX2_Get_X11_Display_Window(&display, &window)) { + if (display == NULL) + { + if (flag) + GFX2_Log(GFX2_WARNING, "Drag&Drop with SDL needs the x11 video driver\n"); + return; + } XChangeProperty(display, window, XInternAtom(display, "XdndAware", False), XA_ATOM, 32, PropModeReplace, (unsigned char *)&version, 1);