GJS: global.window_manager.get_workspaces () не определено - PullRequest
0 голосов
/ 03 октября 2018

У меня есть такой код для моего расширения

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 не является функцией».В чем здесь проблема?

1 Ответ

0 голосов
/ 04 октября 2018

Скорее всего, вы полагаетесь на API, который был недавно изменен в libmutter.Если вы используете более старую версию libmutter или более новую версию, чем дата изменения, вам необходимо проверить глобальную переменную.

Вы, вероятно, можете узнать из diff в GnomeОболочка , как ваш код должен быть скорректирован.

Обычно рабочие пространства теперь обрабатываются MetaWorkspaceManager, который доступен в Gnome Shell как global.workspace_manager, и вы можете вызвать get_n_workspaces() для этого.Связанный исходный файл в libmutter: workspace_manager.h.До этого я думаю, что к ним обращались через global.screen.

...