(wParam, lParam uintptr)
| 2180 | } |
| 2181 | |
| 2182 | func (wb *WindowBase) handleKeyDown(wParam, lParam uintptr) { |
| 2183 | key := Key(wParam) |
| 2184 | |
| 2185 | if uint32(lParam)>>30 == 0 { |
| 2186 | wb.keyDownPublisher.Publish(key) |
| 2187 | |
| 2188 | // Using TranslateAccelerators refused to work, so we handle them |
| 2189 | // ourselves, at least for now. |
| 2190 | shortcut := Shortcut{ModifiersDown(), key} |
| 2191 | if action, ok := shortcut2Action[shortcut]; ok { |
| 2192 | if action.Visible() && action.Enabled() { |
| 2193 | window := wb.window |
| 2194 | |
| 2195 | if w, ok := window.(Widget); ok { |
| 2196 | window = ancestor(w) |
| 2197 | } |
| 2198 | |
| 2199 | if m, ok := window.(menuer); ok && menuContainsAction(m.Menu(), action) { |
| 2200 | action.raiseTriggered() |
| 2201 | } |
| 2202 | } |
| 2203 | } |
| 2204 | } |
| 2205 | |
| 2206 | switch key { |
| 2207 | case KeyAlt, KeyControl, KeyShift: |
| 2208 | // nop |
| 2209 | |
| 2210 | default: |
| 2211 | wb.keyPressPublisher.Publish(key) |
| 2212 | } |
| 2213 | } |
| 2214 | |
| 2215 | func (wb *WindowBase) handleKeyUp(wParam, lParam uintptr) { |
| 2216 | wb.keyUpPublisher.Publish(Key(wParam)) |
no test coverage detected