1234567891011121314151617181920212223 |
- #include "x.hpp"
-
- bool X11::hasCompositor() {
- std::stringstream prop_name;
- prop_name << "_NET_WM_CM_S" << XScreenNumberOfScreen( screen );
- Atom prop_atom = XInternAtom(display, prop_name.str().c_str(), False);
- return XGetSelectionOwner(display, prop_atom) != None;
- }
-
- X11::X11( std::string displayName ) {
- // Initialize display
- display = XOpenDisplay( displayName.c_str() );
- if ( !display ) {
- throw new std::runtime_error(std::string("Error: Failed to open X display: ") + displayName );
- }
- screen = ScreenOfDisplay( display, DefaultScreen( display ) );
- visual = DefaultVisual( display, XScreenNumberOfScreen( screen ) );
- root = DefaultRootWindow( display );
- }
-
- X11::~X11() {
- XCloseDisplay( display );
- }
|