X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fwindow.cpp;h=224195605225f16a33427cec2762e3f77f690cb1;hb=7c7c2cdce368b09b8b07bab860874440c7bc3c14;hp=f867faf6e58e3a775c08248f943eb17c1159b71e;hpb=2d1312772711709fc44cb1a39283329864c25100;p=libs%2Fgui.git diff --git a/source/window.cpp b/source/window.cpp index f867faf..2241956 100644 --- a/source/window.cpp +++ b/source/window.cpp @@ -48,6 +48,9 @@ Window::~Window() XDestroyWindow(display.get_display(), window); display.remove_window(this); + + if(options.fullscreen) + display.restore_mode(); } void Window::set_title(const string &title) @@ -88,6 +91,12 @@ void Window::init() XSetWMProtocols(dpy, window, &wm_delete_window, 1); + if(options.fullscreen) + { + display.set_mode(VideoMode(options.width, options.height)); + XWarpPointer(dpy, None, window, 0, 0, 0, 0, options.width/2, options.height/2); + } + display.add_window(this); display.check_error(); } @@ -128,6 +137,10 @@ void Window::event(const XEvent &ev) case EnterNotify: XSetInputFocus(display.get_display(), window, RevertToParent, CurrentTime); break; + case MapNotify: + if(options.fullscreen) + XGrabPointer(display.get_display(), window, true, None, GrabModeAsync, GrabModeAsync, window, None, CurrentTime); + break; default:; } }