pass pop menu clicks to children. handle touch pop ops for cam

This commit is contained in:
Stewart Allen 2022-10-17 15:16:26 -04:00
commit 4c5cb4925e
2 changed files with 31 additions and 8 deletions

View file

@ -352,13 +352,14 @@ CAM.init = function(kiri, api) {
let timer = null; let timer = null;
let inside = true; let inside = true;
let poprec = popOp[rec.type]; let poprec = popOp[rec.type];
el.rec = rec;
el.unpop = () => { el.unpop = () => {
let pos = [...el.childNodes].indexOf(poprec.div); let pos = [...el.childNodes].indexOf(poprec.div);
if (pos >= 0) { if (pos >= 0) {
el.removeChild(poprec.div); el.removeChild(poprec.div);
} }
}; };
el.onmouseenter = (ev) => { function onEnter(ev) {
if (poppedRec && poppedRec != rec) { if (poppedRec && poppedRec != rec) {
func.surfaceDone(); func.surfaceDone();
func.traceDone(); func.traceDone();
@ -377,8 +378,8 @@ CAM.init = function(kiri, api) {
setTimeout(() => { setTimeout(() => {
UC.setSticky(false); UC.setSticky(false);
}, 0); }, 0);
}; }
el.onmouseleave = () => { function onLeave(ev) {
inside = false; inside = false;
clearTimeout(timer); clearTimeout(timer);
timer = setTimeout(() => { timer = setTimeout(() => {
@ -386,9 +387,8 @@ CAM.init = function(kiri, api) {
el.unpop(); el.unpop();
} }
}, 250); }, 250);
}; }
el.rec = rec; function onDown(ev) {
el.onmousedown = (ev) => {
func.surfaceDone(); func.surfaceDone();
func.traceDone(); func.traceDone();
let target = ev.target, clist = target.classList; let target = ev.target, clist = target.classList;
@ -451,7 +451,26 @@ CAM.init = function(kiri, api) {
} }
} }
}; };
}; }
if (moto.space.info.mob) {
el.ontouchstart = (ev) => {
if (poppedRec === rec) {
onLeave(ev);
} else {
onEnter(ev);
}
};
// el.ontouchmove = (ev) => {
// console.log('touch.move');
// };
// el.ontouchend = (ev) => {
// console.log('touch.end');
// };
} else {
el.onmousedown = onDown;
el.onmouseenter = onEnter;
el.onmouseleave = onLeave;
}
} }
}); });

View file

@ -999,7 +999,11 @@ 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", () => { el.addEventListener("touchstart", (ev) => {
if (ev.target.onclick) {
// pass action clicks on children
ev.target.onclick(ev);
}
mobile = true; mobile = true;
if (popped) { if (popped) {
closeit(); closeit();