Enrico Weigelt, metux IT consult
93cc176357
( !1654 ) Xnest: use xcb_window_t instead of Window
...
Since we're now using xcb for upstream X11 connection, it's cleaner to
use it's type for the window IDs.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:03 +02:00
Enrico Weigelt, metux IT consult
c6fe0cbfbf
( !1654 ) Xnest: dont link Xlib anymore
...
Now that we completely ported from Xlib to XCB, we can finally stop
importing Xlib :)
FIN.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:03 +02:00
Enrico Weigelt, metux IT consult
c62697dcc2
( !1654 ) Xnest: use XCB for upstream connection
...
Now that no Xlib operations (besides opening and closing connection)
aren't used anymore, we can move over the last pieces and use XCB
instead of Xlib for connecting the upstream Xserver.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:03 +02:00
Enrico Weigelt, metux IT consult
d4bc88e4ee
( !1654 ) Xnest: use XCB for event loop
...
Now that no X11 calls are being done via Xlib anymore, we're free to
also move over event receiving, leaving Xlib pretty much unused.
Also need to add a simple event queue mechanism, because we've go a
screen operation (see xnestBitBlitHelper) that needs to collect up
certain events for it's return value.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:03 +02:00
Enrico Weigelt, metux IT consult
7fd23deee2
( !1654 ) Xnest: drop xnestWindowExposures micro-optimization
...
xnestWindowExposures() is a micro-optimization for the specific case that
a newly created window receives exposure events (from our upstream server)
inside the region we're already exposing on our own (miWindowExposures()):
it peeks the Xlib event queue for all expose events, checks whether their
areas are inside our exposure region and requeue's those that aren't.
Unfortunately, this depends on Xlib's internal queue mechamism, thus standing
in the way of moving to XCB (which doesn't have that).
Removing this doens't seem to make any practical difference, even with
demanding applications like GIMP. The only cost is potentially having some
initial window content painted twice, *if* the application really draws
something complicated right after creating the window.
*If* there'll really be a demand for such an optimization some day, it can
be reimplemented without any message queue: just redirecting all expose events
into recording them in a region, which is flushed out later. But for now,
there really doesn't seem to be any practical need for that.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:03 +02:00
Enrico Weigelt, metux IT consult
adcac446d2
( !1654 ) Xnest: replace XConnectionNumber() by xcb_get_file_descriptor()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:03 +02:00
Enrico Weigelt, metux IT consult
e8d0e24b4a
( !1654 ) Xnest: replace XReparentWindow() by xcb_reparent_window()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:03 +02:00
Enrico Weigelt, metux IT consult
7a4ca3b784
( !1654 ) Xnest: drop using XLoadQueryFont()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:03 +02:00
Enrico Weigelt, metux IT consult
0c2331c065
( !1654 ) Xnest: replace XTextWidth[16]() by own implementation
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:03 +02:00
Enrico Weigelt, metux IT consult
b7e9e414c7
( !1654 ) Xnest: load fonts via xcb
...
FIXME: support xf86bigfont extension
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
34e3909d0e
( !1654 ) Xnest: replace XQueryBestSize() by xcb_query_best_size()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
72f6463115
( !1654 ) Xnest: replace X(Un)InstallColormap() by xcb_(un)install_colormap()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
0b98ef9523
( !1654 ) Xnest: drop obsolete XGetVisualInfo() call and reundant colormaps
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
f344067936
( !1654 ) Xnest: use new lookup table for visuals and cmaps mappings
...
Use the visuals lookup table introduced by previous commit for
looking up local vs upstream visuals and their colormaps.
Replacing the the old Xlib visuals table.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
861568db8a
( !1654 ) Xnest: screen: record visuals and cmaps in separate table
...
Record the associations between host's and our visuals as well their
corresponding cmaps in a global table, which's used later for lookups.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
cd34aeaa2f
( !1654 ) Xnest: fetch visuals from XCB setup data instead of Xlib
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
866fefded5
( !1654 ) Xnest: screen move assigment between depths and visual assignment to own function
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
c107d3691c
( !1654 ) Xnest: replace XParseGeometry() by own implementation
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
5cb90f8647
( !1654 ) Xnest: replace XGetWindowAttributes() by xcb_get_geometry()
...
Use xcb function instead of Xlib, and also spare one additional
(unused) request.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
4a80384d0a
( !1654 ) Xnest: collect upstream window geometry in one xRectangle struct
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
d49fb014d6
( !1654 ) Xnest: replace XGetKeyboardControl() by xcb_get_keyboard_control()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
b0228ef2e1
( !1654 ) Xnest: replace XGetPointerMapping() by xcb_get_pointer_mapping()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
5ad065519c
( !1654 ) Xnest: replace XGetPointerControl() by xcb_get_pointer_control()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
343df4570f
( !1654 ) Xnest: replace XGetModifierMapping() by xcb_get_modifier_mapping()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
b15bf72e1a
( !1654 ) Xnest: fetch keyboard mapping via xcb
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
7d1ade4864
( !1654 ) Xnest: add own copy of fixed xcb_xkb_get_kbd_by_name()
...
This is a temporary measure, until xcbproto / libxcb is fixed:
keep an own copy of the fixed xcb_xkb_get_kbd_by_name(), renamed
as xcb_xkb_get_kbd_by_name_1().
Once xcbproto/libxcb is fixed (and new xcb release is out), this
commit can be reverted.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
6cab66d7aa
( !1654 ) Xnest: use xcb for retrieving keymap controls
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
d62c6fa5d8
( !1654 ) Xnest: replace XSelectInput() by xcb_change_window_attributes()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
9a36601a90
( !1654 ) Xnest: replace XSetStandardProperties() by xcb functions
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
ee3ecfe2f4
( !1654 ) Xnest: fetch supported pixmap formats from xcb setup data
...
There's even no need to keep our own copies, since we can ask XCB's
copy any time.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
ec2ee61f5a
( !1654 ) Xnest: fetch allowed screen depths from xcb screen info
...
There's even no need to keep our own copies, since we can ask XCB's
copy any time.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
57b6a4c63d
( !1654 ) Xnest: Pixmap: replace XGetImage() by xcb_get_image()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
ce5c4906cf
( !1654 ) Xnest: GC: replace XGetImage() by xcb_get_image()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
aaded7135c
( !1654 ) Xnest: replace XDestroyWindow() by xnest_destroy_window()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
2eea2bb5b1
( !1654 ) Xnest: replace XCreatePixmapFromBitmapData() by xcb_put_image()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
7c6bf37441
( !1654 ) Xnest: replace XCreateBitmapFromData() by xcb_put_image()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
77de496262
( !1654 ) Xnest: replace XDefineCursor() by xcb_change_window_attributes()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
866db6256a
( !1654 ) Xnest: replace xnestRecolorCursor() by xcb_recolor_cursor()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
a09a15d3f0
( !1654 ) Xnest: replace XFreeCursor() by xcb_free_cursor()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
b4ba78d100
( !1654 ) Xnest: replace XStoreColors() by xcb_store_colors()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
5b28cd3498
( !1654 ) Xnest: replace XQueryColors() by xcb_query_colors()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
6fb09b9008
( !1654 ) Xnest: replace XSetWindowColormap() by xcb_change_window_attributes()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
52a8289303
( !1654 ) Xnest: replace XSetWMColormapWindows() by xcb_icccm_set_wm_colormap_windows_checked()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
a59a895446
( !1654 ) Xnest: use XIDs directly, instead of Xlib's GC
...
Now that no Xlib drawing functions used anymore, we can finally switch over
to using GC XID's directly, instead of Xlib's GC struct.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
68e2a32904
( !1654 ) Xnest: GC: set stipple filling via xcb_change_gc
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
7749ed8d87
( !1654 ) Xnest: replace XSetClipMask() by xcb_change_gc()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
6311c9fda3
( !1654 ) Xnest: replace XSetClipRectangles() by xnset_set_clip_rectangles()
...
Use XCB for setting clip rectangles.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
327bef1b51
( !1654 ) Xnest: replace XSetDashes() by xnest_set_dashes()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
f58ac06585
( !1654 ) Xnest: replace XChangeGC() by xcb_change_gc()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00
Enrico Weigelt, metux IT consult
f59ae06a2a
( !1654 ) Xnest: replace XChangeKeyboardControl() by xcb_change_keyboard_control()
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-04 13:49:02 +02:00