Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当鼠标进入GNOME屏幕上的特定像素范围时激活方法_Javascript_Css_Gnome_Gnome Shell_Gnome Shell Extensions - Fatal编程技术网

Javascript 当鼠标进入GNOME屏幕上的特定像素范围时激活方法

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的其他扩展以及在线扩展,但似乎找不到任

我正在尝试制作一个GNOME扩展,它的功能与dock类似,只是它会显示状态信息(时间、电池等)。我一直想知道的是,当光标进入一个特定的像素区域时,我如何获得显示的信息?例如,如果屏幕为1600x900像素(仅为示例),则应在
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”);
}
});
//观察。移除();
还有那个元障碍。可能会调查