diff --git a/exec/avatar_chooser.js b/exec/avatar_chooser.js index 6b1cd40f761194b62b59e4d40509551c588326be..625ae9597bd9c161e6cb45a35987de04eac2fed5 100644 --- a/exec/avatar_chooser.js +++ b/exec/avatar_chooser.js @@ -270,6 +270,8 @@ function CollectionBrowser(filename, parent_frame) { highlight(); } } + } else if (clicked_quit(cmd, frames.parent)) { + ret = -1; } else { switch (cmd.key.toLowerCase()) { case KEY_LEFT: @@ -481,7 +483,7 @@ function CollectionLister(dir, parent_frame) { state.collection = null; } } else { - if (cmd.key.toLowerCase() == 'q') { + if (cmd.key.toLowerCase() == 'q' || clicked_quit(cmd, frames.parent)) { return false; } else if (cmd.key == KEY_LEFT) { var num_avatars = Math.floor(state.tree.currentItem.sauce.filesize / avatar_lib.size); @@ -806,7 +808,7 @@ function MainMenu(parent_frame) { state.opt_out_item.hide(); } } - } else if (cmd.key.toLowerCase() == 'q') { + } else if (cmd.key.toLowerCase() == 'q' || clicked_quit(cmd, frames.parent)) { return false; } else { state.tree.getcmd(cmd); @@ -832,6 +834,17 @@ function MainMenu(parent_frame) { } +function clicked_quit(i, frame) { + if (i.mouse === null) return false; + if (!i.mouse.press) return false; + if (i.mouse.button != 0) return false; + if (i.mouse.y != frame.y + frame.height - 1) return false; + var sx = frame.x + frame.width - 20; + var ex = frame.x + frame.width - 4; + if (i.mouse.x < sx || i.mouse.x > ex) return false; + return true; +} + var sys_status, console_attr; function init() { @@ -866,7 +879,7 @@ function main() { menu.open(); while (true) { var i = mouse_getkey(K_NONE, 5, true); //console.inkey(K_NONE); - if (!menu.getcmd(i)) break; + if ((i.key != '' || (i.mouse && i.mouse.press)) && !menu.getcmd(i)) break; menu.cycle(); if (frame.cycle()) bury_cursor(); }