diff --git a/platform/x11/detect.py b/platform/x11/detect.py index 2be8b01dc35..356de7b2bc9 100644 --- a/platform/x11/detect.py +++ b/platform/x11/detect.py @@ -62,7 +62,6 @@ def get_opts(): ('use_leak_sanitizer','Use llvm compiler sanitize memory leaks','no'), ('pulseaudio','Detect & Use pulseaudio','yes'), ('udev','Use udev for gamepad connection callbacks','no'), - ('new_wm_api', 'Use experimental window management API','no'), ('debug_release', 'Add debug symbols to release version','no'), ] @@ -204,10 +203,6 @@ def configure(env): env.Append( BUILDERS = { 'GLSL120GLES' : env.Builder(action = methods.build_gles2_headers, suffix = 'glsl.h',src_suffix = '.glsl') } ) #env.Append( BUILDERS = { 'HLSL9' : env.Builder(action = methods.build_hlsl_dx9_headers, suffix = 'hlsl.h',src_suffix = '.hlsl') } ) - if(env["new_wm_api"]=="yes"): - env.Append(CPPFLAGS=['-DNEW_WM_API']) - env.ParseConfig('pkg-config xinerama --cflags --libs') - if (env["use_static_cpp"]=="yes"): env.Append(LINKFLAGS=['-static-libstdc++']) diff --git a/platform/x11/joystick_linux.cpp b/platform/x11/joystick_linux.cpp index 4a6a4f3a52f..3b854a8d465 100644 --- a/platform/x11/joystick_linux.cpp +++ b/platform/x11/joystick_linux.cpp @@ -259,7 +259,7 @@ void joystick_linux::close_joystick(int p_id) { attached_devices.remove(attached_devices.find(joy.devpath)); input->joy_connection_changed(p_id, false, ""); }; -}; +} static String _hex_str(uint8_t p_byte) { @@ -271,7 +271,7 @@ static String _hex_str(uint8_t p_byte) { ret[1] = dict[p_byte & 0xF]; return ret; -}; +} void joystick_linux::setup_joystick_properties(int p_id) { diff --git a/platform/x11/key_mapping_x11.cpp b/platform/x11/key_mapping_x11.cpp index 190d6925dd8..6443d14897b 100644 --- a/platform/x11/key_mapping_x11.cpp +++ b/platform/x11/key_mapping_x11.cpp @@ -197,6 +197,7 @@ unsigned int KeyMappingX11::get_keycode(KeySym p_keysym) { return 0; } + KeySym KeyMappingX11::get_keysym(unsigned int p_code) { // kinda bruteforce.. could optimize. diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index 20fae72abd4..45a52b82444 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -216,8 +216,6 @@ void OS_X11::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi visual_server =memnew(VisualServerWrapMT(visual_server,get_render_thread_mode()==RENDER_SEPARATE_THREAD)); } -#if 1 - // NEW_WM_API // borderless fullscreen window mode if (current_videomode.fullscreen) { // needed for lxde/openbox, possibly others @@ -267,22 +265,6 @@ void OS_X11::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi XSetWMNormalHints(x11_display, x11_window, xsh); XFree(xsh); } -#else - capture_idle = 0; - minimized = false; - maximized = false; - - if (current_videomode.fullscreen) { - //set_wm_border(false); - set_wm_fullscreen(true); - } - if (!current_videomode.resizable) { - int screen = get_current_screen(); - Size2i screen_size = get_screen_size(screen); - set_window_size(screen_size); - set_window_resizable(false); - } -#endif AudioDriverManagerSW::get_driver(p_audio_driver)->set_singleton(); @@ -440,7 +422,6 @@ void OS_X11::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi XFreeGC(x11_display, gc); - if (cursor == None) { ERR_PRINT("FAILED CREATING CURSOR"); @@ -579,7 +560,7 @@ void OS_X11::set_mouse_mode(MouseMode p_mode) { ButtonPressMask | ButtonReleaseMask | PointerMotionMask, GrabModeAsync, GrabModeAsync, x11_window, None, CurrentTime) != - GrabSuccess) { + GrabSuccess) { ERR_PRINT("NO GRAB"); } @@ -643,22 +624,6 @@ OS::VideoMode OS_X11::get_video_mode(int p_screen) const { void OS_X11::get_fullscreen_mode_list(List *p_list,int p_screen) const { } -//#ifdef NEW_WM_API -#if 0 -// Just now not needed. Can be used for a possible OS.set_border(bool) method -void OS_X11::set_wm_border(bool p_enabled) { - // needed for lxde/openbox, possibly others - Hints hints; - Atom property; - hints.flags = 2; - hints.decorations = p_enabled ? 1L : 0L; - 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); - //XMoveResizeWindow(x11_display, x11_window, 0, 0, 800, 800); -} -#endif - void OS_X11::set_wm_fullscreen(bool p_enabled) { // Using EWMH -- Extened Window Manager Hints XEvent xev; @@ -811,54 +776,7 @@ Point2 OS_X11::get_window_position() const { } void OS_X11::set_window_position(const Point2& p_position) { - // Using EWMH -- Extended Window Manager Hints - // to get the size of the decoration -#if 0 - Atom property = XInternAtom(x11_display,"_NET_FRAME_EXTENTS", True); - Atom type; - int format; - unsigned long len; - unsigned long remaining; - unsigned char *data = NULL; - int result; - - result = XGetWindowProperty( - x11_display, - x11_window, - property, - 0, - 32, - False, - AnyPropertyType, - &type, - &format, - &len, - &remaining, - &data - ); - - long left = 0L; - long top = 0L; - - if( result == Success ) { - long *extends = (long *) data; - - left = extends[0]; - top = extends[2]; - - XFree(data); - } - - int screen = get_current_screen(); - Point2i screen_position = get_screen_position(screen); - - left -= screen_position.x; - top -= screen_position.y; - - XMoveWindow(x11_display,x11_window,p_position.x - left,p_position.y - top); -#else XMoveWindow(x11_display,x11_window,p_position.x,p_position.y); -#endif } Size2 OS_X11::get_window_size() const { @@ -902,20 +820,19 @@ bool OS_X11::is_window_resizable() const { } void OS_X11::set_window_minimized(bool p_enabled) { - // Using ICCCM -- Inter-Client Communication Conventions Manual - XEvent xev; - Atom wm_change = XInternAtom(x11_display, "WM_CHANGE_STATE", False); + // Using ICCCM -- Inter-Client Communication Conventions Manual + XEvent xev; + Atom wm_change = XInternAtom(x11_display, "WM_CHANGE_STATE", False); - memset(&xev, 0, sizeof(xev)); - xev.type = ClientMessage; - xev.xclient.window = x11_window; - xev.xclient.message_type = wm_change; - xev.xclient.format = 32; - xev.xclient.data.l[0] = p_enabled ? WM_IconicState : WM_NormalState; + memset(&xev, 0, sizeof(xev)); + xev.type = ClientMessage; + xev.xclient.window = x11_window; + xev.xclient.message_type = wm_change; + xev.xclient.format = 32; + xev.xclient.data.l[0] = p_enabled ? WM_IconicState : WM_NormalState; - XSendEvent(x11_display, DefaultRootWindow(x11_display), False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); + XSendEvent(x11_display, DefaultRootWindow(x11_display), False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); - //XEvent xev; Atom wm_state = XInternAtom(x11_display, "_NET_WM_STATE", False); Atom wm_hidden = XInternAtom(x11_display, "_NET_WM_STATE_HIDDEN", False); @@ -979,47 +896,33 @@ void OS_X11::set_window_maximized(bool p_enabled) { xev.xclient.data.l[2] = wm_max_vert; XSendEvent(x11_display, DefaultRootWindow(x11_display), False, SubstructureRedirectMask | SubstructureNotifyMask, &xev); -/* sorry this does not fix it, fails on multi monitor - XWindowAttributes xwa; - XGetWindowAttributes(x11_display,DefaultRootWindow(x11_display),&xwa); - current_videomode.width = xwa.width; - current_videomode.height = xwa.height; -//*/ - -// current_videomode.width = wm_max_horz; -// current_videomode.height = wm_max_vert; - - //Size2 ss = get_screen_size(get_current_screen()); - //current_videomode.width=ss.width; - //current_videomode.height=ss.height; - maximized = p_enabled; } bool OS_X11::is_window_maximized() const { // Using EWMH -- Extended Window Manager Hints - Atom property = XInternAtom(x11_display,"_NET_WM_STATE",False ); - Atom type; - int format; - unsigned long len; - unsigned long remaining; - unsigned char *data = NULL; + Atom property = XInternAtom(x11_display,"_NET_WM_STATE",False ); + Atom type; + int format; + unsigned long len; + unsigned long remaining; + unsigned char *data = NULL; - int result = XGetWindowProperty( - x11_display, - x11_window, - property, - 0, - 1024, - False, - XA_ATOM, - &type, - &format, - &len, - &remaining, - &data - ); + int result = XGetWindowProperty( + x11_display, + x11_window, + property, + 0, + 1024, + False, + XA_ATOM, + &type, + &format, + &len, + &remaining, + &data + ); if(result == Success) { Atom *atoms = (Atom*) data; @@ -1363,11 +1266,6 @@ void OS_X11::process_xevents() { } break; case FocusIn: minimized = false; -#ifdef NEW_WM_API - if(current_videomode.fullscreen) { - set_wm_fullscreen(true); - } -#endif main_loop->notification(MainLoop::NOTIFICATION_WM_FOCUS_IN); if (mouse_mode==MOUSE_MODE_CAPTURED) { XGrabPointer(x11_display, x11_window, True, @@ -1378,12 +1276,6 @@ void OS_X11::process_xevents() { break; case FocusOut: -#ifdef NEW_WM_API - if(current_videomode.fullscreen) { - set_wm_fullscreen(false); - set_window_minimized(true); - } -#endif main_loop->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT); if (mouse_mode==MOUSE_MODE_CAPTURED) { //dear X11, I try, I really try, but you never work, you do whathever you want. @@ -1527,13 +1419,6 @@ void OS_X11::process_xevents() { Point2i rel = pos - last_mouse_pos; -#ifdef NEW_WM_API - if (mouse_mode==MOUSE_MODE_CAPTURED) { - pos.x = current_videomode.width / 2; - pos.y = current_videomode.height / 2; - } -#endif - InputEvent motion_event; motion_event.ID=++event_id; motion_event.type=InputEvent::MOUSE_MOTION; @@ -1816,7 +1701,7 @@ static String _get_clipboard(Atom p_source, Window x11_window, ::Display* x11_di return ret; -}; +} String OS_X11::get_clipboard() const { @@ -1828,7 +1713,7 @@ String OS_X11::get_clipboard() const { }; return ret; -}; +} String OS_X11::get_name() { @@ -2075,4 +1960,4 @@ OS_X11::OS_X11() { minimized = false; xim_style=0L; mouse_mode=MOUSE_MODE_VISIBLE; -}; +}