summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/bounce.c8
-rw-r--r--apps/plugins/calendar.c19
-rw-r--r--apps/plugins/doom/i_video.c31
-rw-r--r--apps/plugins/goban/goban.h27
-rw-r--r--apps/plugins/pacbox/pacbox.c3
-rw-r--r--apps/plugins/pacbox/pacbox.h20
-rw-r--r--apps/plugins/sokoban.c14
-rw-r--r--apps/plugins/text_editor.c4
-rw-r--r--apps/plugins/zxbox/keymaps.h3
-rw-r--r--apps/plugins/zxbox/zxbox.c6
10 files changed, 91 insertions, 44 deletions
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index 9e0ae7b563..29b1b8fabd 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -467,7 +467,13 @@ static int loopit(void)
467enum plugin_status plugin_start(const void* parameter) 467enum plugin_status plugin_start(const void* parameter)
468{ 468{
469 int w, h; 469 int w, h;
470 char *off = "[Off] to stop"; 470 char *off =
471#if (CONFIG_KEYPAD == SAMSUNG_YH920_PAD) || \
472 (CONFIG_KEYPAD == SAMSUNG_YH820_PAD)
473 "[Rew] to stop";
474#else
475 "[Off] to stop";
476#endif
471 477
472 (void)(parameter); 478 (void)(parameter);
473 479
diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c
index d2744ea9f6..2ce0bed707 100644
--- a/apps/plugins/calendar.c
+++ b/apps/plugins/calendar.c
@@ -191,6 +191,7 @@
191#define CALENDAR_PREV_DAY BUTTON_LEFT 191#define CALENDAR_PREV_DAY BUTTON_LEFT
192#define CALENDAR_NEXT_MONTH BUTTON_BOTTOMRIGHT 192#define CALENDAR_NEXT_MONTH BUTTON_BOTTOMRIGHT
193#define CALENDAR_PREV_MONTH BUTTON_BOTTOMLEFT 193#define CALENDAR_PREV_MONTH BUTTON_BOTTOMLEFT
194#define CALENDAR_EVENT_MENU_NAME "menu"
194 195
195#elif CONFIG_KEYPAD == CREATIVEZVM_PAD 196#elif CONFIG_KEYPAD == CREATIVEZVM_PAD
196#define CALENDAR_QUIT BUTTON_BACK 197#define CALENDAR_QUIT BUTTON_BACK
@@ -211,6 +212,7 @@
211#define CALENDAR_PREV_DAY BUTTON_BACK 212#define CALENDAR_PREV_DAY BUTTON_BACK
212#define CALENDAR_NEXT_MONTH BUTTON_VOL_UP 213#define CALENDAR_NEXT_MONTH BUTTON_VOL_UP
213#define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN 214#define CALENDAR_PREV_MONTH BUTTON_VOL_DOWN
215#define CALENDAR_EVENT_MENU_NAME "play"
214 216
215#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD 217#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
216#define CALENDAR_QUIT BUTTON_POWER 218#define CALENDAR_QUIT BUTTON_POWER
@@ -251,6 +253,7 @@
251#define CALENDAR_PREV_DAY BUTTON_LEFT 253#define CALENDAR_PREV_DAY BUTTON_LEFT
252#define CALENDAR_NEXT_MONTH BUTTON_BOTTOMRIGHT 254#define CALENDAR_NEXT_MONTH BUTTON_BOTTOMRIGHT
253#define CALENDAR_PREV_MONTH BUTTON_BOTTOMLEFT 255#define CALENDAR_PREV_MONTH BUTTON_BOTTOMLEFT
256#define CALENDAR_EVENT_MENU_NAME "menu"
254 257
255#elif (CONFIG_KEYPAD == ONDAVX777_PAD) 258#elif (CONFIG_KEYPAD == ONDAVX777_PAD)
256#define CALENDAR_QUIT BUTTON_POWER 259#define CALENDAR_QUIT BUTTON_POWER
@@ -287,6 +290,7 @@
287#define CALENDAR_PREV_DAY BUTTON_PREV 290#define CALENDAR_PREV_DAY BUTTON_PREV
288#define CALENDAR_NEXT_MONTH BUTTON_PLAY 291#define CALENDAR_NEXT_MONTH BUTTON_PLAY
289#define CALENDAR_PREV_MONTH BUTTON_MENU 292#define CALENDAR_PREV_MONTH BUTTON_MENU
293#define CALENDAR_EVENT_MENU_NAME "FFWD"
290 294
291#elif CONFIG_KEYPAD == MPIO_HD200_PAD 295#elif CONFIG_KEYPAD == MPIO_HD200_PAD
292#define CALENDAR_QUIT (BUTTON_REC|BUTTON_PLAY) 296#define CALENDAR_QUIT (BUTTON_REC|BUTTON_PLAY)
@@ -297,6 +301,7 @@
297#define CALENDAR_PREV_DAY BUTTON_VOL_DOWN 301#define CALENDAR_PREV_DAY BUTTON_VOL_DOWN
298#define CALENDAR_NEXT_MONTH BUTTON_PLAY 302#define CALENDAR_NEXT_MONTH BUTTON_PLAY
299#define CALENDAR_PREV_MONTH BUTTON_REC 303#define CALENDAR_PREV_MONTH BUTTON_REC
304#define CALENDAR_EVENT_MENU_NAME "func"
300 305
301#elif CONFIG_KEYPAD == MPIO_HD300_PAD 306#elif CONFIG_KEYPAD == MPIO_HD300_PAD
302#define CALENDAR_QUIT (BUTTON_MENU|BUTTON_REPEAT) 307#define CALENDAR_QUIT (BUTTON_MENU|BUTTON_REPEAT)
@@ -307,6 +312,7 @@
307#define CALENDAR_PREV_DAY BUTTON_DOWN 312#define CALENDAR_PREV_DAY BUTTON_DOWN
308#define CALENDAR_NEXT_MONTH BUTTON_PLAY 313#define CALENDAR_NEXT_MONTH BUTTON_PLAY
309#define CALENDAR_PREV_MONTH BUTTON_REC 314#define CALENDAR_PREV_MONTH BUTTON_REC
315#define CALENDAR_EVENT_MENU_NAME "enter"
310 316
311#elif CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD 317#elif CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD
312#define CALENDAR_QUIT BUTTON_POWER 318#define CALENDAR_QUIT BUTTON_POWER
@@ -317,6 +323,7 @@
317#define CALENDAR_PREV_DAY BUTTON_LEFT 323#define CALENDAR_PREV_DAY BUTTON_LEFT
318#define CALENDAR_NEXT_MONTH BUTTON_PLAYPAUSE 324#define CALENDAR_NEXT_MONTH BUTTON_PLAYPAUSE
319#define CALENDAR_PREV_MONTH BUTTON_BACK 325#define CALENDAR_PREV_MONTH BUTTON_BACK
326#define CALENDAR_EVENT_MENU_NAME "select"
320 327
321#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD 328#elif CONFIG_KEYPAD == SANSA_CONNECT_PAD
322#define CALENDAR_QUIT BUTTON_POWER 329#define CALENDAR_QUIT BUTTON_POWER
@@ -347,6 +354,7 @@
347#define CALENDAR_PREV_DAY BUTTON_LEFT 354#define CALENDAR_PREV_DAY BUTTON_LEFT
348#define CALENDAR_NEXT_MONTH (BUTTON_RIGHT|BUTTON_POWER) 355#define CALENDAR_NEXT_MONTH (BUTTON_RIGHT|BUTTON_POWER)
349#define CALENDAR_PREV_MONTH (BUTTON_LEFT|BUTTON_POWER) 356#define CALENDAR_PREV_MONTH (BUTTON_LEFT|BUTTON_POWER)
357#define CALENDAR_EVENT_MENU_NAME "select"
350 358
351#elif CONFIG_KEYPAD == HM801_PAD 359#elif CONFIG_KEYPAD == HM801_PAD
352#define CALENDAR_QUIT BUTTON_POWER 360#define CALENDAR_QUIT BUTTON_POWER
@@ -357,6 +365,7 @@
357#define CALENDAR_PREV_DAY BUTTON_LEFT 365#define CALENDAR_PREV_DAY BUTTON_LEFT
358#define CALENDAR_NEXT_MONTH BUTTON_NEXT 366#define CALENDAR_NEXT_MONTH BUTTON_NEXT
359#define CALENDAR_PREV_MONTH BUTTON_PREV 367#define CALENDAR_PREV_MONTH BUTTON_PREV
368#define CALENDAR_EVENT_MENU_NAME "select"
360 369
361#elif CONFIG_KEYPAD == SONY_NWZ_PAD 370#elif CONFIG_KEYPAD == SONY_NWZ_PAD
362#define CALENDAR_QUIT BUTTON_BACK 371#define CALENDAR_QUIT BUTTON_BACK
@@ -387,6 +396,7 @@
387#define CALENDAR_PREV_DAY BUTTON_LEFT 396#define CALENDAR_PREV_DAY BUTTON_LEFT
388#define CALENDAR_NEXT_MONTH BUTTON_BOTTOMRIGHT 397#define CALENDAR_NEXT_MONTH BUTTON_BOTTOMRIGHT
389#define CALENDAR_PREV_MONTH BUTTON_BOTTOMLEFT 398#define CALENDAR_PREV_MONTH BUTTON_BOTTOMLEFT
399#define CALENDAR_EVENT_MENU_NAME "play"
390 400
391#else 401#else
392#error "No keypad setting." 402#error "No keypad setting."
@@ -417,6 +427,13 @@
417#ifndef CALENDAR_PREV_MONTH 427#ifndef CALENDAR_PREV_MONTH
418#define CALENDAR_PREV_MONTH BUTTON_BOTTOMRIGHT 428#define CALENDAR_PREV_MONTH BUTTON_BOTTOMRIGHT
419#endif 429#endif
430#ifndef CALENDAR_EVENT_MENU_NAME
431#define CALENDAR_EVENT_MENU_NAME "select"
432#endif
433#endif
434
435#ifndef CALENDAR_EVENT_MENU_NAME
436#define CALENDAR_EVENT_MENU_NAME "right"
420#endif 437#endif
421 438
422#define MEMO_FILE PLUGIN_APPS_DATA_DIR "/.memo" 439#define MEMO_FILE PLUGIN_APPS_DATA_DIR "/.memo"
@@ -910,7 +927,7 @@ static bool view_events(int selected, struct shown *shown)
910 int button; 927 int button;
911 928
912 rb->gui_synclist_init(&gui_memos, &get_event_text, shown, false, 1, NULL); 929 rb->gui_synclist_init(&gui_memos, &get_event_text, shown, false, 1, NULL);
913 rb->gui_synclist_set_title(&gui_memos, "Events (play : menu)", NOICON); 930 rb->gui_synclist_set_title(&gui_memos, "Events (" CALENDAR_EVENT_MENU_NAME " : menu)", NOICON);
914 rb->gui_synclist_set_nb_items(&gui_memos, memos_in_shown_memory); 931 rb->gui_synclist_set_nb_items(&gui_memos, memos_in_shown_memory);
915 rb->gui_synclist_select_item(&gui_memos, selected); 932 rb->gui_synclist_select_item(&gui_memos, selected);
916 rb->gui_synclist_draw(&gui_memos); 933 rb->gui_synclist_draw(&gui_memos);
diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c
index c97dce9821..8f13f4b9cd 100644
--- a/apps/plugins/doom/i_video.c
+++ b/apps/plugins/doom/i_video.c
@@ -402,10 +402,9 @@ void I_ShutdownGraphics(void)
402#define DOOMBUTTON_RIGHT BUTTON_RIGHT 402#define DOOMBUTTON_RIGHT BUTTON_RIGHT
403#define DOOMBUTTON_SHOOT BUTTON_PLAY 403#define DOOMBUTTON_SHOOT BUTTON_PLAY
404#define DOOMBUTTON_OPEN BUTTON_REW 404#define DOOMBUTTON_OPEN BUTTON_REW
405#define DOOMBUTTON_ESC BUTTON_REC_SW_ON
406#define DOOMBUTTON_ESC2 BUTTON_REC_SW_OFF
407#define DOOMBUTTON_ENTER BUTTON_PLAY 405#define DOOMBUTTON_ENTER BUTTON_PLAY
408#define DOOMBUTTON_WEAPON BUTTON_FFWD 406#define DOOMBUTTON_WEAPON BUTTON_FFWD
407#define DOOMBUTTON_REC_SWITCH /* record switch toggles run mode; in game menu via hold switch */
409 408
410#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD 409#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
411#define DOOMBUTTON_UP BUTTON_UP 410#define DOOMBUTTON_UP BUTTON_UP
@@ -618,7 +617,7 @@ static inline void getkey()
618 hswitch=0; 617 hswitch=0;
619 } 618 }
620#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 619#if (CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
621 (CONFIG_KEYPAD == IPOD_1G2G_PAD) 620 (CONFIG_KEYPAD == IPOD_1G2G_PAD) || (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
622 /* Bring up the menu */ 621 /* Bring up the menu */
623 event.data1=KEY_ESCAPE; 622 event.data1=KEY_ESCAPE;
624#else 623#else
@@ -630,10 +629,12 @@ static inline void getkey()
630 holdbutton=rb->button_hold(); 629 holdbutton=rb->button_hold();
631#endif 630#endif
632 631
633#ifdef DOOMBUTTON_SCROLLWHEEL 632#if defined(DOOMBUTTON_SCROLLWHEEL) || defined(DOOMBUTTON_REC_SWITCH)
634 /* use button_get(false) for clickwheel checks */ 633 /* use button_get(false) for clickwheel checks */
635 int button; /* move me */ 634 int button; /* move me */
636 button = rb->button_get(false); 635 button = rb->button_get(false);
636
637#ifdef DOOMBUTTON_SCROLLWHEEL
637 switch(button){ 638 switch(button){
638 case DOOMBUTTON_SCROLLWHEEL_CC | BUTTON_REPEAT: 639 case DOOMBUTTON_SCROLLWHEEL_CC | BUTTON_REPEAT:
639 case DOOMBUTTON_SCROLLWHEEL_CC: 640 case DOOMBUTTON_SCROLLWHEEL_CC:
@@ -649,6 +650,16 @@ static inline void getkey()
649 D_PostEvent(&event); 650 D_PostEvent(&event);
650 break; 651 break;
651 } 652 }
653#endif
654#ifdef DOOMBUTTON_REC_SWITCH
655 if (button==BUTTON_REC_SW_ON || button==BUTTON_REC_SW_OFF) {
656 event.type = ev_keydown;
657 event.data1=KEY_CAPSLOCK; /* Enable run */
658 D_PostEvent(&event);
659 event.type = ev_keyup;
660 D_PostEvent(&event);
661 }
662#endif
652#endif 663#endif
653 newbuttonstate = rb->button_status(); 664 newbuttonstate = rb->button_status();
654#ifdef DOOMBUTTON_SCROLLWHEEL 665#ifdef DOOMBUTTON_SCROLLWHEEL
@@ -696,11 +707,7 @@ static inline void getkey()
696 D_PostEvent(&event); 707 D_PostEvent(&event);
697 } 708 }
698#ifdef DOOMBUTTON_ESC 709#ifdef DOOMBUTTON_ESC
699 if(released & DOOMBUTTON_ESC 710 if(released & DOOMBUTTON_ESC)
700#ifdef DOOMBUTTON_ESC2
701 || released & DOOMBUTTON_ESC2
702#endif
703 )
704 { 711 {
705 event.data1=KEY_ESCAPE; 712 event.data1=KEY_ESCAPE;
706 D_PostEvent(&event); 713 D_PostEvent(&event);
@@ -762,11 +769,7 @@ static inline void getkey()
762 D_PostEvent(&event); 769 D_PostEvent(&event);
763 } 770 }
764#ifdef DOOMBUTTON_ESC 771#ifdef DOOMBUTTON_ESC
765 if(pressed & DOOMBUTTON_ESC 772 if(pressed & DOOMBUTTON_ESC)
766#ifdef DOOMBUTTON_ESC2
767 || pressed & DOOMBUTTON_ESC2
768#endif
769 )
770 { 773 {
771 event.data1=KEY_ESCAPE; 774 event.data1=KEY_ESCAPE;
772 D_PostEvent(&event); 775 D_PostEvent(&event);
diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h
index 75196a5d15..93fdf503e6 100644
--- a/apps/plugins/goban/goban.h
+++ b/apps/plugins/goban/goban.h
@@ -318,18 +318,29 @@
318#define GBN_BUTTON_PLAY BUTTON_MENU | BUTTON_REL 318#define GBN_BUTTON_PLAY BUTTON_MENU | BUTTON_REL
319#define GBN_BUTTON_NAV_MODE BUTTON_OFF 319#define GBN_BUTTON_NAV_MODE BUTTON_OFF
320 320
321#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD) || \ 321#elif (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
322 (CONFIG_KEYPAD == SAMSUNG_YH920_PAD)
323#define GBN_BUTTON_UP BUTTON_UP 322#define GBN_BUTTON_UP BUTTON_UP
324#define GBN_BUTTON_DOWN BUTTON_DOWN 323#define GBN_BUTTON_DOWN BUTTON_DOWN
325#define GBN_BUTTON_LEFT BUTTON_LEFT 324#define GBN_BUTTON_LEFT BUTTON_LEFT
326#define GBN_BUTTON_RIGHT BUTTON_RIGHT 325#define GBN_BUTTON_RIGHT BUTTON_RIGHT
327#define GBN_BUTTON_RETREAT BUTTON_REW 326#define GBN_BUTTON_RETREAT BUTTON_FFWD | BUTTON_LEFT
328#define GBN_BUTTON_ADVANCE BUTTON_FFWD 327#define GBN_BUTTON_ADVANCE BUTTON_FFWD | BUTTON_RIGHT
329#define GBN_BUTTON_MENU BUTTON_PLAY | BUTTON_LEFT 328#define GBN_BUTTON_MENU BUTTON_REW
330#define GBN_BUTTON_PLAY BUTTON_PLAY 329#define GBN_BUTTON_PLAY BUTTON_PLAY | BUTTON_REL
331#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_DOWN 330#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT
332#define GBN_BUTTON_NEXT_VAR BUTTON_PLAY | BUTTON_UP 331#define GBN_BUTTON_NEXT_VAR BUTTON_FFWD | BUTTON_UP
332
333#elif (CONFIG_KEYPAD == SAMSUNG_YH820_PAD)
334#define GBN_BUTTON_UP BUTTON_UP
335#define GBN_BUTTON_DOWN BUTTON_DOWN
336#define GBN_BUTTON_LEFT BUTTON_LEFT
337#define GBN_BUTTON_RIGHT BUTTON_RIGHT
338#define GBN_BUTTON_RETREAT BUTTON_REC | BUTTON_LEFT
339#define GBN_BUTTON_ADVANCE BUTTON_REC | BUTTON_RIGHT
340#define GBN_BUTTON_MENU BUTTON_REW
341#define GBN_BUTTON_PLAY BUTTON_PLAY | BUTTON_REL
342#define GBN_BUTTON_CONTEXT BUTTON_PLAY | BUTTON_REPEAT
343#define GBN_BUTTON_NEXT_VAR BUTTON_REC | BUTTON_UP
333 344
334#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD) 345#elif (CONFIG_KEYPAD == PBELL_VIBE500_PAD)
335#define GBN_BUTTON_UP BUTTON_UP 346#define GBN_BUTTON_UP BUTTON_UP
diff --git a/apps/plugins/pacbox/pacbox.c b/apps/plugins/pacbox/pacbox.c
index cc5b5ef76d..efba47b576 100644
--- a/apps/plugins/pacbox/pacbox.c
+++ b/apps/plugins/pacbox/pacbox.c
@@ -391,9 +391,6 @@ static int gameProc( void )
391#ifdef PACMAN_RC_MENU 391#ifdef PACMAN_RC_MENU
392 || status == PACMAN_RC_MENU 392 || status == PACMAN_RC_MENU
393#endif 393#endif
394#ifdef PACMAN_MENU2
395 || status == PACMAN_MENU2
396#endif
397 ) { 394 ) {
398 bool menu_res; 395 bool menu_res;
399 396
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h
index 5fcb51eb79..b46eaed7c1 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -234,22 +234,20 @@
234 234
235#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD 235#elif CONFIG_KEYPAD == SAMSUNG_YH920_PAD
236 236
237#define PACMAN_UP BUTTON_UP 237#define PACMAN_UP BUTTON_RIGHT
238#define PACMAN_DOWN BUTTON_DOWN 238#define PACMAN_DOWN BUTTON_LEFT
239#define PACMAN_LEFT BUTTON_LEFT 239#define PACMAN_LEFT BUTTON_UP
240#define PACMAN_RIGHT BUTTON_RIGHT 240#define PACMAN_RIGHT BUTTON_DOWN
241#define PACMAN_1UP BUTTON_FFWD 241#define PACMAN_1UP BUTTON_FFWD
242#define PACMAN_2UP BUTTON_REW
243#define PACMAN_COIN BUTTON_PLAY 242#define PACMAN_COIN BUTTON_PLAY
244#define PACMAN_MENU BUTTON_REC_SW_ON 243#define PACMAN_MENU BUTTON_REW
245#define PACMAN_MENU2 BUTTON_REC_SW_OFF
246 244
247#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD 245#elif CONFIG_KEYPAD == SAMSUNG_YH820_PAD
248 246
249#define PACMAN_UP BUTTON_UP 247#define PACMAN_UP BUTTON_RIGHT
250#define PACMAN_DOWN BUTTON_DOWN 248#define PACMAN_DOWN BUTTON_LEFT
251#define PACMAN_LEFT BUTTON_LEFT 249#define PACMAN_LEFT BUTTON_UP
252#define PACMAN_RIGHT BUTTON_RIGHT 250#define PACMAN_RIGHT BUTTON_DOWN
253#define PACMAN_1UP BUTTON_FFWD 251#define PACMAN_1UP BUTTON_FFWD
254#define PACMAN_2UP BUTTON_REW 252#define PACMAN_2UP BUTTON_REW
255#define PACMAN_COIN BUTTON_PLAY 253#define PACMAN_COIN BUTTON_PLAY
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index 76eb6288cd..f085e1bff2 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -495,7 +495,8 @@
495#define SOKOBAN_RIGHT BUTTON_RIGHT 495#define SOKOBAN_RIGHT BUTTON_RIGHT
496#define SOKOBAN_UP BUTTON_UP 496#define SOKOBAN_UP BUTTON_UP
497#define SOKOBAN_DOWN BUTTON_DOWN 497#define SOKOBAN_DOWN BUTTON_DOWN
498#define SOKOBAN_MENU BUTTON_PLAY 498#define SOKOBAN_MENU_PRE BUTTON_PLAY
499#define SOKOBAN_MENU (BUTTON_PLAY | BUTTON_REL)
499#define SOKOBAN_UNDO BUTTON_REW 500#define SOKOBAN_UNDO BUTTON_REW
500#define SOKOBAN_REDO BUTTON_FFWD 501#define SOKOBAN_REDO BUTTON_FFWD
501#define SOKOBAN_LEVEL_DOWN (BUTTON_PLAY | BUTTON_DOWN) 502#define SOKOBAN_LEVEL_DOWN (BUTTON_PLAY | BUTTON_DOWN)
@@ -1690,7 +1691,7 @@ static bool sokoban_loop(void)
1690{ 1691{
1691 bool moved; 1692 bool moved;
1692 int i = 0, button = 0; 1693 int i = 0, button = 0;
1693#if defined(SOKOBAN_UNDO_PRE) 1694#if defined(SOKOBAN_UNDO_PRE) || defined(SOKOBAN_MENU_PRE)
1694 int lastbutton = 0; 1695 int lastbutton = 0;
1695#endif 1696#endif
1696 int w, h; 1697 int w, h;
@@ -1703,10 +1704,15 @@ static bool sokoban_loop(void)
1703 1704
1704 switch(button) 1705 switch(button)
1705 { 1706 {
1707 case SOKOBAN_MENU:
1708#ifdef SOKOBAN_MENU_PRE
1709 if (lastbutton != SOKOBAN_MENU_PRE)
1710 break;
1711 /* fallthrough */
1712#endif
1706#ifdef SOKOBAN_RC_MENU 1713#ifdef SOKOBAN_RC_MENU
1707 case SOKOBAN_RC_MENU: 1714 case SOKOBAN_RC_MENU:
1708#endif 1715#endif
1709 case SOKOBAN_MENU:
1710 switch (sokoban_menu()) { 1716 switch (sokoban_menu()) {
1711 case 5: /* Quit */ 1717 case 5: /* Quit */
1712 case 6: /* Save & quit */ 1718 case 6: /* Save & quit */
@@ -1794,7 +1800,7 @@ static bool sokoban_loop(void)
1794 return PLUGIN_USB_CONNECTED; 1800 return PLUGIN_USB_CONNECTED;
1795 break; 1801 break;
1796 } 1802 }
1797#if defined(SOKOBAN_UNDO_PRE) 1803#if defined(SOKOBAN_UNDO_PRE) || defined(SOKOBAN_MENU_PRE)
1798 lastbutton = button; 1804 lastbutton = button;
1799#endif 1805#endif
1800 1806
diff --git a/apps/plugins/text_editor.c b/apps/plugins/text_editor.c
index 6c1136cf48..75a877cf95 100644
--- a/apps/plugins/text_editor.c
+++ b/apps/plugins/text_editor.c
@@ -457,6 +457,9 @@ enum plugin_status plugin_start(const void* parameter)
457 } 457 }
458 break; 458 break;
459 case ACTION_STD_CONTEXT: 459 case ACTION_STD_CONTEXT:
460/* These targets have unintuitive STD_MENU keymaps, so we use context keymap instead;
461 We don't need the "delete line" action, since this can be done via the menu. */
462#if !(defined(SAMSUNG_YH920_PAD) || defined(SAMSUNG_YH820_PAD))
460 if (!line_count) break; 463 if (!line_count) break;
461 rb->strlcpy(copy_buffer, do_action(ACTION_GET, 0, cur_sel), 464 rb->strlcpy(copy_buffer, do_action(ACTION_GET, 0, cur_sel),
462 MAX_LINE_LEN); 465 MAX_LINE_LEN);
@@ -464,6 +467,7 @@ enum plugin_status plugin_start(const void* parameter)
464 changed = true; 467 changed = true;
465 break; 468 break;
466 case ACTION_STD_MENU: 469 case ACTION_STD_MENU:
470#endif
467 { 471 {
468 /* do the item menu */ 472 /* do the item menu */
469 switch (do_item_menu(cur_sel)) 473 switch (do_item_menu(cur_sel))
diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h
index bdbe4f93ad..0ff3f6c830 100644
--- a/apps/plugins/zxbox/keymaps.h
+++ b/apps/plugins/zxbox/keymaps.h
@@ -198,7 +198,8 @@
198#define ZX_LEFT BUTTON_LEFT 198#define ZX_LEFT BUTTON_LEFT
199#define ZX_RIGHT BUTTON_RIGHT 199#define ZX_RIGHT BUTTON_RIGHT
200#define ZX_SELECT BUTTON_PLAY 200#define ZX_SELECT BUTTON_PLAY
201#define ZX_MENU BUTTON_FFWD 201#define ZX_SELECT2 BUTTON_FFWD
202#define ZX_MENU BUTTON_REW
202 203
203#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD 204#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD
204 205
diff --git a/apps/plugins/zxbox/zxbox.c b/apps/plugins/zxbox/zxbox.c
index 81a79dc70a..d618243b92 100644
--- a/apps/plugins/zxbox/zxbox.c
+++ b/apps/plugins/zxbox/zxbox.c
@@ -187,7 +187,11 @@ void spkb_process_events( int evenframe )
187 spkb_kbstate[ki].state = 0; 187 spkb_kbstate[ki].state = 0;
188 } 188 }
189 189
190 if ( buttons & ZX_SELECT ){ 190 if ( buttons & ZX_SELECT
191#ifdef ZX_SELECT2
192 || buttons & ZX_SELECT2
193#endif
194 ){
191 ki = KS_TO_KEY(SK_KP_Insert); 195 ki = KS_TO_KEY(SK_KP_Insert);
192 spkb_kbstate[ki].state = 1; 196 spkb_kbstate[ki].state = 1;
193 } 197 }