gtk – Gnome 3.10与3.14中的扩展事件循环
发布时间:2020-12-15 22:33:17 所属栏目:安全 来源:网络整理
导读:我写了这个辅助功能扩展: https://extensions.gnome.org/extension/975/keyboard-modifiers-status/ https://github.com/sneetsher/Keyboard-Modifiers-Status 这与Gnome Shell v3.14 v3.16但不是v3.10.它显示了i之后唯一的初始键盘修饰符状态 重新启动它,
我写了这个辅助功能扩展:
> https://extensions.gnome.org/extension/975/keyboard-modifiers-status/ 这与Gnome Shell v3.14& v3.16但不是v3.10.它显示了i之后唯一的初始键盘修饰符状态 这里是完整的代码: const St = imports.gi.St; const Mainloop = imports.mainloop; const Main = imports.ui.main; const Gdk = imports.gi.Gdk let button,label,keymap; function _update() { let symbols = "????①◆??"; let state = keymap.get_modifier_state(); label.text = " "; for (var i=0; i<=8; i++ ) { if (state & 1<<i) { label.text += symbols[i]; } else { //label.text += ""; } } label.text += " "; } function init() { button = new St.Bin({ style_class: 'panel-button',reactive: false,can_focus: false,x_fill: true,y_fill: false,track_hover: false }); label = new St.Label({ style_class: "state-label",text: "" }); button.set_child(label); keymap = Gdk.Keymap.get_default(); keymap.connect('state_changed',_update ); Mainloop.timeout_add(1000,_update ); } function enable() { Main.panel._rightBox.insert_child_at_index(button,0); } function disable() { Main.panel._rightBox.remove_child(button); } 试图调试,我修改了代码来显示(状态标签一个计数器) let c,button,keymap; c=0; function _update() { Gtk.main_iteration_do(false); c++; let symbols = "????①◆??"; //let keymap = Gdk.Keymap.get_default() let state = keymap.get_modifier_state(); label.text = " "; for (var i=0; i<=8; i++ ) { if (state & 1<<i) { label.text += symbols[i]; } else { //label.text += ""; } } label.text += " "+c+" "; return true; } 我可以证实这些: > keymap.connect(‘state_changed’,_ update};这个信号永远不会升起 所以我认为事件循环有一些东西,因为它没有拉动 你能指点我解决这个问题吗?有什么区别 解决方法
假设注释掉keymap的定义是有意的,请检查它是否仍然在代码中的其他地方分配.你尝试过使用 – (减号)而不是_(下划线)吗?大多数事件在JS空间中使用前者,而不是后者,在我将事件附加到更改活动工作空间的几种情况下,这对我来说是个问题,其中Meta.Display的后端触发workspace_switched,GJS空间通过工作空间切换连接,那里有更多的例子.
有关官方文档,包括GJS空间内的正确事件,属性和函数名称,请参阅GNOME DevDocs我不知道何时成为官方,但他们声明它是here (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |