summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mir_app/src/db_events.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mir_app/src/db_events.cpp b/src/mir_app/src/db_events.cpp
index 502c02882f..45cbdc9022 100644
--- a/src/mir_app/src/db_events.cpp
+++ b/src/mir_app/src/db_events.cpp
@@ -179,6 +179,20 @@ static INT_PTR DbEventGetTextWorker(const DB::EventInfo *dbei, int codepage, int
return 0;
}
+ if (dbei->flags & DBEF_JSON) {
+ JSONNode json = dbei->getJson();
+ std::string str = json["b"].as_string();
+ switch (datatype) {
+ case DBVT_WCHAR:
+ return (INT_PTR)mir_utf8decodeW(str.c_str());
+ case DBVT_ASCIIZ:
+ char *msg = mir_strdup(str.c_str());
+ mir_utf8decodecp(msg, codepage, nullptr);
+ return (INT_PTR)msg;
+ }
+ return 0;
+ }
+
// by default treat an event's blob as a string
if (datatype == DBVT_WCHAR) {
char *str = (char*)alloca(dbei->cbBlob + 1);