diff --git a/libkwineffects/kwinglobals.h b/libkwineffects/kwinglobals.h
index dba432432f..aa2681cc76 100644
--- a/libkwineffects/kwinglobals.h
+++ b/libkwineffects/kwinglobals.h
@@ -30,6 +30,7 @@ along with this program. If not, see .
#include
#include
#include
+#include
#include
@@ -146,27 +147,47 @@ KWIN_EXPORT xcb_connection_t *connection()
}
inline
-KWIN_EXPORT Window rootWindow()
+KWIN_EXPORT xcb_window_t rootWindow()
{
return QX11Info::appRootWindow();
}
inline
-KWIN_EXPORT Window xTime()
+KWIN_EXPORT xcb_timestamp_t xTime()
{
return QX11Info::appTime();
}
+inline
+KWIN_EXPORT xcb_screen_t *defaultScreen()
+{
+ static xcb_screen_t *s_screen = NULL;
+ if (s_screen) {
+ return s_screen;
+ }
+ int screen = QX11Info::appScreen();
+ for (xcb_screen_iterator_t it = xcb_setup_roots_iterator(xcb_get_setup(connection()));
+ it.rem;
+ --screen, xcb_screen_next(&it)) {
+ if (screen == 0) {
+ s_screen = it.data;
+ }
+ }
+ return s_screen;
+}
+
inline
KWIN_EXPORT int displayWidth()
{
- return XDisplayWidth(display(), DefaultScreen(display()));
+ xcb_screen_t *screen = defaultScreen();
+ return screen ? screen->width_in_pixels : 0;
}
inline
KWIN_EXPORT int displayHeight()
{
- return XDisplayHeight(display(), DefaultScreen(display()));
+ xcb_screen_t *screen = defaultScreen();
+ return screen ? screen->height_in_pixels : 0;
}
/** @internal */