1313
1414MenuManager menuMgr;
1515
16- void MenuManager::initForUpDownOk (MenuRenderer* renderer, MenuItem* root, pinid_t pinUp , pinid_t pinDown , pinid_t pinOk) {
16+ void MenuManager::initForUpDownOk (MenuRenderer* renderer, MenuItem* root, pinid_t pinDown , pinid_t pinUp , pinid_t pinOk) {
1717 this ->renderer = renderer;
1818 this ->currentRoot = this ->rootMenu = root;
1919
@@ -70,7 +70,6 @@ void MenuManager::performDirectionMove(bool dirIsBack) {
7070 setCurrentMenu (currentActive);
7171 }
7272 }
73-
7473}
7574
7675void MenuManager::initWithoutInput (MenuRenderer* renderer, MenuItem* root) {
@@ -204,6 +203,7 @@ void MenuManager::stopEditingCurrentItem(bool doMultiPartNext) {
204203 currentEditor = nullptr ;
205204 setItemsInCurrentMenu (itemCount (menuMgr.getCurrentMenu ()) - 1 , offsetOfCurrentActive (menuMgr.getCurrentMenu ()));
206205
206+
207207 if (renderer->getRendererType () == RENDERER_TYPE_BASE) {
208208 auto * baseRenderer = reinterpret_cast <BaseMenuRenderer*>(renderer);
209209 baseRenderer->redrawRequirement (MENUDRAW_EDITOR_CHANGE);
@@ -243,6 +243,7 @@ void MenuManager::setupForEditing(MenuItem* item) {
243243 currentEditor = item;
244244 currentEditor->setEditing (true );
245245 switches.changeEncoderPrecision (item->getMaximumValue (), reinterpret_cast <ValueMenuItem*>(currentEditor)->getCurrentValue ());
246+ switches.getEncoder ()->setUserIntention (CHANGE_VALUE);
246247 }
247248 else if (ty == MENUTYPE_BOOLEAN_VALUE) {
248249 // we don't actually edit boolean items, just toggle them instead
@@ -259,6 +260,7 @@ void MenuManager::setupForEditing(MenuItem* item) {
259260 }
260261 else if (isMenuRuntimeMultiEdit (item)) {
261262 if (!notifyEditStarting (item)) return ;
263+ switches.getEncoder ()->setUserIntention (CHANGE_VALUE);
262264 currentEditor = item;
263265 auto * editableItem = reinterpret_cast <EditableMultiPartMenuItem<void *>*>(item);
264266 editableItem->beginMultiEdit ();
@@ -358,4 +360,11 @@ void MenuManager::notifyStructureChanged() {
358360 i->structureHasChanged ();
359361 }
360362 }
361- }
363+ }
364+
365+ void MenuManager::setItemsInCurrentMenu (int size, int offs) {
366+ auto enc = switches.getEncoder ();
367+ if (!enc) return ;
368+ enc->changePrecision (size, offs);
369+ enc->setUserIntention (SCROLL_THROUGH_ITEMS);
370+ }
0 commit comments