我正在使用Gtkmm4,许多API已被删除。在Gtk3中,可以使用Gtk::Window::get_xid
(继承自Gdk::Window
),但这已经不可能了,因为Gdk::Window
已被重命名为Gdk::Surface
,Gtk::Window
似乎不再继承它了。但是,人们总是可以使用GDK_SURFACE_XID(surface)
获得Gdk::Surface
的XId。我如何获得Gtk::Window
的Gdk::Surface
,或者直接从Gtk::Window
获得XId ?
注意:我只需要使用Gtkmm 4的解决方案,而不是Gtkmm 3 !
处理底层表面的代码被分离到一个单独的接口Gtk::Native
中,然后由Gtk::Window
实现。Gtk::Native
有一个方法get_surface()
,它应该像GTK 3中的Gtk::Window::get_window()
一样工作。