Reset master to testing content
This commit is contained in:
1 parent
0f2587b719
commit
42afa2a56c
1483 files changed
+145308
-938069
No files matched your search
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Move X input focus into a child of the current test client window."""
|
||||
|
||||
import ctypes
|
||||
import sys
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parent = int(sys.argv[1])
|
||||
x11 = ctypes.CDLL("libX11.so.6")
|
||||
x11.XOpenDisplay.argtypes = [ctypes.c_char_p]
|
||||
x11.XOpenDisplay.restype = ctypes.c_void_p
|
||||
x11.XCreateSimpleWindow.argtypes = [
|
||||
ctypes.c_void_p, ctypes.c_ulong, ctypes.c_int, ctypes.c_int,
|
||||
ctypes.c_uint, ctypes.c_uint, ctypes.c_uint,
|
||||
ctypes.c_ulong, ctypes.c_ulong,
|
||||
]
|
||||
x11.XCreateSimpleWindow.restype = ctypes.c_ulong
|
||||
x11.XMapWindow.argtypes = [ctypes.c_void_p, ctypes.c_ulong]
|
||||
x11.XSetInputFocus.argtypes = [
|
||||
ctypes.c_void_p, ctypes.c_ulong, ctypes.c_int, ctypes.c_ulong,
|
||||
]
|
||||
x11.XSync.argtypes = [ctypes.c_void_p, ctypes.c_int]
|
||||
x11.XCloseDisplay.argtypes = [ctypes.c_void_p]
|
||||
|
||||
display = x11.XOpenDisplay(None)
|
||||
if not display:
|
||||
raise RuntimeError("X11 display unavailable")
|
||||
try:
|
||||
child = x11.XCreateSimpleWindow(display, parent, 0, 0, 1, 1, 0, 0, 0)
|
||||
if not child:
|
||||
raise RuntimeError("could not create child window")
|
||||
x11.XMapWindow(display, child)
|
||||
x11.XSetInputFocus(display, child, 2, 0) # RevertToParent, CurrentTime
|
||||
x11.XSync(display, 0)
|
||||
print(child, flush=True)
|
||||
sys.stdin.readline()
|
||||
x11.XSetInputFocus(display, parent, 2, 0)
|
||||
x11.XSync(display, 0)
|
||||
finally:
|
||||
x11.XCloseDisplay(display)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in new issue
Block a user