From 29fa278c6a039adef517861376ee0beef5f550cf Mon Sep 17 00:00:00 2001
From: Dana Olson <dana@shineuponthee.com>
Date: Tue, 16 Sep 2014 03:22:29 -0400
Subject: [PATCH] re-added old method for openbox/lxde (possibly others)

---
 platform/x11/os_x11.cpp | 13 +++++++++++++
 platform/x11/os_x11.h   |  9 +++++++++
 2 files changed, 22 insertions(+)

diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp
index 4bb4816723d..708c167c541 100644
--- a/platform/x11/os_x11.cpp
+++ b/platform/x11/os_x11.cpp
@@ -170,6 +170,19 @@ void OS_X11::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
 
 	// borderless fullscreen window mode
 	if (current_videomode.fullscreen) {
+		// needed for lxde/openbox, possibly others
+		Hints hints;
+		Atom property;
+		hints.flags = 2;
+		hints.decorations = 0;
+		property = XInternAtom(x11_display, "_MOTIF_WM_HINTS", True);
+		XChangeProperty(x11_display, x11_window, property, property, 32, PropModeReplace, (unsigned char *)&hints, 5);
+		XMapRaised(x11_display, x11_window);
+		XWindowAttributes xwa;
+		XGetWindowAttributes(x11_display, DefaultRootWindow(x11_display), &xwa);
+		XMoveResizeWindow(x11_display, x11_window, 0, 0, xwa.width, xwa.height);
+
+		// code for netwm-compliants
 		XEvent xev;
 		Atom wm_state = XInternAtom(x11_display, "_NET_WM_STATE", False);
 		Atom fullscreen = XInternAtom(x11_display, "_NET_WM_STATE_FULLSCREEN", False);
diff --git a/platform/x11/os_x11.h b/platform/x11/os_x11.h
index dd7278e76da..fedf41ad0fe 100644
--- a/platform/x11/os_x11.h
+++ b/platform/x11/os_x11.h
@@ -49,6 +49,15 @@
 #include <X11/Xlib.h>
 #include <X11/Xcursor/Xcursor.h>
 
+// Hints for X11 fullscreen
+typedef struct {
+	unsigned long flags;
+	unsigned long functions;
+	unsigned long decorations;
+	long inputMode;
+	unsigned long status;
+} Hints;
+
 #undef CursorShape
 /**
 	@author Juan Linietsky <reduzio@gmail.com>