wl_registry, name, &wl_shm_interface, 1); } else if (strcmp(interface, wl_compositor_interface.name) == 0) { state->wl_compositor = wl_registry_bind( wl_registry, name, &wl_compositor_interface, 4); } else if (strcmp(interface, xdg_wm_base_interface.name) == 0) { state->xdg_...
现在,你可以简单地创建一个并传递它,而无需进一步配置即可实现相当合理的默认行为,利用适当的xdg_wm_base请求: <request name="create_positioner"> <arg name="id" type="new_id" interface="xdg_positioner"/> </request> 所以,简而言之,我们可以: 创建一个新的wl_surface 为其获取一个xdg_surface 创建...
* The xdg_wm_base interface is exposed as a global object enabling clients * to turn their wl_surfaces into windows in a desktop environment. It * defines the basic functionality needed for clients and the compositor to * create windows that can be dragged, resized, maximized, etc, as...
The question is why my session is not setting this environment up for me? I am not using i3wm or anything. I am using vanilla Gnome 3. Also, why does this happen only with portal? Any other non-flatpak that I launch using dbus starts instantly. ...
xdg_surface接口提供了其他请求,用于分配更具体的顶级和弹出窗口角色。一旦我们将对象绑定到xdg_wm_base全局,我们就可以使用get_xdg_surface请求获取一个wl_surface的id。 <request name="get_xdg_surface"><arg name="id"type="new_id"interface="xdg_surface"/><arg name="surface"type="object"interface="wl...
{0};+state.width=640;+state.height=480;state.wl_display=wl_display_connect(NULL);state.wl_registry=wl_display_get_registry(state.wl_display);wl_registry_add_listener(state.wl_registry,&wl_registry_listener,&state);@@-227,6+256,8@@main(int argc,char*argv[])state.xdg_wm_base,state....
xdg_wm_base_ping, }; /*for registry listener*/ static void registry_add_object(void *data, struct wl_registry *registry, uint32_t name, const char *interface, uint32_t version) { if (!strcmp(interface, "wl_compositor")) {