PR #351 只给 D2D 候选窗口加了滚轮翻页,WebView2 后端还没有。 网页端只上报一个以 WHEEL_DELTA 为单位的原始 delta,notch 累加仍然 交给 CandidateWheel::ConsumeWheelDelta,两个宿主最终都汇聚到 WM_PAGE_CANDIDATE,翻页逻辑一份不重复。Chromium 的 wheelDeltaY 本身 就是 ±120/格,正是原生累加器期望的单位,deltaY 作标准回退。 同时把滚轮翻页做成可配置的 general.paging_mouse_wheel,默认关闭: 候选宿主是 NOACTIVATE 且从不获得焦点,滚轮只有在 Windows「当我悬停 在非活动窗口上方时滚动它们」开启时才会送达,无法无条件承诺,所以设为 opt-in,设置页里也写明了这个前提。开关只在 WM_PAGE_CANDIDATE 一处 判断;D2D 那边在 WM_MOUSEWHEEL 顶部提前返回 false,关闭时消息照旧 交给 DefWindowProc,与功能加入前一致。
697 lines
13 KiB
JSON
697 lines
13 KiB
JSON
{
|
|
"version": 1,
|
|
"client": {
|
|
"configRequest": {
|
|
"surfaces": [
|
|
"settings"
|
|
]
|
|
},
|
|
"skinCatalogRequest": {
|
|
"surfaces": [
|
|
"settings"
|
|
]
|
|
},
|
|
"openSkinDirectory": {
|
|
"surfaces": [
|
|
"settings"
|
|
]
|
|
},
|
|
"openHandwritingPanel": {
|
|
"surfaces": [
|
|
"settings"
|
|
]
|
|
},
|
|
"restartServer": {
|
|
"surfaces": [
|
|
"settings"
|
|
]
|
|
},
|
|
"copyText": {
|
|
"surfaces": [
|
|
"settings"
|
|
],
|
|
"data": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"openExternalUrl": {
|
|
"surfaces": [
|
|
"settings"
|
|
],
|
|
"data": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"dragStart": {
|
|
"surfaces": [
|
|
"settings",
|
|
"toolbar"
|
|
]
|
|
},
|
|
"focus": {
|
|
"surfaces": [
|
|
"settings"
|
|
]
|
|
},
|
|
"resizeStart": {
|
|
"surfaces": [
|
|
"settings"
|
|
],
|
|
"data": {
|
|
"type": "string",
|
|
"enum": [
|
|
"left",
|
|
"right",
|
|
"top",
|
|
"bottom",
|
|
"left-top",
|
|
"right-top",
|
|
"left-bottom",
|
|
"right-bottom",
|
|
"client"
|
|
]
|
|
}
|
|
},
|
|
"resizeHitTest": {
|
|
"surfaces": [
|
|
"settings"
|
|
],
|
|
"data": {
|
|
"type": "string",
|
|
"enum": [
|
|
"left",
|
|
"right",
|
|
"top",
|
|
"bottom",
|
|
"left-top",
|
|
"right-top",
|
|
"left-bottom",
|
|
"right-bottom",
|
|
"client"
|
|
]
|
|
}
|
|
},
|
|
"windowControl": {
|
|
"surfaces": [
|
|
"settings"
|
|
],
|
|
"data": {
|
|
"type": "string",
|
|
"enum": [
|
|
"minimize",
|
|
"maximize",
|
|
"restore",
|
|
"close"
|
|
]
|
|
}
|
|
},
|
|
"maximizeButtonRect": {
|
|
"surfaces": [
|
|
"settings"
|
|
],
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"x": {
|
|
"type": "number"
|
|
},
|
|
"y": {
|
|
"type": "number"
|
|
},
|
|
"width": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"height": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"dpr": {
|
|
"type": "number",
|
|
"minimum": 0.01
|
|
}
|
|
},
|
|
"required": [
|
|
"x",
|
|
"y",
|
|
"width",
|
|
"height",
|
|
"dpr"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"configUpdate": {
|
|
"surfaces": [
|
|
"settings"
|
|
],
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"path": {
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "boolean"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"value"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"dictionaryRequest": {
|
|
"surfaces": [
|
|
"settings"
|
|
],
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"requestId": {
|
|
"type": "string"
|
|
},
|
|
"dictionary": {
|
|
"type": "string",
|
|
"enum": [
|
|
"quanpin",
|
|
"wubi",
|
|
"english",
|
|
"quick"
|
|
]
|
|
},
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"query",
|
|
"create",
|
|
"update",
|
|
"delete",
|
|
"import",
|
|
"importHans",
|
|
"export"
|
|
]
|
|
},
|
|
"word": {
|
|
"type": "string"
|
|
},
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"content": {
|
|
"type": "string"
|
|
},
|
|
"weight": {
|
|
"type": "integer"
|
|
},
|
|
"oldWord": {
|
|
"type": "string"
|
|
},
|
|
"oldCode": {
|
|
"type": "string"
|
|
},
|
|
"display": {
|
|
"type": "string"
|
|
},
|
|
"oldDisplay": {
|
|
"type": "string"
|
|
},
|
|
"offset": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 2147483647
|
|
},
|
|
"limit": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 200
|
|
}
|
|
},
|
|
"required": [
|
|
"requestId",
|
|
"dictionary",
|
|
"action"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"openKeyboardPanel": {
|
|
"surfaces": [
|
|
"settings",
|
|
"toolbar"
|
|
]
|
|
},
|
|
"candidate": {
|
|
"surfaces": [
|
|
"candidate"
|
|
],
|
|
"data": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 10
|
|
}
|
|
},
|
|
"delete": {
|
|
"surfaces": [
|
|
"candidate"
|
|
],
|
|
"data": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 10
|
|
}
|
|
},
|
|
"pin": {
|
|
"surfaces": [
|
|
"candidate"
|
|
],
|
|
"data": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 10
|
|
}
|
|
},
|
|
"clearPosition": {
|
|
"surfaces": [
|
|
"candidate"
|
|
],
|
|
"data": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 10
|
|
}
|
|
},
|
|
"candidateWheel": {
|
|
"surfaces": [
|
|
"candidate"
|
|
],
|
|
"data": {
|
|
"type": "integer",
|
|
"minimum": -32768,
|
|
"maximum": 32767
|
|
}
|
|
},
|
|
"fixPosition": {
|
|
"surfaces": [
|
|
"candidate"
|
|
],
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"index": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 10
|
|
},
|
|
"position": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 5
|
|
}
|
|
},
|
|
"required": [
|
|
"index",
|
|
"position"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"contextMenuResize": {
|
|
"surfaces": [
|
|
"candidate"
|
|
],
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"width": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"height": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"topExpansion": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
},
|
|
"leftExpansion": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 65535
|
|
}
|
|
},
|
|
"required": [
|
|
"width",
|
|
"height"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"contextMenuClosed": {
|
|
"surfaces": [
|
|
"candidate"
|
|
]
|
|
},
|
|
"candidatePointerArmed": {
|
|
"surfaces": [
|
|
"candidate"
|
|
]
|
|
},
|
|
"candidatePointerMotion": {
|
|
"surfaces": [
|
|
"candidate"
|
|
]
|
|
},
|
|
"candidateFrameProbe": {
|
|
"surfaces": [
|
|
"candidate"
|
|
],
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"revision": {
|
|
"type": "integer"
|
|
},
|
|
"stage": {
|
|
"type": "integer"
|
|
},
|
|
"performanceMs": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
}
|
|
},
|
|
"required": [
|
|
"revision",
|
|
"stage",
|
|
"performanceMs"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"candidatePointerProbe": {
|
|
"surfaces": [
|
|
"candidate"
|
|
],
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"probe": {
|
|
"type": "integer"
|
|
},
|
|
"screenX": {
|
|
"type": "integer"
|
|
},
|
|
"screenY": {
|
|
"type": "integer"
|
|
},
|
|
"clientX": {
|
|
"type": "integer"
|
|
},
|
|
"clientY": {
|
|
"type": "integer"
|
|
},
|
|
"movementX": {
|
|
"type": "integer"
|
|
},
|
|
"movementY": {
|
|
"type": "integer"
|
|
},
|
|
"armed": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"probe",
|
|
"screenX",
|
|
"screenY",
|
|
"clientX",
|
|
"clientY",
|
|
"movementX",
|
|
"movementY",
|
|
"armed"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"contentTruncated": {
|
|
"surfaces": [
|
|
"candidate",
|
|
"toolbar",
|
|
"menu"
|
|
],
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"surface": {
|
|
"type": "string",
|
|
"enum": [
|
|
"candidate",
|
|
"toolbar",
|
|
"menu",
|
|
"ftb",
|
|
"candwnd",
|
|
"cand"
|
|
]
|
|
},
|
|
"width": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
},
|
|
"height": {
|
|
"type": "number",
|
|
"minimum": 0
|
|
}
|
|
},
|
|
"required": [
|
|
"surface",
|
|
"width",
|
|
"height"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"floatingToggle": {
|
|
"surfaces": [
|
|
"menu"
|
|
],
|
|
"data": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"settings": {
|
|
"surfaces": [
|
|
"menu"
|
|
]
|
|
},
|
|
"about": {
|
|
"surfaces": [
|
|
"menu"
|
|
]
|
|
},
|
|
"emojiSymbols": {
|
|
"surfaces": [
|
|
"menu"
|
|
]
|
|
},
|
|
"keyboardPanel": {
|
|
"surfaces": [
|
|
"menu"
|
|
]
|
|
},
|
|
"handwritingPanel": {
|
|
"surfaces": [
|
|
"menu"
|
|
]
|
|
},
|
|
"voiceInput": {
|
|
"surfaces": [
|
|
"menu"
|
|
]
|
|
},
|
|
"ready": {
|
|
"surfaces": [
|
|
"toolbar"
|
|
]
|
|
},
|
|
"exitEnglishInputMode": {
|
|
"surfaces": [
|
|
"toolbar"
|
|
]
|
|
},
|
|
"changeCharacterSet": {
|
|
"surfaces": [
|
|
"toolbar"
|
|
]
|
|
},
|
|
"openSettings": {
|
|
"surfaces": [
|
|
"toolbar"
|
|
]
|
|
},
|
|
"openEmojiPanel": {
|
|
"surfaces": [
|
|
"toolbar"
|
|
]
|
|
},
|
|
"changeIMEMode": {
|
|
"surfaces": [
|
|
"toolbar"
|
|
],
|
|
"data": {
|
|
"type": "string",
|
|
"enum": [
|
|
"cn",
|
|
"en"
|
|
]
|
|
}
|
|
},
|
|
"changeCharMode": {
|
|
"surfaces": [
|
|
"toolbar"
|
|
],
|
|
"data": {
|
|
"type": "string",
|
|
"enum": [
|
|
"fullwidth",
|
|
"halfwidth"
|
|
]
|
|
}
|
|
},
|
|
"changePuncMode": {
|
|
"surfaces": [
|
|
"toolbar"
|
|
],
|
|
"data": {
|
|
"type": "string",
|
|
"enum": [
|
|
"puncEn",
|
|
"puncCn"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"server": {
|
|
"configSnapshot": {
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {},
|
|
"required": [],
|
|
"additionalProperties": true
|
|
}
|
|
},
|
|
"windowState": {
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"isMaximized": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"isMaximized"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"maxButtonEvent": {
|
|
"data": {
|
|
"type": "object",
|
|
"properties": {
|
|
"event": {
|
|
"type": "string",
|
|
"enum": [
|
|
"enter",
|
|
"leave",
|
|
"down",
|
|
"up",
|
|
"click"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"event"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"dictionaryResponse": {
|
|
"properties": {
|
|
"requestId": {
|
|
"type": "string"
|
|
},
|
|
"action": {
|
|
"type": "string"
|
|
},
|
|
"dictionary": {
|
|
"type": "string"
|
|
},
|
|
"ok": {
|
|
"type": "boolean"
|
|
},
|
|
"message": {
|
|
"type": "string"
|
|
},
|
|
"rows": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"word": {
|
|
"type": "string"
|
|
},
|
|
"code": {
|
|
"type": "string"
|
|
},
|
|
"display": {
|
|
"type": "string"
|
|
},
|
|
"weight": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"word"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"content": {
|
|
"type": "string"
|
|
},
|
|
"filename": {
|
|
"type": "string"
|
|
},
|
|
"offset": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"hasMore": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"requestId",
|
|
"ok",
|
|
"message",
|
|
"rows"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
}
|
|
}
|