summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
Diffstat (limited to 'platform')
-rw-r--r--platform/x11/os_x11.cpp12
-rw-r--r--platform/x11/os_x11.h1
2 files changed, 13 insertions, 0 deletions
diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp
index e20d0731e1..01d62f333d 100644
--- a/platform/x11/os_x11.cpp
+++ b/platform/x11/os_x11.cpp
@@ -561,7 +561,19 @@ int OS_X11::get_screen_count() const {
return XScreenCount(x11_display);
}
+Point2 OS_X11::get_screen_position(int p_screen) const {
+ if( p_screen >= XScreenCount(x11_display) )
+ return Point2i(0,0);
+
+ Window root = XRootWindow(x11_display, p_screen);
+ XWindowAttributes xwa;
+ XGetWindowAttributes(x11_display, root, &xwa);
+ return Point2i(xwa.x, xwa.y);
+}
+
Size2 OS_X11::get_screen_size(int p_screen) const {
+ if( p_screen >= XScreenCount(x11_display) )
+ return Size2i(0,0);
Window root = XRootWindow(x11_display, p_screen);
XWindowAttributes xwa;
XGetWindowAttributes(x11_display, root, &xwa);
diff --git a/platform/x11/os_x11.h b/platform/x11/os_x11.h
index 4aca996fdc..ca35bf2c0a 100644
--- a/platform/x11/os_x11.h
+++ b/platform/x11/os_x11.h
@@ -221,6 +221,7 @@ public:
#ifdef EXPERIMENTAL_WM_API
virtual int get_screen_count() const;
+ virtual Point2 get_screen_position(int p_screen=0) const;
virtual Size2 get_screen_size(int p_screen=0) const;
virtual Point2 get_window_position() const;
virtual void set_window_position(const Point2& p_position);