improve usability of hover pop menu items on touch devices

This commit is contained in:
Stewart Allen 2022-10-17 12:03:26 -04:00
commit 63b2b00b21
2 changed files with 15 additions and 3 deletions

View file

@ -2363,9 +2363,9 @@ gapp.register("kiri.init", [], (root, exports) => {
uc.hoverPop(ui.ltfile, { group: hpops, target: $('file-pop') }); uc.hoverPop(ui.ltfile, { group: hpops, target: $('file-pop') });
uc.hoverPop(ui.ltview, { group: hpops, target: $('pop-view') }); uc.hoverPop(ui.ltview, { group: hpops, target: $('pop-view') });
uc.hoverPop(ui.ltact, { group: hpops, target: $('pop-slice') }); uc.hoverPop(ui.ltact, { group: hpops, target: $('pop-slice') });
uc.hoverPop(ui.render, { group: hpops, target: $('pop-render'), sticky: false }); uc.hoverPop(ui.render, { group: hpops, target: $('pop-render'), xsticky: false });
uc.hoverPop(ui.edit, { group: hpops, target: $('pop-tools'), sticky: false }); uc.hoverPop(ui.edit, { group: hpops, target: $('pop-tools'), xsticky: false });
uc.hoverPop(ui.nozzle, { group: hpops, target: $('pop-nozzle'), sticky: true }); uc.hoverPop(ui.nozzle, { group: hpops, target: $('pop-nozzle'), xsticky: true });
uc.hoverPop($('app-acct'), { group: hpops, target: $('acct-pop') } ); uc.hoverPop($('app-acct'), { group: hpops, target: $('acct-pop') } );
// uc.hoverPop($('app-mode'), { group: hpops, target: $('mode-info') } ); // uc.hoverPop($('app-mode'), { group: hpops, target: $('mode-info') } );
uc.hoverPop($('app-name'), { group: hpops, target: $('app-info') } ); uc.hoverPop($('app-name'), { group: hpops, target: $('app-info') } );

View file

@ -978,6 +978,7 @@ gapp.register("kiri.ui", [], (root, exports) => {
let group = opt.group || []; let group = opt.group || [];
let closes = opt.closes || group; let closes = opt.closes || group;
let target = opt.target || el; let target = opt.target || el;
let mobile = false;
let popped = false; let popped = false;
group.push(target); group.push(target);
if (closes !== group) { if (closes !== group) {
@ -998,6 +999,14 @@ gapp.register("kiri.ui", [], (root, exports) => {
}; };
if (opt.auto !== false) { if (opt.auto !== false) {
el.addEventListener("mouseenter", openit); el.addEventListener("mouseenter", openit);
el.addEventListener("touchstart", () => {
mobile = true;
if (popped) {
closeit();
} else {
openit();
}
});
} }
el.addEventListener("mouseleave", (ev) => { el.addEventListener("mouseleave", (ev) => {
closes.timer = setTimeout(() => { closes.timer = setTimeout(() => {
@ -1006,6 +1015,9 @@ gapp.register("kiri.ui", [], (root, exports) => {
}); });
if (!opt.sticky) { if (!opt.sticky) {
el.addEventListener("mouseup", (ev) => { el.addEventListener("mouseup", (ev) => {
if (mobile) {
return;
}
if (popped) { if (popped) {
closeit(); closeit();
} else { } else {