Revert "generic: port some functionality to XCB"

This commit is contained in:
Ivailo Monev 2016-08-12 00:52:43 +00:00
parent 1a7f235eba
commit 293c931e22
7 changed files with 93 additions and 242 deletions

View file

@ -40,10 +40,6 @@ if(UNIX AND Q_WS_X11)
if(NOT X11_SM_FOUND)
message(FATAL_ERROR "\nThe X11 Session Management (SM) development package could not be found.\nPlease install libSM.\n")
endif(NOT X11_SM_FOUND)
find_package(XCB)
if(NOT XCB_FOUND)
message(FATAL_ERROR "\nThe XCB development package could not be found.\nPlease install libxcb.\n")
endif(NOT XCB_FOUND)
endif(UNIX AND Q_WS_X11)
# required features

View file

@ -1,128 +0,0 @@
# Try to find XCB on a Unix system
#
# This will define:
#
# XCB_FOUND - True if xcb is available
# XCB_LIBRARIES - Link these to use xcb
# XCB_INCLUDE_DIR - Include directory for xcb
# XCB_DEFINITIONS - Compiler flags for using xcb
#
# In addition the following more fine grained variables will be defined:
#
# XCB_XCB_FOUND XCB_XCB_INCLUDE_DIR XCB_XCB_LIBRARIES
# XCB_COMPOSITE_FOUND XCB_COMPOSITE_INCLUDE_DIR XCB_COMPOSITE_LIBRARIES
# XCB_DAMAGE_FOUND XCB_DAMAGE_INCLUDE_DIR XCB_DAMAGE_LIBRARIES
# XCB_XFIXES_FOUND XCB_XFIXES_INCLUDE_DIR XCB_XFIXES_LIBRARIES
# XCB_RENDER_FOUND XCB_RENDER_INCLUDE_DIR XCB_RENDER_LIBRARIES
# XCB_RANDR_FOUND XCB_RANDR_INCLUDE_DIR XCB_RANDR_LIBRARIES
# XCB_SHAPE_FOUND XCB_SHAPE_INCLUDE_DIR XCB_SHAPE_LIBRARIES
# XCB_SHM_FOUND XCB_SHM_INCLUDE_DIR XCB_SHM_LIBRARIES
# XCB_SYNC_FOUND XCB_SYNC_INCLUDE_DIR XCB_SYNC_LIBRARIES
# XCB_IMAGE_FOUND XCB_IMAGE_INCLUDE_DIR XCB_IMAGE_LIBRARIES
# XCB_RENDERUTIL_FOUND XCB_RENDERUTIL_INCLUDE_DIR XCB_RENDERUTIL_LIBRARIES
# XCB_KEYSYMS_FOUND XCB_KEYSYMS_INCLUDE_DIR XCB_KEYSYMS_LIBRARIES
# XCB_XTEST_FOUND XCB_XTEST_INCLUDE_DIR XCB_XTEST_LIBRARIES
# XCB_RECORD_FOUND XCB_RECORD_INCLUDE_DIR XCB_RECORD_LIBRARIES
#
# Copyright (c) 2012 Fredrik Höglund <fredrik@kde.org>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
IF (NOT WIN32)
IF (XCB_INCLUDE_DIR AND XCB_LIBRARIES)
# In the cache already
SET(XCB_FIND_QUIETLY TRUE)
ENDIF (XCB_INCLUDE_DIR AND XCB_LIBRARIES)
# Use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
FIND_PACKAGE(PkgConfig)
PKG_CHECK_MODULES(PKG_XCB QUIET xcb xcb-util xcb-composite xcb-xfixes xcb-damage xcb-render xcb-randr
xcb-shape xcb-dri2 xcb-glx xcb-shm xcb-xv xcb-sync xcb-record
xcb-xtest xcb-icccm xcb-ewmh xcb-image xcb-renderutil xcb-keysyms)
SET(XCB_DEFINITIONS ${PKG_XCB_CFLAGS})
FIND_PATH(XCB_XCB_INCLUDE_DIR NAMES xcb/xcb.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_PATH(XCB_COMPOSITE_INCLUDE_DIR NAMES xcb/composite.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_PATH(XCB_XFIXES_INCLUDE_DIR NAMES xcb/xfixes.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_PATH(XCB_DAMAGE_INCLUDE_DIR NAMES xcb/damage.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_PATH(XCB_RENDER_INCLUDE_DIR NAMES xcb/render.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_PATH(XCB_RANDR_INCLUDE_DIR NAMES xcb/randr.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_PATH(XCB_SHAPE_INCLUDE_DIR NAMES xcb/shape.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_PATH(XCB_SHM_INCLUDE_DIR NAMES xcb/shm.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_PATH(XCB_SYNC_INCLUDE_DIR NAMES xcb/sync.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_PATH(XCB_IMAGE_INCLUDE_DIR NAMES xcb/xcb_image.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_PATH(XCB_RENDERUTIL_INCLUDE_DIR NAMES xcb/xcb_renderutil.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_PATH(XCB_KEYSYMS_INCLUDE_DIR NAMES xcb/xcb_keysyms.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_PATH(XCB_XTEST_INCLUDE_DIR NAMES xcb/xtest.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_PATH(XCB_RECORD_INCLUDE_DIR NAMES xcb/record.h HINTS ${PKG_XCB_INCLUDE_DIRS})
FIND_LIBRARY(XCB_XCB_LIBRARIES NAMES xcb HINTS ${PKG_XCB_LIBRARY_DIRS})
FIND_LIBRARY(XCB_COMPOSITE_LIBRARIES NAMES xcb-composite HINTS ${PKG_XCB_LIBRARY_DIRS})
FIND_LIBRARY(XCB_DAMAGE_LIBRARIES NAMES xcb-damage HINTS ${PKG_XCB_LIBRARY_DIRS})
FIND_LIBRARY(XCB_XFIXES_LIBRARIES NAMES xcb-xfixes HINTS ${PKG_XCB_LIBRARY_DIRS})
FIND_LIBRARY(XCB_RENDER_LIBRARIES NAMES xcb-render HINTS ${PKG_XCB_LIBRARY_DIRS})
FIND_LIBRARY(XCB_RANDR_LIBRARIES NAMES xcb-randr HINTS ${PKG_XCB_LIBRARY_DIRS})
FIND_LIBRARY(XCB_SHAPE_LIBRARIES NAMES xcb-shape HINTS ${PKG_XCB_LIBRARY_DIRS})
FIND_LIBRARY(XCB_SHM_LIBRARIES NAMES xcb-shm HINTS ${PKG_XCB_LIBRARY_DIRS})
FIND_LIBRARY(XCB_SYNC_LIBRARIES NAMES xcb-sync HINTS ${PKG_XCB_LIBRARY_DIRS})
FIND_LIBRARY(XCB_IMAGE_LIBRARIES NAMES xcb-image HINTS ${PKG_XCB_LIBRARY_DIRS})
FIND_LIBRARY(XCB_RENDERUTIL_LIBRARIES NAMES xcb-render-util HINTS ${PKG_XCB_LIBRARY_DIRS})
FIND_LIBRARY(XCB_KEYSYMS_LIBRARIES NAMES xcb-keysyms HINTS ${PKG_XCB_LIBRARY_DIRS})
FIND_LIBRARY(XCB_XTEST_LIBRARIES NAMES xcb-xtest HINTS ${PKG_XCB_LIBRARY_DIRS})
FIND_LIBRARY(XCB_RECORD_LIBRARIES NAMES xcb-record HINTS ${PKG_XCB_LIBRARY_DIRS})
set(XCB_INCLUDE_DIR ${XCB_XCB_INCLUDE_DIR} ${XCB_COMPOSITE_INCLUDE_DIR} ${XCB_XFIXES_INCLUDE_DIR}
${XCB_DAMAGE_INCLUDE_DIR} ${XCB_RENDER_INCLUDE_DIR} ${XCB_RANDR_INCLUDE_DIR}
${XCB_SHAPE_INCLUDE_DIR} ${XCB_SHM_INCLUDE_DIR} ${XCB_SYNC_INCLUDE_DIR}
${XCB_IMAGE_INCLUDE_DIR} ${XCB_RENDERUTIL_INCLUDE_DIR} ${XCB_KEYSYMS_INCLUDE_DIR}
${XCB_XTEST_INCLUDE_DIR} ${XCB_RECORD_INCLUDE_DIR})
set(XCB_LIBRARIES ${XCB_XCB_LIBRARIES} ${XCB_COMPOSITE_LIBRARIES} ${XCB_XFIXES_LIBRARIES}
${XCB_DAMAGE_LIBRARIES} ${XCB_RENDER_LIBRARIES} ${XCB_RANDR_LIBRARIES}
${XCB_SHAPE_LIBRARIES} ${XCB_SHM_LIBRARIES} ${XCB_SYNC_LIBRARIES}
${XCB_IMAGE_LIBRARIES} ${XCB_RENDERUTIL_LIBRARIES} ${XCB_KEYSYMS_LIBRARIES}
${XCB_XTEST_LIBRARIES} ${XCB_RECORD_LIBRARIES})
list(REMOVE_DUPLICATES XCB_INCLUDE_DIR)
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_XCB DEFAULT_MSG XCB_XCB_LIBRARIES XCB_XCB_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_COMPOSITE DEFAULT_MSG XCB_COMPOSITE_LIBRARIES XCB_COMPOSITE_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_DAMAGE DEFAULT_MSG XCB_DAMAGE_LIBRARIES XCB_DAMAGE_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_XFIXES DEFAULT_MSG XCB_XFIXES_LIBRARIES XCB_XFIXES_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_RENDER DEFAULT_MSG XCB_RENDER_LIBRARIES XCB_RENDER_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_RANDR DEFAULT_MSG XCB_RANDR_LIBRARIES XCB_RANDR_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_SHAPE DEFAULT_MSG XCB_SHAPE_LIBRARIES XCB_SHAPE_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_SHM DEFAULT_MSG XCB_SHM_LIBRARIES XCB_SHM_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_SYNC DEFAULT_MSG XCB_SYNC_LIBRARIES XCB_SYNC_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_IMAGE DEFAULT_MSG XCB_IMAGE_LIBRARIES XCB_IMAGE_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_RENDERUTIL DEFAULT_MSG XCB_RENDERUTIL_LIBRARIES XCB_RENDERUTIL_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_KEYSYMS DEFAULT_MSG XCB_KEYSYMS_LIBRARIES XCB_KEYSYMS_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_XTEST DEFAULT_MSG XCB_XTEST_LIBRARIES XCB_XTEST_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB_RECORD DEFAULT_MSG XCB_RECORD_LIBRARIES XCB_RECORD_INCLUDE_DIR)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XCB DEFAULT_MSG XCB_LIBRARIES XCB_INCLUDE_DIR)
MARK_AS_ADVANCED(
XCB_INCLUDE_DIR XCB_LIBRARIES
XCB_XCB_INCLUDE_DIR XCB_XCB_LIBRARIES
XCB_COMPOSITE_INCLUDE_DIR XCB_COMPOSITE_LIBRARIES
XCB_DAMAGE_INCLUDE_DIR XCB_DAMAGE_LIBRARIES
XCB_XFIXES_INCLUDE_DIR XCB_XFIXES_LIBRARIES
XCB_RENDER_INCLUDE_DIR XCB_RENDER_LIBRARIES
XCB_RANDR_INCLUDE_DIR XCB_RANDR_LIBRARIES
XCB_SHAPE_INCLUDE_DIR XCB_SHAPE_LIBRARIES
XCB_SHM_INCLUDE_DIR XCB_SHM_LIBRARIES
XCB_SYNC_INCLUDE_DIR XCB_SYNC_LIBRARIES
XCB_IMAGE_INCLUDE_DIR XCB_IMAGE_LIBRARIES
XCB_RENDERUTIL_INCLUDE_DIR XCB_RENDERUTIL_LIBRARIES
XCB_KEYSYMS_INCLUDE_DIR XCB_KEYSYMS_LIBRARIES
XCB_XTEST_INCLUDE_DIR XCB_XTEST_LIBRARIES
XCB_RECORD_INCLUDE_DIR XCB_RECORD_LIBRARIES
)
ENDIF (NOT WIN32)

View file

@ -318,7 +318,6 @@ if (Q_WS_X11 AND X11_Xkb_FOUND)
include_directories (
${X11_Xkb_INCLUDE_PATH}
${X11_Xlib_INCLUDE_PATH}
${XCB_INCLUDES}
)
set(kdeui_LIB_SRCS
${kdeui_LIB_SRCS}
@ -403,10 +402,6 @@ if(X11_Xrender_FOUND)
target_link_libraries(kdeui PRIVATE ${X11_Xrender_LIB})
endif()
if(XCB_FOUND)
target_link_libraries(kdeui PRIVATE ${XCB_LIBRARIES})
endif()
set_target_properties(kdeui PROPERTIES
VERSION ${GENERIC_LIB_VERSION}
SOVERSION ${GENERIC_LIB_SOVERSION}

View file

@ -106,8 +106,8 @@ public:
int xfixesEventBase;
bool mapViewport();
void addClient(xcb_window_t);
void removeClient(xcb_window_t);
void addClient(Window);
void removeClient(Window);
bool x11Event( XEvent * ev );
@ -264,7 +264,7 @@ void KWindowSystemPrivate::updateStackingOrder()
stackingOrder.append( clientListStacking()[i] );
}
void KWindowSystemPrivate::addClient(xcb_window_t w)
void KWindowSystemPrivate::addClient(Window w)
{
KWindowSystem* s_q = KWindowSystem::self();
@ -289,7 +289,7 @@ void KWindowSystemPrivate::addClient(xcb_window_t w)
emit s_q->strutChanged();
}
void KWindowSystemPrivate::removeClient(xcb_window_t w)
void KWindowSystemPrivate::removeClient(Window w)
{
KWindowSystem* s_q = KWindowSystem::self();

View file

@ -177,10 +177,10 @@ static char *nstrndup(const char *s1, int l) {
}
static xcb_window_t *nwindup(const xcb_window_t *w1, int n) {
if (! w1 || n == 0) return (xcb_window_t *) 0;
static Window *nwindup(const Window *w1, int n) {
if (! w1 || n == 0) return (Window *) 0;
xcb_window_t *w2 = new xcb_window_t[n];
Window *w2 = new Window[n];
while (n--) w2[n] = w1[n];
return w2;
}
@ -242,9 +242,9 @@ static void refdec_nwi(NETWinInfoPrivate *p) {
static int wcmp(const void *a, const void *b) {
if (*((xcb_window_t *) a) < *((xcb_window_t *) b))
if (*((Window *) a) < *((Window *) b))
return -1;
else if (*((xcb_window_t *) a) > *((xcb_window_t *) b))
else if (*((Window *) a) > *((Window *) b))
return 1;
else
return 0;
@ -463,7 +463,7 @@ static void create_netwm_atoms(Display *d) {
}
static void readIcon(Display* display, xcb_window_t window, Atom property, NETRArray<NETIcon>& icons, int& icon_count) {
static void readIcon(Display* display, Window window, Atom property, NETRArray<NETIcon>& icons, int& icon_count) {
#ifdef NETWMDEBUG
fprintf(stderr, "NET: readIcon\n");
@ -615,7 +615,7 @@ Z &NETRArray<Z>::operator[](int index) {
// Construct a new NETRootInfo object.
NETRootInfo::NETRootInfo(Display *display, xcb_window_t supportWindow, const char *wmName,
NETRootInfo::NETRootInfo(Display *display, Window supportWindow, const char *wmName,
const unsigned long properties[], int properties_size,
int screen, bool doActivate)
{
@ -640,7 +640,7 @@ NETRootInfo::NETRootInfo(Display *display, xcb_window_t supportWindow, const cha
p->supportwindow = supportWindow;
p->number_of_desktops = p->current_desktop = 0;
p->active = None;
p->clients = p->stacking = p->virtual_roots = (xcb_window_t *) 0;
p->clients = p->stacking = p->virtual_roots = (Window *) 0;
p->clients_count = p->stacking_count = p->virtual_roots_count = 0;
p->showing_desktop = false;
p->desktop_layout_orientation = OrientationHorizontal;
@ -695,7 +695,7 @@ NETRootInfo::NETRootInfo(Display *display, const unsigned long properties[],
p->supportwindow = None;
p->number_of_desktops = p->current_desktop = 0;
p->active = None;
p->clients = p->stacking = p->virtual_roots = (xcb_window_t *) 0;
p->clients = p->stacking = p->virtual_roots = (Window *) 0;
p->clients_count = p->stacking_count = p->virtual_roots_count = 0;
p->showing_desktop = false;
p->desktop_layout_orientation = OrientationHorizontal;
@ -759,7 +759,7 @@ NETRootInfo::NETRootInfo(Display *display, unsigned long properties, int screen,
p->supportwindow = None;
p->number_of_desktops = p->current_desktop = 0;
p->active = None;
p->clients = p->stacking = p->virtual_roots = (xcb_window_t *) 0;
p->clients = p->stacking = p->virtual_roots = (Window *) 0;
p->clients_count = p->stacking_count = p->virtual_roots_count = 0;
p->showing_desktop = false;
p->desktop_layout_orientation = OrientationHorizontal;
@ -843,7 +843,7 @@ void NETRootInfo::activate() {
}
void NETRootInfo::setClientList(const xcb_window_t *windows, unsigned int count) {
void NETRootInfo::setClientList(const Window *windows, unsigned int count) {
if (p->role != WindowManager) return;
p->clients_count = count;
@ -861,7 +861,7 @@ void NETRootInfo::setClientList(const xcb_window_t *windows, unsigned int count)
}
void NETRootInfo::setClientListStacking(const xcb_window_t *windows, unsigned int count) {
void NETRootInfo::setClientListStacking(const Window *windows, unsigned int count) {
if (p->role != WindowManager) return;
p->stacking_count = count;
@ -1517,12 +1517,12 @@ void NETRootInfo::updateSupportedProperties( Atom atom )
p->properties[ PROTOCOLS2 ] |= WM2KDEShadow;
}
void NETRootInfo::setActiveWindow(xcb_window_t window) {
void NETRootInfo::setActiveWindow(Window window) {
setActiveWindow( window, FromUnknown, QX11Info::appUserTime(), None );
}
void NETRootInfo::setActiveWindow(xcb_window_t window, NET::RequestSource src,
xcb_timestamp_t timestamp, xcb_window_t active_window ) {
void NETRootInfo::setActiveWindow(Window window, NET::RequestSource src,
Time timestamp, Window active_window ) {
#ifdef NETWMDEBUG
fprintf(stderr, "NETRootInfo::setActiveWindow(0x%lx) (%s)\n",
@ -1581,7 +1581,7 @@ void NETRootInfo::setWorkArea(int desktop, const NETRect &workarea) {
}
void NETRootInfo::setVirtualRoots(const xcb_window_t *windows, unsigned int count) {
void NETRootInfo::setVirtualRoots(const Window *windows, unsigned int count) {
if (p->role != WindowManager) return;
p->virtual_roots_count = count;
@ -1651,7 +1651,7 @@ bool NETRootInfo::showingDesktop() const {
}
void NETRootInfo::closeWindowRequest(xcb_window_t window) {
void NETRootInfo::closeWindowRequest(Window window) {
#ifdef NETWMDEBUG
fprintf(stderr, "NETRootInfo::closeWindowRequest: requesting close for 0x%lx\n",
@ -1675,7 +1675,7 @@ void NETRootInfo::closeWindowRequest(xcb_window_t window) {
}
void NETRootInfo::moveResizeRequest(xcb_window_t window, int x_root, int y_root,
void NETRootInfo::moveResizeRequest(Window window, int x_root, int y_root,
Direction direction)
{
@ -1700,7 +1700,7 @@ void NETRootInfo::moveResizeRequest(xcb_window_t window, int x_root, int y_root,
XSendEvent(p->display, p->root, False, netwm_sendevent_mask, &e);
}
void NETRootInfo::moveResizeWindowRequest(xcb_window_t window, int flags, int x, int y, int width, int height )
void NETRootInfo::moveResizeWindowRequest(Window window, int flags, int x, int y, int width, int height )
{
#ifdef NETWMDEBUG
@ -1724,7 +1724,7 @@ void NETRootInfo::moveResizeWindowRequest(xcb_window_t window, int flags, int x,
XSendEvent(p->display, p->root, False, netwm_sendevent_mask, &e);
}
void NETRootInfo::restackRequest(xcb_window_t window, RequestSource src, xcb_window_t above, int detail, xcb_timestamp_t timestamp )
void NETRootInfo::restackRequest(Window window, RequestSource src, Window above, int detail, Time timestamp )
{
#ifdef NETWMDEBUG
fprintf(stderr, "NETRootInfo::restackRequest: requesting restack for 0x%lx (%lx, %d)\n",
@ -1747,7 +1747,7 @@ void NETRootInfo::restackRequest(xcb_window_t window, RequestSource src, xcb_win
XSendEvent(p->display, p->root, False, netwm_sendevent_mask, &e);
}
void NETRootInfo::sendPing( xcb_window_t window, xcb_timestamp_t timestamp )
void NETRootInfo::sendPing( Window window, Time timestamp )
{
if (p->role != WindowManager) return;
#ifdef NETWMDEBUG
@ -1770,7 +1770,7 @@ void NETRootInfo::sendPing( xcb_window_t window, xcb_timestamp_t timestamp )
XSendEvent(p->display, window, False, 0, &e);
}
void NETRootInfo::takeActivity( xcb_window_t window, xcb_timestamp_t timestamp, long flags )
void NETRootInfo::takeActivity( Window window, Time timestamp, long flags )
{
if (p->role != WindowManager) return;
#ifdef NETWMDEBUG
@ -1891,8 +1891,8 @@ void NETRootInfo::event(XEvent *event, unsigned long* properties, int properties
#endif
RequestSource src = FromUnknown;
xcb_timestamp_t timestamp = CurrentTime;
xcb_window_t active_window = None;
Time timestamp = CurrentTime;
Window active_window = None;
// make sure there aren't unknown values
if( event->xclient.data.l[0] >= FromUnknown
&& event->xclient.data.l[0] <= FromTool )
@ -1953,7 +1953,7 @@ void NETRootInfo::event(XEvent *event, unsigned long* properties, int properties
#endif
RequestSource src = FromUnknown;
xcb_timestamp_t timestamp = CurrentTime;
Time timestamp = CurrentTime;
// make sure there aren't unknown values
if( event->xclient.data.l[0] >= FromUnknown
&& event->xclient.data.l[0] <= FromTool )
@ -2115,8 +2115,8 @@ void NETRootInfo::update( const unsigned long dirty_props[] )
}
if (dirty & ClientList) {
QList<xcb_window_t> clientsToRemove;
QList<xcb_window_t> clientsToAdd;
QList<Window> clientsToRemove;
QList<Window> clientsToAdd;
bool read_ok = false;
if (XGetWindowProperty(p->display, p->root, net_client_list,
@ -2124,9 +2124,9 @@ void NETRootInfo::update( const unsigned long dirty_props[] )
&format_ret, &nitems_ret, &unused, &data_ret)
== Success) {
if (type_ret == XA_WINDOW && format_ret == 32) {
xcb_window_t *wins = (xcb_window_t *) data_ret;
Window *wins = (Window *) data_ret;
qsort(wins, nitems_ret, sizeof(xcb_window_t), wcmp);
qsort(wins, nitems_ret, sizeof(Window), wcmp);
if (p->clients) {
if (p->role == Client) {
@ -2204,7 +2204,7 @@ void NETRootInfo::update( const unsigned long dirty_props[] )
&format_ret, &nitems_ret, &unused, &data_ret)
== Success) {
if (type_ret == XA_WINDOW && format_ret == 32) {
xcb_window_t *wins = (xcb_window_t *) data_ret;
Window *wins = (Window *) data_ret;
p->stacking_count = nitems_ret;
p->stacking = nwindup(wins, p->stacking_count);
@ -2353,7 +2353,7 @@ void NETRootInfo::update( const unsigned long dirty_props[] )
&nitems_ret, &unused, &data_ret)
== Success) {
if (type_ret == XA_WINDOW && format_ret == 32 && nitems_ret == 1) {
p->active = *((xcb_window_t *) data_ret);
p->active = *((Window *) data_ret);
}
#ifdef NETWMDEBUG
@ -2403,7 +2403,7 @@ void NETRootInfo::update( const unsigned long dirty_props[] )
&nitems_ret, &unused, &data_ret)
== Success) {
if (type_ret == XA_WINDOW && format_ret == 32 && nitems_ret == 1) {
p->supportwindow = *((xcb_window_t *) data_ret);
p->supportwindow = *((Window *) data_ret);
unsigned char *name_ret;
if (XGetWindowProperty(p->display, p->supportwindow,
@ -2439,7 +2439,7 @@ void NETRootInfo::update( const unsigned long dirty_props[] )
&format_ret, &nitems_ret, &unused, &data_ret)
== Success) {
if (type_ret == XA_WINDOW && format_ret == 32) {
xcb_window_t *wins = (xcb_window_t *) data_ret;
Window *wins = (Window *) data_ret;
p->virtual_roots_count = nitems_ret;
p->virtual_roots = nwindup(wins, p->virtual_roots_count);
@ -2512,12 +2512,12 @@ Display *NETRootInfo::x11Display() const {
}
xcb_window_t NETRootInfo::rootWindow() const {
Window NETRootInfo::rootWindow() const {
return p->root;
}
xcb_window_t NETRootInfo::supportWindow() const {
Window NETRootInfo::supportWindow() const {
return p->supportwindow;
}
@ -2627,7 +2627,7 @@ bool NETRootInfo::isSupported( NET::Action action ) const {
return p->properties[ ACTIONS ] & action;
}
const xcb_window_t *NETRootInfo::clientList() const {
const Window *NETRootInfo::clientList() const {
return p->clients;
}
@ -2637,7 +2637,7 @@ int NETRootInfo::clientListCount() const {
}
const xcb_window_t *NETRootInfo::clientListStacking() const {
const Window *NETRootInfo::clientListStacking() const {
return p->stacking;
}
@ -2681,7 +2681,7 @@ const char *NETRootInfo::desktopName(int desktop) const {
}
const xcb_window_t *NETRootInfo::virtualRoots( ) const {
const Window *NETRootInfo::virtualRoots( ) const {
return p->virtual_roots;
}
@ -2720,7 +2720,7 @@ int NETRootInfo::currentDesktop( bool ignore_viewport ) const {
}
xcb_window_t NETRootInfo::activeWindow() const {
Window NETRootInfo::activeWindow() const {
return p->active;
}
@ -2729,7 +2729,7 @@ xcb_window_t NETRootInfo::activeWindow() const {
const int NETWinInfo::OnAllDesktops = NET::OnAllDesktops;
NETWinInfo::NETWinInfo(Display *display, xcb_window_t window, xcb_window_t rootWindow,
NETWinInfo::NETWinInfo(Display *display, Window window, Window rootWindow,
const unsigned long properties[], int properties_size,
Role role)
{
@ -2793,7 +2793,7 @@ NETWinInfo::NETWinInfo(Display *display, xcb_window_t window, xcb_window_t rootW
}
NETWinInfo::NETWinInfo(Display *display, xcb_window_t window, xcb_window_t rootWindow,
NETWinInfo::NETWinInfo(Display *display, Window window, Window rootWindow,
unsigned long properties, Role role)
{
@ -3609,7 +3609,7 @@ NETIcon NETWinInfo::iconInternal(NETRArray<NETIcon>& icons, int icon_count, int
return result;
}
void NETWinInfo::setUserTime( xcb_timestamp_t time ) {
void NETWinInfo::setUserTime( Time time ) {
if (p->role != Client) return;
p->user_time = time;
@ -4393,16 +4393,7 @@ void NETWinInfo::update(const unsigned long dirty_props[]) {
if (dirty2 & WM2TransientFor) {
p->transient_for = None;
xcb_connection_t *c = xcb_connect(p->display->display_name, NULL);
if(c) {
xcb_get_property_cookie_t cookie = xcb_get_property_unchecked(c, 0, p->window, XCB_ATOM_WM_TRANSIENT_FOR, XCB_ATOM_WINDOW, 0, 1);
xcb_get_property_reply_t *reply = xcb_get_property_reply(c, cookie, NULL);
if(reply) {
p->transient_for = *reinterpret_cast<xcb_window_t *>(xcb_get_property_value(reply));
free(reply);
}
}
xcb_disconnect(c);
XGetTransientForHint(p->display, p->window, &p->transient_for);
}
if (dirty2 & WM2GroupLeader) {
@ -4555,7 +4546,7 @@ int NETWinInfo::pid() const {
return p->pid;
}
xcb_timestamp_t NETWinInfo::userTime() const {
Time NETWinInfo::userTime() const {
return p->user_time;
}
@ -4575,11 +4566,11 @@ bool NETWinInfo::hasNETSupport() const {
return p->has_net_support;
}
xcb_window_t NETWinInfo::transientFor() const {
Window NETWinInfo::transientFor() const {
return p->transient_for;
}
xcb_window_t NETWinInfo::groupLeader() const {
Window NETWinInfo::groupLeader() const {
return p->window_group;
}

View file

@ -33,7 +33,6 @@
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <xcb/xcb.h>
#include <fixx11h.h>
#include "netwm_def.h"
@ -102,7 +101,7 @@ public:
@param doActivate true to activate the window
**/
NETRootInfo(Display *display, xcb_window_t supportWindow, const char *wmName,
NETRootInfo(Display *display, Window supportWindow, const char *wmName,
const unsigned long properties[], int properties_size,
int screen = -1, bool doActivate = true);
@ -164,14 +163,14 @@ public:
@return the id of the root window
**/
xcb_window_t rootWindow() const;
Window rootWindow() const;
/**
Returns the Window id of the supportWindow.
@return the id of the support window
**/
xcb_window_t supportWindow() const;
Window supportWindow() const;
/**
Returns the name of the Window Manager.
@ -268,7 +267,7 @@ public:
@see clientListCount()
**/
const xcb_window_t *clientList() const;
const Window *clientList() const;
/**
Returns the number of managed windows in clientList array.
@ -287,7 +286,7 @@ public:
@see clientListStackingCount()
**/
const xcb_window_t *clientListStacking() const;
const Window *clientListStacking() const;
/**
Returns the number of managed windows in the clientListStacking array.
@ -352,7 +351,7 @@ public:
@see virtualRootsCount()
**/
const xcb_window_t *virtualRoots( ) const;
const Window *virtualRoots( ) const;
/**
Returns the number of window in the virtualRoots array.
@ -410,7 +409,7 @@ public:
@return the id of the active window
**/
xcb_window_t activeWindow() const;
Window activeWindow() const;
/**
Window Managers must call this after creating the NETRootInfo object, and
@ -429,7 +428,7 @@ public:
@param count The number of windows in the array
**/
void setClientList(const xcb_window_t *windows, unsigned int count);
void setClientList(const Window *windows, unsigned int count);
/**
Sets the list of managed windows in stacking order on the Root/Desktop
@ -439,7 +438,7 @@ public:
@param count The number of windows in the array.
**/
void setClientListStacking(const xcb_window_t *windows, unsigned int count);
void setClientListStacking(const Window *windows, unsigned int count);
/**
Sets the current desktop to the specified desktop.
@ -516,8 +515,8 @@ public:
caused the request
@param active_window active window of the requesting application, if any
**/
void setActiveWindow(xcb_window_t window, NET::RequestSource src,
xcb_timestamp_t timestamp, xcb_window_t active_window);
void setActiveWindow(Window window, NET::RequestSource src,
Time timestamp, Window active_window);
/**
Sets the active (focused) window the specified window. This should
@ -525,7 +524,7 @@ public:
@param window the if of the new active window
**/
void setActiveWindow(xcb_window_t window);
void setActiveWindow(Window window);
/**
Sets the workarea for the specified desktop
@ -543,7 +542,7 @@ public:
@param count The number of windows in the array.
**/
void setVirtualRoots(const xcb_window_t *windows, unsigned int count);
void setVirtualRoots(const Window *windows, unsigned int count);
/**
Sets the desktop layout. This is set by the pager. When setting, the pager must
@ -574,7 +573,7 @@ public:
@param window the id of the window to close
**/
void closeWindowRequest(xcb_window_t window);
void closeWindowRequest(Window window);
/**
Clients (such as pagers/taskbars) that wish to start a WMMoveResize
@ -591,7 +590,7 @@ public:
@param direction One of NET::Direction (see base class documentation for
a description of the different directions).
**/
void moveResizeRequest(xcb_window_t window, int x_root, int y_root,
void moveResizeRequest(Window window, int x_root, int y_root,
Direction direction);
/**
@ -607,18 +606,18 @@ public:
@param width Requested width for the window
@param height Requested height for the window
**/
void moveResizeWindowRequest(xcb_window_t window, int flags, int x, int y, int width, int height );
void moveResizeWindowRequest(Window window, int flags, int x, int y, int width, int height );
/**
Sends the _NET_RESTACK_WINDOW request.
**/
void restackRequest(xcb_window_t window, RequestSource source, xcb_window_t above, int detail, xcb_timestamp_t timestamp);
void restackRequest(Window window, RequestSource source, Window above, int detail, Time timestamp);
/**
Sends a ping with the given timestamp to the window, using
the _NET_WM_PING protocol.
*/
void sendPing( xcb_window_t window, xcb_timestamp_t timestamp );
void sendPing( Window window, Time timestamp );
/**
Sends a take activity message with the given timestamp to the window, using
@ -627,7 +626,7 @@ public:
@param timestamp timestamp of the message
@param flags arbitrary flags
*/
void takeActivity( xcb_window_t window, xcb_timestamp_t timestamp, long flags );
void takeActivity( Window window, Time timestamp, long flags );
/**
This function takes the passed XEvent and returns an OR'ed list of
@ -666,7 +665,7 @@ protected:
@param window the id of the window to add
**/
virtual void addClient(xcb_window_t window) { Q_UNUSED(window); }
virtual void addClient(Window window) { Q_UNUSED(window); }
/**
A Client should subclass NETRootInfo and reimplement this function when
@ -674,7 +673,7 @@ protected:
@param window the id of the window to remove
**/
virtual void removeClient(xcb_window_t window) { Q_UNUSED(window); }
virtual void removeClient(Window window) { Q_UNUSED(window); }
/**
A Window Manager should subclass NETRootInfo and reimplement this function
@ -722,7 +721,7 @@ protected:
@param window the id of the window to close
**/
virtual void closeWindow(xcb_window_t window) { Q_UNUSED(window); }
virtual void closeWindow(Window window) { Q_UNUSED(window); }
/**
A Window Manager should subclass NETRootInfo and reimplement this function
@ -737,7 +736,7 @@ protected:
@param direction One of NET::Direction (see base class documentation for
a description of the different directions).
**/
virtual void moveResize(xcb_window_t window, int x_root, int y_root,
virtual void moveResize(Window window, int x_root, int y_root,
unsigned long direction) { Q_UNUSED(window); Q_UNUSED(x_root); Q_UNUSED(y_root); Q_UNUSED(direction); }
/**
@ -746,7 +745,7 @@ protected:
@param window the window from which the reply came
@param timestamp timestamp of the ping
*/
virtual void gotPing( xcb_window_t window, xcb_timestamp_t timestamp ) { Q_UNUSED(window); Q_UNUSED(timestamp); }
virtual void gotPing( Window window, Time timestamp ) { Q_UNUSED(window); Q_UNUSED(timestamp); }
/**
A Window Manager should subclass NETRootInfo and reimplement this function
when it wants to know when a Client made a request to change the active
@ -757,8 +756,8 @@ protected:
@param timestamp the timestamp of the user action causing this request
@param active_window active window of the requesting application, if any
**/
virtual void changeActiveWindow(xcb_window_t window,NET::RequestSource src,
xcb_timestamp_t timestamp, xcb_window_t active_window ) { Q_UNUSED(window); Q_UNUSED(src); Q_UNUSED(timestamp); Q_UNUSED(active_window);}
virtual void changeActiveWindow(Window window,NET::RequestSource src,
Time timestamp, Window active_window ) { Q_UNUSED(window); Q_UNUSED(src); Q_UNUSED(timestamp); Q_UNUSED(active_window);}
/**
A Window Manager should subclass NETRootInfo and reimplement this function
@ -772,7 +771,7 @@ protected:
@param width Requested width for the window
@param height Requested height for the window
**/
virtual void moveResizeWindow(xcb_window_t window, int flags, int x, int y, int width, int height) { Q_UNUSED(window); Q_UNUSED(flags); Q_UNUSED(x); Q_UNUSED(y); Q_UNUSED(width); Q_UNUSED(height); }
virtual void moveResizeWindow(Window window, int flags, int x, int y, int width, int height) { Q_UNUSED(window); Q_UNUSED(flags); Q_UNUSED(x); Q_UNUSED(y); Q_UNUSED(width); Q_UNUSED(height); }
/**
A Window Manager should subclass NETRootInfo and reimplement this function
@ -785,8 +784,8 @@ protected:
@param detail restack detail
@param timestamp the timestamp of the request
**/
virtual void restackWindow(xcb_window_t window, RequestSource source,
xcb_window_t above, int detail, xcb_timestamp_t timestamp) { Q_UNUSED(window); Q_UNUSED(source); Q_UNUSED(above); Q_UNUSED(detail); Q_UNUSED(timestamp); }
virtual void restackWindow(Window window, RequestSource source,
Window above, int detail, Time timestamp) { Q_UNUSED(window); Q_UNUSED(source); Q_UNUSED(above); Q_UNUSED(detail); Q_UNUSED(timestamp); }
/**
A Window Manager should subclass NETRootInfo and reimplement this function
when it wants to receive replies to the _NET_WM_TAKE_ACTIVITY protocol.
@ -794,7 +793,7 @@ protected:
@param timestamp timestamp of the ping
@param flags flags passed in the original message
*/
virtual void gotTakeActivity(xcb_window_t window, xcb_timestamp_t timestamp, long flags ) { Q_UNUSED(window); Q_UNUSED(timestamp); Q_UNUSED(flags); }
virtual void gotTakeActivity(Window window, Time timestamp, long flags ) { Q_UNUSED(window); Q_UNUSED(timestamp); Q_UNUSED(flags); }
/**
A Window Manager should subclass NETRootInfo and reimplement this function
@ -858,7 +857,7 @@ public:
@param role Select the application role. If this argument is omitted,
the role will default to Client.
**/
NETWinInfo(Display *display, xcb_window_t window, xcb_window_t rootWindow,
NETWinInfo(Display *display, Window window, Window rootWindow,
const unsigned long properties[], int properties_size,
Role role = Client);
@ -868,8 +867,8 @@ public:
is equivalent to the first element of the properties array
in the above constructor.
**/
NETWinInfo(Display *display, xcb_window_t window,
xcb_window_t rootWindow, unsigned long properties,
NETWinInfo(Display *display, Window window,
Window rootWindow, unsigned long properties,
Role role = Client);
/**
@ -1200,12 +1199,12 @@ public:
* user action, it won't be activated after being shown, with the special
* value 0 meaning not to activate the window after being shown.
*/
void setUserTime( xcb_timestamp_t time );
void setUserTime( Time time );
/**
* Returns the time of last user action on the window, or -1 if not set.
*/
xcb_timestamp_t userTime() const;
Time userTime() const;
/**
* Sets the startup notification id @p id on the window.
@ -1241,12 +1240,12 @@ public:
* Returns the WM_TRANSIENT_FOR property for the window, i.e. the mainwindow
* for this window.
*/
xcb_window_t transientFor() const;
Window transientFor() const;
/**
* Returns the leader window for the group the window is in, if any.
*/
xcb_window_t groupLeader() const;
Window groupLeader() const;
/**
* Returns the class component of the window class for the window

View file

@ -84,11 +84,10 @@ struct NETRootInfoPrivate {
NET::Role role;
// information about the X server
xcb_connection_t *connection;
Display *display;
NETSize rootSize;
xcb_window_t root;
xcb_window_t supportwindow;
Window root;
Window supportwindow;
const char *name;
int screen;
@ -97,8 +96,8 @@ struct NETRootInfoPrivate {
NETRArray<NETPoint> viewport;
NETRArray<NETRect> workarea;
NETSize geometry;
xcb_window_t active;
xcb_window_t *clients, *stacking, *virtual_roots;
Window active;
Window *clients, *stacking, *virtual_roots;
NETRArray<const char *> desktop_names;
int number_of_desktops;
int current_desktop;
@ -124,9 +123,8 @@ struct NETRootInfoPrivate {
struct NETWinInfoPrivate {
NET::Role role;
xcb_connection_t *connection;
Display *display;
xcb_window_t window, root;
Window window, root;
NET::MappingState mapping_state;
Bool mapping_state_dirty;
@ -148,7 +146,7 @@ struct NETWinInfoPrivate {
Time user_time;
char* startup_id;
unsigned long opacity;
xcb_window_t transient_for, window_group;
Window transient_for, window_group;
unsigned long allowed_actions;
char* class_class, *class_name, *window_role, *client_machine;