Javascript 当鼠标进入GNOME屏幕上的特定像素范围时激活方法
我正在尝试制作一个GNOME扩展,它的功能与dock类似,只是它会显示状态信息(时间、电池等)。我一直想知道的是,当光标进入一个特定的像素区域时,我如何获得显示的信息?例如,如果屏幕为1600x900像素(仅为示例),则应在Javascript 当鼠标进入GNOME屏幕上的特定像素范围时激活方法,javascript,css,gnome,gnome-shell,gnome-shell-extensions,Javascript,Css,Gnome,Gnome Shell,Gnome Shell Extensions,我正在尝试制作一个GNOME扩展,它的功能与dock类似,只是它会显示状态信息(时间、电池等)。我一直想知道的是,当光标进入一个特定的像素区域时,我如何获得显示的信息?例如,如果屏幕为1600x900像素(仅为示例),则应在x>1550和800>y>850时激活。这不是实际的像素范围,而是一般区域的一些东西。我的问题是,如何使它经常检查光标是否在该区域?我可以做一个while循环,但我认为这会占用大量资源,必须有更好的方法。有?到目前为止,我已经查看了API的其他扩展以及在线扩展,但似乎找不到任
x>1550
和800>y>850
时激活。这不是实际的像素范围,而是一般区域的一些东西。我的问题是,如何使它经常检查光标是否在该区域?我可以做一个while循环,但我认为这会占用大量资源,必须有更好的方法。有?到目前为止,我已经查看了API的其他扩展以及在线扩展,但似乎找不到任何有用的东西。我看到了一个看起来很有前途的主回路,但我并不真正理解它
提前谢谢 注意,不能使用无限while循环,因为它会阻塞shell;你必须使用主循环 您可以使用pointerWatcher(更方便,因为他们添加了空闲监视器检测):
例如:
let PointerWatcher = imports.ui.pointerWatcher;
let watcher = new PointerWatcher.PointerWatcher();
let watch = watcher.addWatch(50, (x, y) => {
let m = Main.layoutManager.currentMonitor;
if ((m.height - y) < 200 && (m.width - x) < 200) {
Main.notify("asdf");
}
});
// watch.remove();
let PointerWatcher=imports.ui.PointerWatcher;
让watcher=newpointerwatcher.PointerWatcher();
让watch=watcher.addWatch(50,(x,y)=>{
设m=Main.layoutManager.currentMonitor;
如果((m.高度-y)<200和(m.宽度-x)<200){
主通知(“asdf”);
}
});
//观察。移除();
还有那个元障碍。可能会调查