当我试图从另一个弹出式菜单打开一个弹出式菜单时,我遇到了一个小问题。打开子菜单时,两个菜单都会关闭。我使用的一个临时解决方案是在单击时关闭原始菜单,然后继续打开子菜单。我认为他们都在试图抓住焦点,并因此而接近。有谁知道在gnome shell扩展中创建分层弹出菜单的合理方法吗?
发布于 2017-10-19 00:52:34
外壳中的菜单系统在信号和打开和关闭方面有点复杂。如果你还没有看popupMenu.js的话,你肯定应该看一看。
如果我还记得自己的冒险经历,就不可能在子菜单中有子菜单,因为信号传播的方式不同,但是您可以对其中的任何类进行子类化并修改信号,或者可以通过添加操作visibility属性来伪造自己的子菜单:

还请看一看PopupMenuSection类及其注释:
故意忽略任何试图打开()或关闭()的尝试,但发出相应的信号,以便孩子们仍然可以捡起它
https://stackoverflow.com/questions/46816486
复制相似问题