bigslime's picture
Duplicate from lnyan/stablediffusion-infinity
e4545e2
window.my_setup_keyboard=setInterval(function(){
let app=document.querySelector("gradio-app");
app=app.shadowRoot??app;
let frame=app.querySelector("#sdinfframe").contentWindow;
console.log("Check iframe...");
if(frame.setup_shortcut)
{
frame.setup_shortcut(json);
clearInterval(window.my_setup_keyboard);
}
}, 1000);
var config=JSON.parse(json);
var key_map={};
Object.keys(config.shortcut).forEach(k=>{
key_map[config.shortcut[k]]=k;
});
document.addEventListener("keydown", e => {
if(e.target.tagName!="INPUT"&&e.target.tagName!="GRADIO-APP"&&e.target.tagName!="TEXTAREA")
{
let key=e.key;
if(e.ctrlKey)
{
key="Ctrl+"+e.key;
if(key in key_map)
{
e.preventDefault();
}
}
let app=document.querySelector("gradio-app");
app=app.shadowRoot??app;
let frame=app.querySelector("#sdinfframe").contentDocument;
frame.dispatchEvent(
new KeyboardEvent("keydown", {key: e.key, ctrlKey: e.ctrlKey})
);
}
})