How to get Gdk window from xid?

前端 未结 1 1576
醉酒成梦
醉酒成梦 2020-12-16 03:35

I\'m lost in version 3.. in python2+gdk2 is:

#!/usr/bin/env python2
import gtk

gtk.gdk.window_process_all_updates()
window_xid = 54525964
gdk_window = gtk.         


        
相关标签:
1条回答
  • 2020-12-16 03:48

    A Window in X11 is the same as an XID. There's just a typedef from one to the other.

    So in C code gdk_x11_window_foreign_new_for_display() just accepts an Window or XID, which is basically an integer. This also works in python using introspection:

    #!/usr/bin/env python3
    from gi.repository import Gdk
    from gi.repository import GdkX11
    
    Gdk.Window.process_all_updates()
    xlib_window = 0x2a00005 # from xwininfo command
    gdk_display = GdkX11.X11Display.get_default()
    gdk_window = GdkX11.X11Window.foreign_new_for_display(gdk_display, xlib_window)
    print(gdk_window.get_geometry())
    
    0 讨论(0)
提交回复
热议问题