diff --git a/apps/clock_info/lib.js b/apps/clock_info/lib.js index 173b44e5d..3799dcb73 100644 --- a/apps/clock_info/lib.js +++ b/apps/clock_info/lib.js @@ -288,10 +288,16 @@ exports.addInteractive = function(menu, options) { options.focus=false; delete Bangle.CLKINFO_FOCUS; options.redraw(); + const itm = menu[options.menuA].items[options.menuB]; + if (itm.unfocus) itm.unfocus(options); }; const focus = (redraw) => { - options.focus=true; - Bangle.CLKINFO_FOCUS=true; + if (!options.focus) { + options.focus=true; + Bangle.CLKINFO_FOCUS=true; + const itm = menu[options.menuA].items[options.menuB]; + if (itm.focus) itm.focus(options); + } if (redraw) options.redraw(); }; let touchHandler, lockHandler; diff --git a/typescript/types/clock_info.d.ts b/typescript/types/clock_info.d.ts index fbdb3354c..ea62e5602 100644 --- a/typescript/types/clock_info.d.ts +++ b/typescript/types/clock_info.d.ts @@ -15,6 +15,8 @@ declare module ClockInfo { hide(options: InteractiveOptions): void, on(what: "redraw", cb: () => void): void, // extending from Object run?(options: InteractiveOptions): void, + focus?(options: InteractiveOptions): void, + unfocus?(options: InteractiveOptions): void, } & ( { hasRange: true,