diff --git a/HISTORY.md b/HISTORY.md
index 16e55b2df7..1af7ae3742 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,5 +1,10 @@
# Keyman Version History
+## 17.0.261 alpha 2024-02-06
+
+* fix(web): app/webview sourcemap inlining (#10631)
+* fix(android/app): Cleanup AndroidManifest handling of *.kmp (#10624)
+
## 17.0.260 alpha 2024-02-03
* chore(oem/fv): Update versions in keyboards.csv (#10606)
diff --git a/VERSION.md b/VERSION.md
index 69afe3706f..4c4d02756b 100644
--- a/VERSION.md
+++ b/VERSION.md
@@ -1 +1 @@
-17.0.261
\ No newline at end of file
+17.0.262
\ No newline at end of file
diff --git a/android/KMAPro/kMAPro/src/main/AndroidManifest.xml b/android/KMAPro/kMAPro/src/main/AndroidManifest.xml
index 7a90ccc957..41cda823b8 100644
--- a/android/KMAPro/kMAPro/src/main/AndroidManifest.xml
+++ b/android/KMAPro/kMAPro/src/main/AndroidManifest.xml
@@ -103,6 +103,9 @@
+
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
+
@@ -177,11 +156,11 @@
diff --git a/web/src/tools/building/sourcemap-root/index.ts b/web/src/tools/building/sourcemap-root/index.ts
index 20c5c0135d..c99c0c4e5c 100644
--- a/web/src/tools/building/sourcemap-root/index.ts
+++ b/web/src/tools/building/sourcemap-root/index.ts
@@ -99,7 +99,7 @@ if(sourceRoot) {
srcMap.toFile(mapFile);
if(shouldInline) {
- const mapToInline = SourcemapRemapper.fromFile(mapFile).sourceRoot;
+ const mapToInline = SourcemapRemapper.fromFile(mapFile).sourceMap;
const inlineableComment = convertSourceMap.fromObject(mapToInline).toComment();
fs.appendFileSync(scriptFile, `\n${inlineableComment}`);
diff --git a/windows/src/engine/keyman32/kmprocessactions.cpp b/windows/src/engine/keyman32/kmprocessactions.cpp
index 8adcf3fa57..083397c29a 100644
--- a/windows/src/engine/keyman32/kmprocessactions.cpp
+++ b/windows/src/engine/keyman32/kmprocessactions.cpp
@@ -29,9 +29,8 @@ processBack(AITIP* app, const unsigned int code_points_to_delete, const km_core_
for (unsigned int i = 0; i < code_points_to_delete; i++) {
app->QueueAction(QIT_BACK, BK_DEFAULT);
}
- return;
}
- if (!app->IsLegacy()) {
+ else {
km_core_usv const* delete_context_ptr = delete_context;
while (*delete_context_ptr) {
delete_context_ptr++;
@@ -45,7 +44,6 @@ processBack(AITIP* app, const unsigned int code_points_to_delete, const km_core_
app->QueueAction(QIT_BACK, BK_DEFAULT);
}
}
- return;
}
}
@@ -99,7 +97,7 @@ static void processCapsLock(const km_core_caps_state caps_lock_state, BOOL isUp,
}
}
-BOOL ProcessActions(BOOL* emitKeyStroke)
+BOOL ProcessActions(BOOL* emitKeystroke)
{
PKEYMAN64THREADDATA _td = ThreadGlobals();
if (!_td) return FALSE;
@@ -117,7 +115,7 @@ BOOL ProcessActions(BOOL* emitKeyStroke)
processAlert(_td->app);
}
if (core_actions->emit_keystroke) {
- *emitKeyStroke = TRUE;
+ *emitKeystroke = TRUE;
}
processCapsLock(core_actions->new_caps_lock_state, !_td->state.isDown, _td->TIPFUpdateable, FALSE);
@@ -125,7 +123,7 @@ BOOL ProcessActions(BOOL* emitKeyStroke)
}
BOOL
-ProcessActionsNonUpdatableParse(BOOL* emitKeyStroke) {
+ProcessActionsNonUpdatableParse(BOOL* emitKeystroke) {
PKEYMAN64THREADDATA _td = ThreadGlobals();
if (!_td) {
return FALSE;
@@ -140,7 +138,7 @@ ProcessActionsNonUpdatableParse(BOOL* emitKeyStroke) {
processCapsLock(core_actions->new_caps_lock_state, !_td->state.isDown, _td->TIPFUpdateable, FALSE);
if (core_actions->emit_keystroke) {
- *emitKeyStroke = TRUE;
+ *emitKeystroke = TRUE;
SendDebugMessageFormat(0, sdmGlobal, 0, "ProcessActionsNonUpdatableParse EMIT_KEYSTROKE");
_td->CoreProcessEventRun = FALSE; // If we emit the key stroke on this parse we don't need the second parse
}