| CMakeLists.txt |
|
4601 |
- |
| gl_integrations |
|
|
- |
| qt_xlib_wrapper.cpp |
|
332 |
- |
| qt_xlib_wrapper.h |
|
337 |
- |
| qxcbatom.cpp |
|
5597 |
- |
| qxcbatom.h |
|
5770 |
- |
| qxcbbackingstore.cpp |
|
37742 |
- |
| qxcbbackingstore.h |
|
2521 |
- |
| qxcbclipboard.cpp |
|
33011 |
- |
| qxcbclipboard.h |
|
3626 |
- |
| qxcbconnection.cpp |
|
42953 |
- |
| qxcbconnection.h |
|
14449 |
- |
| qxcbconnection_basic.cpp |
C++17 deprecated register |
12697 |
- |
| qxcbconnection_basic.h |
|
4476 |
- |
| qxcbconnection_screens.cpp |
!
\brief Synchronizes the screen list, adds new screens, removes deleted ones
|
24606 |
- |
| qxcbconnection_xi2.cpp |
!
\internal
Find the existing QPointingDevice instance representing a particular tablet or stylus;
or create and register a new instance if it was not found.
An instance can be uniquely identified by its \a devType, \a pointerType and \a uniqueId.
The rest of the arguments are necessary to create a new instance.
If the instance represents a stylus, the instance representing the tablet
itself must be given as \a master. Otherwise, \a master must be the xinput
master device (core pointer) to which the tablet belongs. It should not be
null, because \a master is also the QObject::parent() for memory management.
Proximity events have incomplete information. So as a side effect, if an
existing instance is found, it is updated with the given \a usbId and
\a toolId, and the seat ID of \a master, in case those values were only
now discovered, or the seat assignment changed (?).
|
81566 |
- |
| qxcbcursor.cpp |
|
27163 |
- |
| qxcbcursor.h |
|
3103 |
- |
| qxcbcursorfont.h |
|
2128 |
- |
| qxcbdrag.cpp |
We are setting a mouse grab on the QShapedPixmapWindow in order not to
lose the grab when the virtual desktop changes, but
QBasicDrag::eventFilter() expects the events to be coming from the
window where the drag was started. |
45982 |
- |
| qxcbdrag.h |
|
5163 |
- |
| qxcbeventdispatcher.cpp |
|
3699 |
- |
| qxcbeventdispatcher.h |
|
1744 |
- |
| qxcbeventqueue.cpp |
!
\class QXcbEventQueue
\internal
Lock-free event passing:
The lock-free solution uses a singly-linked list to pass events from the
reader thread to the main thread. An atomic operation is used to sync the
tail node of the list between threads. The reader thread takes special care
when accessing the tail node. It does not dequeue the last node and does not
access (read or write) the tail node's 'next' member. This lets the reader
add more items at the same time as the main thread is dequeuing nodes from
the head. A custom linked list implementation is used, because std::list
does not have any thread-safety guarantees. The custom list is
lightweight - no reference counting, back links, etc.
Memory management:
In a normally functioning application, XCB plugin won't buffer more than few
batches of events, couple events per batch. Instead of constantly calling
new / delete, we can create a pool of nodes that we reuse. The main thread
uses an atomic operation to sync how many nodes have been restored (available
for reuse). If at some point a user application will block the main thread
for a long time, we might run out of nodes in the pool. Then we create nodes
on a heap. These will be automatically "garbage collected" out of the linked
list, once the main thread stops blocking.
|
12697 |
- |
| qxcbeventqueue.h |
|
4732 |
- |
| qxcbexport.h |
|
404 |
- |
| qxcbimage.cpp |
|
9151 |
- |
| qxcbimage.h |
|
984 |
- |
| qxcbintegration.cpp |
C++17 deprecated register |
19939 |
- |
| qxcbintegration.h |
|
3921 |
- |
| qxcbkeyboard.cpp |
Look at a pair of unshifted and shifted key symbols.
If the 'unshifted' symbol is uppercase and there is no shifted symbol,
return the matching lowercase symbol; otherwise return 0.
The caller can then use the previously 'unshifted' symbol as the new
'shifted' (uppercase) symbol and the symbol returned by the function
as the new 'unshifted' (lowercase) symbol.) |
36488 |
- |
| qxcbkeyboard.h |
|
2909 |
- |
| qxcbmain.cpp |
|
1081 |
- |
| qxcbmime.cpp |
|
9731 |
- |
| qxcbmime.h |
|
1261 |
- |
| qxcbnativeinterface.cpp |
|
21161 |
- |
| qxcbnativeinterface.h |
|
5096 |
- |
| qxcbobject.h |
|
751 |
- |
| qxcbscreen.cpp |
|
43583 |
- |
| qxcbscreen.h |
|
8729 |
- |
| qxcbscrollingdevice.cpp |
|
682 |
- |
| qxcbscrollingdevice_p.h |
|
1754 |
- |
| qxcbsessionmanager.cpp |
fast |
13887 |
- |
| qxcbsessionmanager.h |
|
1419 |
- |
| qxcbsystemtraytracker.cpp |
|
4940 |
- |
| qxcbsystemtraytracker.h |
|
1263 |
- |
| qxcbvulkaninstance.cpp |
|
3162 |
- |
| qxcbvulkaninstance.h |
|
1068 |
- |
| qxcbvulkanwindow.cpp |
|
1589 |
- |
| qxcbvulkanwindow.h |
|
594 |
- |
| qxcbwindow.cpp |
C++17 deprecated register |
104843 |
- |
| qxcbwindow.h |
|
10225 |
- |
| qxcbwmsupport.cpp |
|
2802 |
- |
| qxcbwmsupport.h |
|
724 |
- |
| qxcbxsettings.cpp |
Implementation of http://standards.freedesktop.org/xsettings-spec/xsettings-0.5.html |
9360 |
- |
| qxcbxsettings.h |
|
1050 |
- |
| README |
Requires libxcb >= 1.9.1. |
26 |
- |
| xcb.json |
|
26 |
- |