Disable Viber chat OCR while preserving saved profiles

This commit is contained in:
agrynco committed 2026-11-06 00:18:04 +02:00
1 parent 178573233b
commit 66e24b5efc
5 files changed
+11 -26

No files matched your search

+1 -16
View File
@@ -974,11 +974,10 @@ void App::switchChatLayout(bool reverse)
auto cycle = chatCycle(settings, key, layouts);
auto available = layouts;
resetInput();
enqueue([this, target, key, cycle, available, reverse, options = settings]
enqueue([this, target, key, cycle, available, reverse]
{
struct Reset { std::atomic<bool> &busy; ~Reset() { busy = false; } } reset{busy};
auto valid = [&] { return GetForegroundWindow() == target && windowChatKey(target) == key; };
if (key.starts_with(L"viber\n") && recognizeViberChat(target, options) != key) return;
if (!valid()) return;
auto next = nextChatLayout(cycle, available, windowLayout(target), reverse);
if (next) switchWindowLayout(target, next, valid);
@@ -1276,8 +1275,6 @@ void App::transform(int command, int snippet)
}
} reset{busy, window, preDeferred};
auto effectiveChat = requestedChat;
if (lower(processName(target)) == L"viber")
effectiveChat = recognizeViberChat(target, config);
config.cycle = chatCycle(config, effectiveChat, available);
auto start = GetTickCount64();
std::wstring reason = L"cancelled-before-selection";
@@ -2182,17 +2179,6 @@ LRESULT CALLBACK App::windowProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
return TRUE;
}
case WM_TIMER:
if (wp == 7)
{
static std::atomic<bool> pending{false};
auto target = GetForegroundWindow();
if (!app->settings.chatCycles.empty() && lower(processName(target)) == L"viber" && !pending.exchange(true))
{
auto options = app->settings;
app->enqueue([target, options] { recognizeViberChat(target, options); pending = false; });
}
return 0;
}
if (wp == 6)
{
if (app->notificationRegistration && WaitForSingleObject(app->notificationRegistration, 0) == WAIT_OBJECT_0)
@@ -2333,7 +2319,6 @@ int App::execute()
scheduleHistoryOcr(settings);
addTray();
SetTimer(window, 1, 60000, nullptr);
if (!smoke) SetTimer(window, 7, 750, nullptr);
if (!smoke) SetTimer(window, 6, 1000, nullptr);
SetThreadExecutionState(ES_CONTINUOUS |
(settings.awake ? (ES_DISPLAY_REQUIRED | ES_SYSTEM_REQUIRED) : 0));