diff --git a/nanovna.h b/nanovna.h index dc36f25..1ef3ede 100644 --- a/nanovna.h +++ b/nanovna.h @@ -287,7 +287,7 @@ extern int16_t lastsaveid; extern properties_t *active_props; extern properties_t current_props; -extern uint8_t previous_marker; +extern int8_t previous_marker; #define frequency0 current_props._frequency0 #define frequency1 current_props._frequency1 diff --git a/plot.c b/plot.c index c5b21f4..afc42eb 100644 --- a/plot.c +++ b/plot.c @@ -1291,7 +1291,7 @@ cell_draw_marker_info(int m, int n, int w, int h) cell_drawstring_5x7(w, h, buf, xpos, ypos, 0xffff); // draw marker delta - if (active_marker != previous_marker && markers[previous_marker].enabled) { + if (previous_marker >= 0 && active_marker != previous_marker && markers[previous_marker].enabled) { int idx0 = markers[previous_marker].index; xpos = 192; xpos -= m * CELLWIDTH -CELLOFFSETX; diff --git a/ui.c b/ui.c index 79d3da2..5789ff6 100644 --- a/ui.c +++ b/ui.c @@ -61,7 +61,7 @@ static int8_t inhibit_until_release = FALSE; enum { OP_NONE = 0, OP_LEVER, OP_TOUCH }; uint8_t operation_requested = OP_NONE; -uint8_t previous_marker = 0; +int8_t previous_marker = -1; enum { UI_NORMAL, UI_MENU, UI_NUMERIC, UI_KEYPAD @@ -673,21 +673,19 @@ menu_marker_op_cb(int item) static void menu_marker_sel_cb(int item) { - if (item >= 4) - return; if (item >= 0 && item < 4) { - if (markers[item].enabled) { - markers[item].enabled = FALSE; - if (item == active_marker) { - active_marker = previous_marker; - previous_marker = 0; - } - //choose_active_marker(); - } else { - markers[item].enabled = TRUE; + // enable specified marker + markers[item].enabled = TRUE; + if (previous_marker != active_marker) previous_marker = active_marker; - active_marker = item; - } + active_marker = item; + } else if (item == 4) { /* all off */ + markers[0].enabled = FALSE; + markers[1].enabled = FALSE; + markers[2].enabled = FALSE; + markers[3].enabled = FALSE; + previous_marker = -1; + active_marker = -1; } if (active_marker >= 0) redraw_marker(active_marker, TRUE); @@ -795,6 +793,7 @@ const menuitem_t menu_marker_sel[] = { { MT_CALLBACK, "MARKER 2", menu_marker_sel_cb }, { MT_CALLBACK, "MARKER 3", menu_marker_sel_cb }, { MT_CALLBACK, "MARKER 4", menu_marker_sel_cb }, + { MT_CALLBACK, "ALL OFF", menu_marker_sel_cb }, { MT_CANCEL, S_LARROW" BACK", NULL }, { MT_NONE, NULL, NULL } // sentinel };