GJS: global.window_manager.get_workspaces() 未定义
GJS: global.window_manager.get_workspaces() is undefined
我的分机有这样的代码
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 is not a function'。这里有什么问题?
您很可能依赖于最近在 libmutter 中更改的 API。如果您使用的是旧版本的 libmutter 或比更改日期更新的版本,则需要检查全局变量。
您大概可以从the diff in Gnome Shell中了解您的代码需要如何调整。
通常,工作区现在由 MetaWorkspaceManager
处理,在 Gnome Shell 中可用 global.workspace_manager
,您可以调用 get_n_workspaces()
。 libmutter 中相关的上游文件是workspace_manager.h
。在那之前,我相信他们是通过 global.screen
.
访问的
我的分机有这样的代码
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 is not a function'。这里有什么问题?
您很可能依赖于最近在 libmutter 中更改的 API。如果您使用的是旧版本的 libmutter 或比更改日期更新的版本,则需要检查全局变量。
您大概可以从the diff in Gnome Shell中了解您的代码需要如何调整。
通常,工作区现在由 MetaWorkspaceManager
处理,在 Gnome Shell 中可用 global.workspace_manager
,您可以调用 get_n_workspaces()
。 libmutter 中相关的上游文件是workspace_manager.h
。在那之前,我相信他们是通过 global.screen
.