我的分机有这样的代码
for (let i = 0; i < screen.get_n_workspaces(); ++i) { let w = screen.get_workspace_by_index(i); //Do something }
因为gjs将c函数映射到javascript,所以meta_screen_get_n_workspaces变成了get_n_workspaces。但是,当我为meta_screen_get_workspaces尝试这个时
screen.get_workspaces().forEach(w => { //Do someting })
它说'get_workspaces不是一个函数‘。这里有什么问题?
发布于 2018-10-04 00:04:25
很可能是依赖于最近在libmutter中更改的API。如果使用的是较早版本的libmutter或比更改日期更新的版本,则需要检查全局变量。
您可能可以从Gnome壳牌的差异中了解如何调整代码。
通常,工作空间现在由MetaWorkspaceManager处理,它在Gnome中可以作为global.workspace_manager使用,您可以在此调用get_n_workspaces()。libmutter中相关的上游文件是workspace_manager.h。在此之前,我相信它们是通过global.screen访问的。
https://stackoverflow.com/questions/52632909
复制相似问题