Skip to content

Commit 8351402

Browse files
committed
#219 was missing navFocus reset
1 parent 8a2d053 commit 8351402

File tree

6 files changed

+17
-9
lines changed

6 files changed

+17
-9
lines changed

examples/Serial/serialio/serialio/serialio.ino

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -153,13 +153,14 @@ result doAlert(eventMask e, prompt &item) {
153153
return proceed;
154154
}
155155

156-
//when menu is suspended
157156
result idle(menuOut &o, idleEvent e) {
158157
// o.clear();
159158
switch(e) {
160159
case idleStart:o.println("suspending menu!");break;
161160
case idling:o.println("suspended...");break;
162-
case idleEnd:o.println("resuming menu.");break;
161+
case idleEnd:o.println("resuming menu.");
162+
nav.reset();
163+
break;
163164
}
164165
return proceed;
165166
}
@@ -171,8 +172,9 @@ void setup() {
171172
Serial.begin(115200);
172173
while(!Serial);
173174
Serial.println("menu 4.x test");Serial.flush();
174-
//nav.idleTask=idle;//point a function to be used when menu is suspended
175-
//nav.idleOn();//this menu will start on idle state, press select to enter menu
175+
nav.timeOut=3;
176+
nav.idleTask=idle;//point a function to be used when menu is suspended
177+
// nav.idleOn();//this menu will start on idle state, press select to enter menu
176178
//nav.doInput("323");
177179
// nav.useAccel=false;
178180
}

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=ArduinoMenu library
2-
version=4.15.7
2+
version=4.15.8
33
author=Rui Azevedo, [email protected]
44
maintainer=neu-rah, [email protected]
55
sentence=Generic menu/interactivity system

src/menuIo.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,9 @@ void outputsList::clearChanged(navNode& nav) const {
192192
void outputsList::clear() {
193193
for(int n=0;n<cnt;n++) ((menuOut*)memPtr(outs[n]))->clear();
194194
}
195+
// void outputsList::reset() {
196+
// for(int n=0;n<cnt;n++) ((menuOut*)memPtr(outs[n]))->reset();
197+
// }
195198
void outputsList::doNav(navCmd cmd,class navNode &nav) {
196199
for(int n=0;n<cnt;n++) ((menuOut*)memPtr(outs[n]))->doNav(cmd,nav);
197200
}

src/menuIo.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
idx_t maxX(idx_t i=0) const;
7575
idx_t maxY(idx_t i=0) const;
7676
idx_t& top(navNode& nav) const;
77+
// inline void reset() {panelsList.reset();}
7778
inline idx_t printRaw(const __FlashStringHelper* at,idx_t len) {
7879
return printRaw((const char*)at,len);
7980
}
@@ -166,6 +167,7 @@
166167
void refresh();//force redraw of all outputs on next output call
167168
void clearChanged(navNode& nav) const;
168169
void clear();
170+
// void reset();
169171
void doNav(navCmd cmd,class navNode &nav);
170172
result idle(idleFunc f,idleEvent e,bool idleChanged=false);
171173
};

src/nav.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,7 @@ void navRoot::initPath(idx_t d) {
125125
path[n].root=this;
126126
}
127127
void navRoot::useMenu(menuNode &menu) {
128-
navFocus=&menu;
129-
path[0].target=&menu;
128+
path[0].useMenu(menu);
130129
reset();
131130
refresh();
132131
}
@@ -161,7 +160,7 @@ void navRoot::doOutput() {
161160
bool c=idleChanged;
162161
idleChanged=false;//turn it off here so that sleepTask can force it on again
163162
out.idle(sleepTask,idling,c);
164-
#ifdef MENU_IDLE_BKGND
163+
#ifdef MENU_IDLE_BKGND//cascade menu sysrtem idle behind user idle task
165164
if (idleTask!=sleepTask) out.idle(idleTask,idling);
166165
#endif
167166
}

src/nav.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@
9999
void useMenu(menuNode &menu);
100100
inline void reset() {
101101
level=0;
102-
path[0].sel=0;
102+
navFocus=path[level].target;
103+
path[level].reset();
104+
refresh();
103105
}
104106
inline void refresh() {out.refresh();}
105107
inline navNode& node() const {return path[level];}

0 commit comments

Comments
 (0)