danoniplus 47.6.0 → 47.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/js/danoni_main.js +85 -73
- package/js/lib/danoni_constants.js +3 -1
- package/package.json +1 -1
package/js/danoni_main.js
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Source by tickle
|
|
6
6
|
* Created : 2018/10/08
|
|
7
|
-
* Revised : 2026/05/
|
|
7
|
+
* Revised : 2026/05/13
|
|
8
8
|
*
|
|
9
9
|
* https://github.com/cwtickle/danoniplus
|
|
10
10
|
*/
|
|
11
|
-
const g_version = `Ver 47.6.
|
|
12
|
-
const g_revisedDate = `2026/05/
|
|
11
|
+
const g_version = `Ver 47.6.1`;
|
|
12
|
+
const g_revisedDate = `2026/05/13`;
|
|
13
13
|
|
|
14
14
|
// カスタム用バージョン (danoni_custom.js 等で指定可)
|
|
15
15
|
let g_localVersion = ``;
|
|
@@ -10396,6 +10396,9 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
10396
10396
|
altFill: `#3e3e1a`, // 代替キー背景
|
|
10397
10397
|
altStroke: `#777755`, // 代替キー枠
|
|
10398
10398
|
altText: `#eeeecc`, // 代替キー文字
|
|
10399
|
+
shortcutFill: `#330011`, // ショートカットキー背景
|
|
10400
|
+
shortcutStroke: `#ff4466`, // ショートカットキー枠
|
|
10401
|
+
shortcutText: `#ffaacc`, // ショートカットキー文字
|
|
10399
10402
|
bgFill: `#0d0d1a`, // Canvas 背景
|
|
10400
10403
|
legendText: `#888899`, // 凡例テキスト
|
|
10401
10404
|
};
|
|
@@ -10418,35 +10421,20 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
10418
10421
|
// キーレイアウト定義
|
|
10419
10422
|
//
|
|
10420
10423
|
// 各行: { offsetX, keys }
|
|
10421
|
-
// offsetX : 行左端の水平オフセット(単位: BASE_KEY_W
|
|
10424
|
+
// offsetX : 行左端の水平オフセット(単位: BASE_KEY_W)。全行 0 で統一し、
|
|
10425
|
+
// L)Shift の幅で行頭位置を調整する。
|
|
10422
10426
|
// keys : キー定義の配列
|
|
10423
10427
|
//
|
|
10424
|
-
// 各キー: { kc, w
|
|
10428
|
+
// 各キー: { kc, w?, h?, label? }
|
|
10425
10429
|
// kc : keyCode(数値)。-1 はスペーサー(描画・キャッシュなし)。
|
|
10426
10430
|
// w : 幅倍率(BASE_KEY_W 基準。省略時 1)
|
|
10427
|
-
// h :
|
|
10431
|
+
// h : 高さ倍率(BASE_KEY_H 基準。省略時 1)
|
|
10428
10432
|
// label : 省略時は g_kCd[kc] を参照。g_kCd が空文字のキーや
|
|
10429
10433
|
// 左右を区別したいキーに指定する。
|
|
10430
10434
|
//
|
|
10431
10435
|
// 右Shift/Ctrl/Alt は danoniplus 独自コード 256〜258 を使用。
|
|
10436
|
+
// Appli キーは 93 を使用(g_kCd[93] = `Appli`)。
|
|
10432
10437
|
// -------------------------------------------------------------------------
|
|
10433
|
-
|
|
10434
|
-
// メインキーボード部(Fn行 + 数字行 + QWERTY + ASDF + ZXCV + スペース行)
|
|
10435
|
-
//
|
|
10436
|
-
// 各行の offsetX 設計(1u = BASE_KEY_W):
|
|
10437
|
-
// Fn行 0u Esc が左端
|
|
10438
|
-
// 数字行 0u 229(IME/`) が左端
|
|
10439
|
-
// QWERTY 0u Tab(1.5u) が左端、左端位置は数字行と揃う
|
|
10440
|
-
// ASDF 0u CapsLk を 2.25u にして L)Shift 左端と揃える
|
|
10441
|
-
// ZXCV 0.25u 標準キーボードの行オフセットを offsetX + L)Shift 拡大で再現
|
|
10442
|
-
// スペース行 0u
|
|
10443
|
-
//
|
|
10444
|
-
// JIS と US の主な違い:
|
|
10445
|
-
// 数字行: JIS は intlYen(220) あり、US はなし(BackSpace が広い)
|
|
10446
|
-
// QWERTY: JIS は [ の右にスペーサー、US はなし(Enter が横長)
|
|
10447
|
-
// ASDF : JIS は ¥(221) あり、US はなし(Enter が横長)
|
|
10448
|
-
// ZXCV : JIS は intlRo(226) あり、US はなし(R)Shift が広い)
|
|
10449
|
-
// Enter : JIS は縦長(h=2)、US は横長(h=1, w=2.25)
|
|
10450
10438
|
/**
|
|
10451
10439
|
* g_localeObj.val に応じた MAIN_ROWS を生成して返す。
|
|
10452
10440
|
* drawBase / calcScale の都度呼び出し、locale 変化を反映する。
|
|
@@ -10460,18 +10448,18 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
10460
10448
|
{
|
|
10461
10449
|
offsetX: 0,
|
|
10462
10450
|
keys: [
|
|
10463
|
-
{ kc: 27 },
|
|
10464
|
-
{ kc: -1, w: 0.5 },
|
|
10451
|
+
{ kc: 27 }, // Esc
|
|
10452
|
+
{ kc: -1, w: 0.5 }, // スペーサー
|
|
10465
10453
|
{ kc: 112 }, { kc: 113 }, { kc: 114 }, { kc: 115 },
|
|
10466
|
-
{ kc: -1, w: 0.25 },
|
|
10454
|
+
{ kc: -1, w: 0.25 }, // スペーサー
|
|
10467
10455
|
{ kc: 116 }, { kc: 117 }, { kc: 118 }, { kc: 119 },
|
|
10468
|
-
{ kc: -1, w: 0.25 },
|
|
10456
|
+
{ kc: -1, w: 0.25 }, // スペーサー
|
|
10469
10457
|
{ kc: 120 }, { kc: 121 }, { kc: 122 }, { kc: 123 },
|
|
10470
10458
|
],
|
|
10471
10459
|
},
|
|
10472
10460
|
// Row1: 数字行
|
|
10473
|
-
// JIS: ...,
|
|
10474
|
-
// US : ...,
|
|
10461
|
+
// JIS: ..., 220(intlYen), BS
|
|
10462
|
+
// US : ..., BS
|
|
10475
10463
|
{
|
|
10476
10464
|
offsetX: 0,
|
|
10477
10465
|
keys: [
|
|
@@ -10481,13 +10469,13 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
10481
10469
|
{ kc: 55 }, { kc: 56 }, { kc: 57 },
|
|
10482
10470
|
{ kc: 48 }, { kc: 189 }, { kc: 222 },
|
|
10483
10471
|
...(isJa
|
|
10484
|
-
? [{ kc: 220, w: 0.75 }, { kc: 8
|
|
10485
|
-
: [{ kc: 8, w:
|
|
10472
|
+
? [{ kc: 220, w: 0.75 }, { kc: 8 }] // JIS: intlYen + BS
|
|
10473
|
+
: [{ kc: 8, w: 1.7 }] // US : BS のみ(広い)
|
|
10486
10474
|
),
|
|
10487
10475
|
],
|
|
10488
10476
|
},
|
|
10489
10477
|
// Row2: QWERTY
|
|
10490
|
-
// JIS: ..., [,
|
|
10478
|
+
// JIS: ..., [, Enter(13)
|
|
10491
10479
|
// US : ..., [, ]
|
|
10492
10480
|
{
|
|
10493
10481
|
offsetX: 0,
|
|
@@ -10498,46 +10486,49 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
10498
10486
|
{ kc: 85 }, { kc: 73 }, { kc: 79 },
|
|
10499
10487
|
{ kc: 80 }, { kc: 192 },
|
|
10500
10488
|
...(isJa
|
|
10501
|
-
? [{ kc: 219 }, { kc:
|
|
10502
|
-
: [{ kc: 219 }, { kc: 221 }]
|
|
10489
|
+
? [{ kc: 219 }, { kc: 13, w: 1.25, h: 2 }] // JIS: [, Enter縦長
|
|
10490
|
+
: [{ kc: 219 }, { kc: 221, w: 1.2 }] // US : [, ]
|
|
10503
10491
|
),
|
|
10504
10492
|
],
|
|
10505
10493
|
},
|
|
10506
10494
|
// Row3: ASDF
|
|
10507
10495
|
// JIS: ..., L, ;, ', ¥(221)
|
|
10508
|
-
// US : ..., L, ;, '
|
|
10496
|
+
// US : ..., L, ;, ', Enter(13)
|
|
10509
10497
|
{
|
|
10510
10498
|
offsetX: 0,
|
|
10511
10499
|
keys: [
|
|
10512
|
-
{ kc: 20, w:
|
|
10500
|
+
{ kc: 20, w: 1.75, label: `CapsLk` },
|
|
10513
10501
|
{ kc: 65 }, { kc: 83 }, { kc: 68 },
|
|
10514
10502
|
{ kc: 70 }, { kc: 71 }, { kc: 72 },
|
|
10515
10503
|
{ kc: 74 }, { kc: 75 }, { kc: 76 },
|
|
10516
10504
|
{ kc: 187 }, { kc: 186 },
|
|
10517
10505
|
...(isJa
|
|
10518
|
-
? [{ kc: 221 }]
|
|
10519
|
-
: [{ kc: 13, w:
|
|
10506
|
+
? [{ kc: 221 }] // JIS: ¥
|
|
10507
|
+
: [{ kc: 13, w: 1.9 }] // US : Enter横長
|
|
10520
10508
|
),
|
|
10521
10509
|
],
|
|
10522
10510
|
},
|
|
10523
|
-
// Row4: ZXCV
|
|
10524
|
-
//
|
|
10525
|
-
//
|
|
10511
|
+
// Row4: ZXCV
|
|
10512
|
+
// L)Shift の幅で行頭位置を揃える
|
|
10513
|
+
// JIS: L)Shift, ..., intlRo(226), R)Shift
|
|
10514
|
+
// US : L)Shift, ..., R)Shift
|
|
10526
10515
|
{
|
|
10527
|
-
offsetX: 0
|
|
10516
|
+
offsetX: 0,
|
|
10528
10517
|
keys: [
|
|
10529
|
-
{ kc: 16, w: 2.
|
|
10518
|
+
{ kc: 16, w: 2.25 },
|
|
10530
10519
|
{ kc: 90 }, { kc: 88 }, { kc: 67 },
|
|
10531
10520
|
{ kc: 86 }, { kc: 66 }, { kc: 78 },
|
|
10532
10521
|
{ kc: 77 }, { kc: 188 }, { kc: 190 },
|
|
10533
10522
|
{ kc: 191 },
|
|
10534
10523
|
...(isJa
|
|
10535
|
-
? [{ kc: 226 }, { kc: 256, w: 1.
|
|
10536
|
-
: [{ kc: 256, w: 2.
|
|
10524
|
+
? [{ kc: 226 }, { kc: 256, w: 1.5 }] // JIS: intlRo + R)Shift
|
|
10525
|
+
: [{ kc: 256, w: 2.4 }] // US : R)Shift のみ(広い)
|
|
10537
10526
|
),
|
|
10538
10527
|
],
|
|
10539
10528
|
},
|
|
10540
|
-
// Row5:
|
|
10529
|
+
// Row5: スペースバー行
|
|
10530
|
+
// JIS: ..., NoConv(29), Space, Conv(28), カタカナひらがな(242), ...
|
|
10531
|
+
// US : ..., Space, ...
|
|
10541
10532
|
{
|
|
10542
10533
|
offsetX: 0,
|
|
10543
10534
|
keys: [
|
|
@@ -10556,38 +10547,41 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
10556
10547
|
]
|
|
10557
10548
|
),
|
|
10558
10549
|
{ kc: 258 },
|
|
10559
|
-
{ kc:
|
|
10560
|
-
|
|
10550
|
+
{ kc: 93 },
|
|
10551
|
+
...(isJa
|
|
10552
|
+
? [{ kc: 257, w: 1.2 }]
|
|
10553
|
+
: [{ kc: 257, w: 1.05 }]
|
|
10554
|
+
),
|
|
10561
10555
|
],
|
|
10562
10556
|
},
|
|
10563
10557
|
];
|
|
10564
10558
|
};
|
|
10565
|
-
// 編集キークラスター(Insert/Delete/Home/End/PgUp/PgDn + 矢印キー)
|
|
10559
|
+
// 編集キークラスター(PrintSc/ScrollLk/Pause/Insert/Delete/Home/End/PgUp/PgDn + 矢印キー)
|
|
10566
10560
|
// MAIN_ROWS と行インデックスを揃えて配置する。空行はスキップされる。
|
|
10567
10561
|
const NAV_ROWS = [
|
|
10568
10562
|
{ offsetX: 0, keys: [{ kc: 44, label: `PrintSc` }, { kc: 145, label: `ScrollLk` }, { kc: 19 }] }, // PrintSc ScrollLk Pause
|
|
10569
10563
|
{ offsetX: 0, keys: [{ kc: 45 }, { kc: 36 }, { kc: 33 }] }, // Insert Home PgUp
|
|
10570
10564
|
{ offsetX: 0, keys: [{ kc: 46 }, { kc: 35 }, { kc: 34 }] }, // Delete End PgDn
|
|
10571
|
-
{ offsetX: 0, keys: [] },
|
|
10565
|
+
{ offsetX: 0, keys: [] }, // ASDF行:空
|
|
10572
10566
|
{ offsetX: 0, keys: [{ kc: -1 }, { kc: 38 }, { kc: -1 }] }, // ↑
|
|
10573
10567
|
{ offsetX: 0, keys: [{ kc: 37 }, { kc: 40 }, { kc: 39 }] }, // ← ↓ →
|
|
10574
10568
|
];
|
|
10575
10569
|
|
|
10576
|
-
// テンキー(
|
|
10570
|
+
// テンキー(MAIN_ROWS と行インデックスを揃えて配置。1行目は空行で Fn行に揃える)
|
|
10577
10571
|
// kc は g_kCd 定義に従う: 96〜111=テンキー各種, 144=NumLk
|
|
10578
|
-
//
|
|
10572
|
+
// 標準テンキーレイアウト(2行目から):
|
|
10579
10573
|
// [NumLk] [T/] [T*] [T-]
|
|
10580
10574
|
// [T7][T8][T9] [T+]
|
|
10581
10575
|
// [T4][T5][T6] [T+] ← T+ は縦2u
|
|
10582
10576
|
// [T1][T2][T3] [TEnter]
|
|
10583
|
-
// [ T0 ][
|
|
10577
|
+
// [ T0 ][T.] [TEnter] ← T0 は横2u、TEnter は縦2u
|
|
10584
10578
|
const NUM_ROWS = [
|
|
10585
10579
|
{ offsetX: 0, keys: [] },
|
|
10586
|
-
{ offsetX: 0, keys: [{ kc: 144 }, { kc: 111 }, { kc: 106 }, { kc: 109 }] },
|
|
10580
|
+
{ offsetX: 0, keys: [{ kc: 144 }, { kc: 111 }, { kc: 106 }, { kc: 109 }] }, // NumLk T/ T* T-
|
|
10587
10581
|
{ offsetX: 0, keys: [{ kc: 103 }, { kc: 104 }, { kc: 105 }, { kc: 107, h: 2 }] }, // T7 T8 T9 T+(縦2u)
|
|
10588
|
-
{ offsetX: 0, keys: [{ kc: 100 }, { kc: 101 }, { kc: 102 }] },
|
|
10589
|
-
{ offsetX: 0, keys: [{ kc: 97 }, { kc: 98 }, { kc: 99 }, { kc: 108, h: 2 }] },
|
|
10590
|
-
{ offsetX: 0, keys: [{ kc: 96, w: 2 }, { kc: 110 }] },
|
|
10582
|
+
{ offsetX: 0, keys: [{ kc: 100 }, { kc: 101 }, { kc: 102 }] }, // T4 T5 T6
|
|
10583
|
+
{ offsetX: 0, keys: [{ kc: 97 }, { kc: 98 }, { kc: 99 }, { kc: 108, h: 2 }] }, // T1 T2 T3 TEnter(縦2u)
|
|
10584
|
+
{ offsetX: 0, keys: [{ kc: 96, w: 2 }, { kc: 110 }] }, // T0(横2u) T.
|
|
10591
10585
|
];
|
|
10592
10586
|
|
|
10593
10587
|
// -------------------------------------------------------------------------
|
|
@@ -10595,14 +10589,15 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
10595
10589
|
// -------------------------------------------------------------------------
|
|
10596
10590
|
const _state = {
|
|
10597
10591
|
visible: false,
|
|
10598
|
-
mappedSet: new Set(),
|
|
10599
|
-
altSet: new Set(),
|
|
10592
|
+
mappedSet: new Set(), // メインキー(各矢印の index 0)
|
|
10593
|
+
altSet: new Set(), // 代替キー(各矢印の index 1 以降)
|
|
10594
|
+
shortcutSet: new Set(), // プレイ中ショートカット(keyRetry / keyTitleBack / PgDn / PgUp)
|
|
10600
10595
|
canvasBase: null,
|
|
10601
10596
|
canvasMap: null,
|
|
10602
|
-
keyRects: [],
|
|
10603
|
-
scale: 1,
|
|
10604
|
-
cvsW: 500,
|
|
10605
|
-
cvsH: 240,
|
|
10597
|
+
keyRects: [], // { kc, x, y, w, h, label } — drawMap で照合するキャッシュ
|
|
10598
|
+
scale: 1, // BASE_KEY_W/H に掛けるスケール係数
|
|
10599
|
+
cvsW: 500, // 実際の Canvas 幅(スケール計算後)
|
|
10600
|
+
cvsH: 240, // 実際の Canvas 高さ(スケール計算後)
|
|
10606
10601
|
};
|
|
10607
10602
|
|
|
10608
10603
|
// -------------------------------------------------------------------------
|
|
@@ -10629,7 +10624,7 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
10629
10624
|
|
|
10630
10625
|
const BASE_NAV_W = 3 * BASE_KEY_W + 2 * BASE_KEY_GAP; // NAV は 3列固定
|
|
10631
10626
|
const BASE_ROW_H = MAIN_ROWS_LEN * (BASE_KEY_H + BASE_KEY_GAP) - BASE_KEY_GAP; // MAIN+NAV 分の高さ
|
|
10632
|
-
const NUM_ROWS_LEN = 6; //
|
|
10627
|
+
const NUM_ROWS_LEN = 6; // テンキーの行数(1行目は空行、2行目からテンキー配置)
|
|
10633
10628
|
const NUM_GAP_H = BASE_KEY_H * 0.4; // テンキー上部の余白(基準キー高の40%)
|
|
10634
10629
|
const BASE_NUM_ROW_H = NUM_ROWS_LEN * (BASE_KEY_H + BASE_KEY_GAP) - BASE_KEY_GAP; // テンキー部の高さ
|
|
10635
10630
|
const BASE_NUM_W = 4 * BASE_KEY_W + 3 * BASE_KEY_GAP; // テンキー横幅(4列固定)
|
|
@@ -10833,16 +10828,19 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
10833
10828
|
ctx.textBaseline = `middle`;
|
|
10834
10829
|
|
|
10835
10830
|
const drawLegend = (x, fill, stroke, label) => {
|
|
10836
|
-
roundRect(ctx, x, ly, 10, 10, 2);
|
|
10831
|
+
roundRect(ctx, x, ly - 5, 10, 10, 2);
|
|
10837
10832
|
ctx.fillStyle = fill; ctx.fill();
|
|
10838
10833
|
ctx.strokeStyle = stroke; ctx.lineWidth = 1; ctx.stroke();
|
|
10839
10834
|
ctx.fillStyle = C_COLOR.legendText;
|
|
10840
|
-
ctx.fillText(label, x + 14, ly
|
|
10841
|
-
};
|
|
10835
|
+
ctx.fillText(label, x + 14, ly);
|
|
10842
10836
|
|
|
10843
|
-
|
|
10844
|
-
|
|
10845
|
-
|
|
10837
|
+
return 14 + ctx.measureText(label).width + 14;
|
|
10838
|
+
};
|
|
10839
|
+
let lx = 8;
|
|
10840
|
+
lx += drawLegend(lx, C_COLOR.keyFill, C_COLOR.keyStroke, g_lblNameObj.unallocated);
|
|
10841
|
+
lx += drawLegend(lx, C_COLOR.mappedFill, C_COLOR.mappedStroke, g_lblNameObj.allocated);
|
|
10842
|
+
lx += drawLegend(lx, C_COLOR.altFill, C_COLOR.altStroke, g_lblNameObj.altAllocated);
|
|
10843
|
+
lx += drawLegend(lx, C_COLOR.shortcutFill, C_COLOR.shortcutStroke, g_lblNameObj.shortcutKey);
|
|
10846
10844
|
};
|
|
10847
10845
|
|
|
10848
10846
|
/**
|
|
@@ -10865,7 +10863,7 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
10865
10863
|
ctx.scale(dpr, dpr);
|
|
10866
10864
|
ctx.clearRect(0, 0, _state.cvsW, _state.cvsH);
|
|
10867
10865
|
|
|
10868
|
-
//
|
|
10866
|
+
// 優先度: ショートカット > メイン > 代替(後から描くほど優先)
|
|
10869
10867
|
const drawKey = (fill, stroke, text) => rect => {
|
|
10870
10868
|
const [primary, sub] = getKeyLabels(rect.kc, rect.label);
|
|
10871
10869
|
roundRect(ctx, rect.x + 0.5, rect.y + 0.5, rect.w - 1, rect.h - 1, kr());
|
|
@@ -10877,13 +10875,22 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
10877
10875
|
drawKeyLabel(ctx, rect.x, rect.y, rect.w, rect.h, primary, sub, text, text);
|
|
10878
10876
|
};
|
|
10879
10877
|
|
|
10878
|
+
// 1. 代替キー(メイン・ショートカットと重複しない場合のみ)
|
|
10880
10879
|
_state.keyRects
|
|
10881
|
-
.filter(rect => _state.altSet.has(rect.kc)
|
|
10880
|
+
.filter(rect => _state.altSet.has(rect.kc)
|
|
10881
|
+
&& !_state.mappedSet.has(rect.kc)
|
|
10882
|
+
&& !_state.shortcutSet.has(rect.kc))
|
|
10882
10883
|
.forEach(drawKey(C_COLOR.altFill, C_COLOR.altStroke, C_COLOR.altText));
|
|
10883
10884
|
|
|
10885
|
+
// 2. メインキー(ショートカットと重複しない場合のみ)
|
|
10884
10886
|
_state.keyRects
|
|
10885
|
-
.filter(rect => _state.mappedSet.has(rect.kc))
|
|
10887
|
+
.filter(rect => _state.mappedSet.has(rect.kc) && !_state.shortcutSet.has(rect.kc))
|
|
10886
10888
|
.forEach(drawKey(C_COLOR.mappedFill, C_COLOR.mappedStroke, C_COLOR.mappedText));
|
|
10889
|
+
|
|
10890
|
+
// 3. ショートカット(常に最前面)
|
|
10891
|
+
_state.keyRects
|
|
10892
|
+
.filter(rect => _state.shortcutSet.has(rect.kc))
|
|
10893
|
+
.forEach(drawKey(C_COLOR.shortcutFill, C_COLOR.shortcutStroke, C_COLOR.shortcutText));
|
|
10887
10894
|
};
|
|
10888
10895
|
|
|
10889
10896
|
// -------------------------------------------------------------------------
|
|
@@ -10971,6 +10978,10 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
10971
10978
|
|
|
10972
10979
|
_state.mappedSet = new Set(ctrl.map(arr => arr[0]).filter(v => v > 0));
|
|
10973
10980
|
_state.altSet = new Set(ctrl.flatMap(arr => arr.slice(1)).filter(v => v > 0));
|
|
10981
|
+
// プレイ中ショートカット: keyRetry / keyTitleBack は g_headerObj から取得、PgDn(34) / PgUp(33) は固定
|
|
10982
|
+
_state.shortcutSet = new Set(
|
|
10983
|
+
[g_headerObj.keyRetry, g_headerObj.keyTitleBack, 34, 33].filter(v => v > 0)
|
|
10984
|
+
);
|
|
10974
10985
|
if (_state.visible) drawMap();
|
|
10975
10986
|
};
|
|
10976
10987
|
|
|
@@ -10982,6 +10993,7 @@ const keyconfigKeyboardPreview = (() => {
|
|
|
10982
10993
|
_state.visible = false;
|
|
10983
10994
|
_state.mappedSet = new Set();
|
|
10984
10995
|
_state.altSet = new Set();
|
|
10996
|
+
_state.shortcutSet = new Set();
|
|
10985
10997
|
_state.keyRects = [];
|
|
10986
10998
|
_state.canvasBase = null;
|
|
10987
10999
|
_state.canvasMap = null;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Source by tickle
|
|
7
7
|
* Created : 2019/11/19
|
|
8
|
-
* Revised : 2026/05/
|
|
8
|
+
* Revised : 2026/05/13 (v47.6.1)
|
|
9
9
|
*
|
|
10
10
|
* https://github.com/cwtickle/danoniplus
|
|
11
11
|
*/
|
|
@@ -4743,6 +4743,7 @@ const g_lang_lblNameObj = {
|
|
|
4743
4743
|
unallocated: `未割当`,
|
|
4744
4744
|
allocated: `割当済`,
|
|
4745
4745
|
altAllocated: `代替キー`,
|
|
4746
|
+
shortcutKey: `ショートカットキー`,
|
|
4746
4747
|
|
|
4747
4748
|
j_ii: "(・∀・)イイ!!",
|
|
4748
4749
|
j_shakin: "(`・ω・)シャキン",
|
|
@@ -4798,6 +4799,7 @@ const g_lang_lblNameObj = {
|
|
|
4798
4799
|
unallocated: `Unallocated`,
|
|
4799
4800
|
allocated: `Allocated`,
|
|
4800
4801
|
altAllocated: `Alternate Keys`,
|
|
4802
|
+
shortcutKey: `Shortcut Keys`,
|
|
4801
4803
|
|
|
4802
4804
|
j_ii: ":D Perfect!!",
|
|
4803
4805
|
j_shakin: ":) Great!",
|