diff --git a/apps/keymaps/keymap-clip.c b/apps/keymaps/keymap-clip.c
index 0caf0de..d31ebb7 100755
--- a/apps/keymaps/keymap-clip.c
+++ b/apps/keymaps/keymap-clip.c
@@ -254,7 +254,9 @@ static const struct button_mapping button_context_radio[] = {
{ ACTION_SETTINGS_INCREPEAT,BUTTON_VOL_UP|BUTTON_REPEAT, BUTTON_NONE },
{ ACTION_SETTINGS_DEC, BUTTON_VOL_DOWN, BUTTON_NONE },
{ ACTION_SETTINGS_DECREPEAT,BUTTON_VOL_DOWN|BUTTON_REPEAT, BUTTON_NONE },
-
+#ifndef HAS_BUTTON_HOLD /* Clip+ */
+ { ACTION_STD_KEYLOCK, BUTTON_HOME|BUTTON_SELECT, BUTTON_NONE },
+#endif /* HAS_BUTTON_HOLD */
LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_SETTINGS)
}; /* button_context_radio */
diff --git a/apps/radio/radio.c b/apps/radio/radio.c
index 326e6a3..cabb244 100644
--- a/apps/radio/radio.c
+++ b/apps/radio/radio.c
@@ -354,6 +354,10 @@ static void end_search(void)
search_dir = 0;
}
+#ifndef HAS_BUTTON_HOLD
+int soft_hold_enable = 0;
+#endif
+
void radio_screen(void)
{
bool done = false;
@@ -476,6 +480,15 @@ void radio_screen(void)
button_timeout = current_tick + (2*HZ);
}
#endif
+
+#ifndef HAS_BUTTON_HOLD
+ if (button == ACTION_STD_KEYLOCK)
+ {
+ soft_hold_enable = !soft_hold_enable;
+ }
+ if(soft_hold_enable)
+ break;
+#endif
switch(button)
{
case ACTION_FM_STOP: