diff --git a/Source/WebCore/platform/haiku/PlatformKeyboardEventHaiku.cpp b/Source/WebCore/platform/haiku/PlatformKeyboardEventHaiku.cpp
a
|
b
|
|
324 | 324 | return singleByte; |
325 | 325 | } |
326 | 326 | |
| 327 | static String KeyValueForKeyEvent(unsigned char singleByte, int keyCode) |
| 328 | { |
| 329 | switch (singleByte) { |
| 330 | |
| 331 | case B_FUNCTION_KEY: |
| 332 | switch (keyCode) { |
| 333 | case B_F1_KEY: |
| 334 | return "F1"; |
| 335 | case B_F2_KEY: |
| 336 | return "F2"; |
| 337 | case B_F3_KEY: |
| 338 | return "F3"; |
| 339 | case B_F4_KEY: |
| 340 | return "F4"; |
| 341 | case B_F5_KEY: |
| 342 | return "F5"; |
| 343 | case B_F6_KEY: |
| 344 | return "F6"; |
| 345 | case B_F7_KEY: |
| 346 | return "F7"; |
| 347 | case B_F8_KEY: |
| 348 | return "F8"; |
| 349 | case B_F9_KEY: |
| 350 | return "F9"; |
| 351 | case B_F10_KEY: |
| 352 | return "F10"; |
| 353 | case B_F11_KEY: |
| 354 | return "F11"; |
| 355 | case B_F12_KEY: |
| 356 | return "F12"; |
| 357 | case B_PRINT_KEY: |
| 358 | return "Print"; |
| 359 | case B_PAUSE_KEY: |
| 360 | return "Pause"; |
| 361 | case B_SCROLL_KEY: |
| 362 | return "ScrollLock"; |
| 363 | case B_SHIFT_KEY: |
| 364 | return "Shift"; |
| 365 | case B_LEFT_CONTROL_KEY: // B_CONTROL_KEY = B_F3_KEY..? |
| 366 | case B_RIGHT_CONTROL_KEY: |
| 367 | return "Control"; |
| 368 | } |
| 369 | |
| 370 | break; |
| 371 | |
| 372 | case B_BACKSPACE: |
| 373 | return "Backspace"; |
| 374 | case B_LEFT_ARROW: |
| 375 | return "ArrowLeft"; |
| 376 | case B_RIGHT_ARROW: |
| 377 | return "ArrowRight"; |
| 378 | case B_UP_ARROW: |
| 379 | return "ArrowUp"; |
| 380 | case B_DOWN_ARROW: |
| 381 | return "ArrowDown"; |
| 382 | case B_INSERT: |
| 383 | return "Insert"; |
| 384 | case B_ENTER: |
| 385 | return "Enter"; |
| 386 | case B_DELETE: |
| 387 | return "Delete"; |
| 388 | case B_HOME: |
| 389 | return "Home"; |
| 390 | case B_END: |
| 391 | return "End"; |
| 392 | case B_PAGE_UP: |
| 393 | return "PageUp"; |
| 394 | case B_PAGE_DOWN: |
| 395 | return "PageDown"; |
| 396 | case B_TAB: |
| 397 | return "Tab"; |
| 398 | case B_SPACE: |
| 399 | return " "; // (20) SPACEBAR |
| 400 | |
| 401 | |
| 402 | case B_COMMAND_KEY: |
| 403 | return "Alt"; |
| 404 | |
| 405 | case B_OPTION_KEY: |
| 406 | return "Compose"; // ?? why compose? fx also said "Process" |
| 407 | case B_MENU_KEY: |
| 408 | return "ContextMenu"; |
| 409 | case B_ESCAPE: |
| 410 | return "Escape"; |
| 411 | |
| 412 | default: { |
| 413 | String keyVal = String::format("%c", singleByte); |
| 414 | if (keyVal != "") { |
| 415 | return keyVal; |
| 416 | } |
| 417 | |
| 418 | } |
| 419 | } |
| 420 | return "Unidentified"; |
| 421 | } |
| 422 | |
| 423 | static String KeyCodeForKeyEvent(int keyCode) |
| 424 | { |
| 425 | switch (keyCode) { |
| 426 | case 0x0001: |
| 427 | return "Escape"; |
| 428 | case 0x0002: |
| 429 | return "F1"; |
| 430 | case 0x0003: |
| 431 | return "F2"; |
| 432 | case 0x0004: |
| 433 | return "F3"; |
| 434 | case 0x0005: |
| 435 | return "F4"; |
| 436 | case 0x0006: |
| 437 | return "F5"; |
| 438 | case 0x0007: |
| 439 | return "F6"; |
| 440 | case 0x0008: |
| 441 | return "F7"; |
| 442 | case 0x0009: |
| 443 | return "F8"; |
| 444 | case 0x000A: |
| 445 | return "F9"; |
| 446 | case 0x000B: |
| 447 | return "F10"; |
| 448 | case 0x000C: |
| 449 | return "F11"; |
| 450 | case 0x000D: |
| 451 | return "F12"; |
| 452 | |
| 453 | case 0x000E: |
| 454 | return "PrintScreen"; |
| 455 | case 0x000F: |
| 456 | return "ScrollLock"; |
| 457 | case 0x0010: |
| 458 | return "Pause"; |
| 459 | |
| 460 | case 0x0011: |
| 461 | return "Backquote"; |
| 462 | case 0x0012: |
| 463 | return "Digit1"; |
| 464 | case 0x0013: |
| 465 | return "Digit2"; |
| 466 | case 0x0014: |
| 467 | return "Digit3"; |
| 468 | case 0x0015: |
| 469 | return "Digit4"; |
| 470 | case 0x0016: |
| 471 | return "Digit5"; |
| 472 | case 0x0017: |
| 473 | return "Digit6"; |
| 474 | case 0x0018: |
| 475 | return "Digit7"; |
| 476 | case 0x0019: |
| 477 | return "Digit8"; |
| 478 | case 0x001A: |
| 479 | return "Digit9"; |
| 480 | case 0x001B: |
| 481 | return "Digit0"; |
| 482 | case 0x001C: |
| 483 | return "Minus"; |
| 484 | case 0x001D: |
| 485 | return "Equal"; |
| 486 | case 0x001E: |
| 487 | return "Backspace"; // IntYen |
| 488 | |
| 489 | case 0x001F: |
| 490 | return "Insert"; |
| 491 | case 0x0020: |
| 492 | return "Home"; |
| 493 | case 0x0021: |
| 494 | return "PageUp"; |
| 495 | |
| 496 | case 0x0022: |
| 497 | return "NumLock"; |
| 498 | case 0x0023: |
| 499 | return "NumpadDivide"; |
| 500 | case 0x0024: |
| 501 | return "NumpadMultiply"; |
| 502 | case 0x0025: |
| 503 | return "NumpadSubtract"; |
| 504 | |
| 505 | case 0x0026: |
| 506 | return "Tab"; |
| 507 | case 0x0027: |
| 508 | return "KeyQ"; |
| 509 | case 0x0028: |
| 510 | return "KeyW"; |
| 511 | case 0x0029: |
| 512 | return "KeyE"; |
| 513 | case 0x002A: |
| 514 | return "KeyR"; |
| 515 | case 0x002B: |
| 516 | return "KeyT"; |
| 517 | case 0x002C: |
| 518 | return "KeyY"; |
| 519 | case 0x002D: |
| 520 | return "KeyU"; |
| 521 | case 0x002E: |
| 522 | return "KeyI"; |
| 523 | case 0x002F: |
| 524 | return "KeyO"; |
| 525 | case 0x0030: |
| 526 | return "KepP"; |
| 527 | case 0x0031: |
| 528 | return "BracketLeft"; |
| 529 | case 0x0032: |
| 530 | return "BracketRight"; |
| 531 | case 0x0033: |
| 532 | return "Backslash"; |
| 533 | |
| 534 | case 0x0034: |
| 535 | return "Delete"; |
| 536 | case 0x0035: |
| 537 | return "End"; |
| 538 | case 0x0036: |
| 539 | return "PageDown"; |
| 540 | |
| 541 | case 0x0037: |
| 542 | return "Numpad7"; |
| 543 | case 0x0038: |
| 544 | return "Numpad8"; |
| 545 | case 0x0039: |
| 546 | return "Numpad9"; |
| 547 | case 0x003A: |
| 548 | return "NumpadAdd"; |
| 549 | |
| 550 | case 0x003B: |
| 551 | return "CapsLock"; |
| 552 | case 0x003C: |
| 553 | return "KeyA"; |
| 554 | case 0x003D: |
| 555 | return "KeyS"; |
| 556 | case 0x003E: |
| 557 | return "KeyD"; |
| 558 | case 0x003F: |
| 559 | return "KeyF"; |
| 560 | case 0x0040: |
| 561 | return "KeyG"; |
| 562 | case 0x0041: |
| 563 | return "KeyH"; |
| 564 | case 0x0042: |
| 565 | return "KeyJ"; |
| 566 | case 0x0043: |
| 567 | return "KeyK"; |
| 568 | case 0x0044: |
| 569 | return "KeyL"; |
| 570 | case 0x0045: |
| 571 | return "Semicolon"; |
| 572 | case 0x0046: |
| 573 | return "Quote"; |
| 574 | case 0x0047: |
| 575 | return "Return"; |
| 576 | |
| 577 | case 0x0048: |
| 578 | return "Numpad4"; |
| 579 | case 0x0049: |
| 580 | return "Numpad5"; |
| 581 | case 0x004A: |
| 582 | return "Numpad6"; |
| 583 | |
| 584 | case 0x004B: |
| 585 | return "ShiftLeft"; |
| 586 | case 0x004C: |
| 587 | return "KeyZ"; |
| 588 | case 0x004D: |
| 589 | return "KeyX"; |
| 590 | case 0x004E: |
| 591 | return "KeyC"; |
| 592 | case 0x004F: |
| 593 | return "KeyV"; |
| 594 | case 0x0050: |
| 595 | return "KeyB"; |
| 596 | case 0x0051: |
| 597 | return "KeyN"; |
| 598 | case 0x0052: |
| 599 | return "KeyM"; |
| 600 | case 0x0053: |
| 601 | return "Comma"; |
| 602 | case 0x0054: |
| 603 | return "Period"; |
| 604 | case 0x0055: |
| 605 | return "Slash"; |
| 606 | case 0x0056: |
| 607 | return "ShiftRight"; |
| 608 | |
| 609 | case 0x0057: |
| 610 | return "ArrowUp"; |
| 611 | case 0x0058: |
| 612 | return "Digit1"; |
| 613 | case 0x0059: |
| 614 | return "Digit2"; |
| 615 | case 0x005A: |
| 616 | return "Digit3"; |
| 617 | case 0x005B: |
| 618 | return "NumpadEnter"; |
| 619 | case 0x005C: |
| 620 | return "ControlLeft"; |
| 621 | case 0x005D: |
| 622 | return "AltLeft"; |
| 623 | case 0x005E: |
| 624 | return "Space"; |
| 625 | case 0x005F: |
| 626 | return "AltRight"; |
| 627 | case 0x0060: |
| 628 | return "ControlRight"; |
| 629 | case 0x0061: |
| 630 | return "ArrowLeft"; |
| 631 | case 0x0062: |
| 632 | return "ArrowDown"; |
| 633 | case 0x0063: |
| 634 | return "ArrowRight"; |
| 635 | case 0x0064: |
| 636 | return "Numpad0"; |
| 637 | case 0x0065: |
| 638 | return "NumpadDecimal"; |
| 639 | case 0x0066: |
| 640 | return "OSLeft"; // MetaLeft |
| 641 | case 0x0067: |
| 642 | return "OSRight"; |
| 643 | case 0x0068: |
| 644 | return "ContextMenu"; |
| 645 | case 0x0069: |
| 646 | return "IntlBackslash"; |
| 647 | case 0x006a: |
| 648 | return "NumPadEqual"; |
| 649 | } |
| 650 | return "Unidentified"; |
| 651 | } |
| 652 | |
327 | 653 | PlatformKeyboardEvent::PlatformKeyboardEvent(BMessage* message) |
328 | 654 | : m_autoRepeat(false) |
329 | 655 | , m_isKeypad(false) |
… |
… |
|
335 | 663 | m_keyIdentifier = keyIdentifierForHaikuKeyCode(bytes.ByteAt(0), nativeVirtualKeyCode); |
336 | 664 | |
337 | 665 | m_windowsVirtualKeyCode = windowsKeyCodeForKeyEvent(bytes.ByteAt(0), nativeVirtualKeyCode); |
| 666 | m_key = KeyValueForKeyEvent(bytes.ByteAt(0), nativeVirtualKeyCode); |
| 667 | m_code = KeyCodeForKeyEvent(nativeVirtualKeyCode); |
338 | 668 | |
339 | 669 | if (message->what == B_KEY_UP) |
340 | 670 | m_type = KeyUp; |
diff --git a/Source/cmake/OptionsHaiku.cmake b/Source/cmake/OptionsHaiku.cmake
a
|
b
|
|
77 | 77 | WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_DATE PUBLIC ON) |
78 | 78 | WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_MONTH PUBLIC ON) |
79 | 79 | WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INPUT_TYPE_TIME PUBLIC ON) |
| 80 | WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_KEYBOARD_CODE_ATTRIBUTE PUBLIC ON) |
| 81 | WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_KEYBOARD_KEY_ATTRIBUTE PUBLIC ON) |
80 | 82 | WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CAPTURE PUBLIC ON) |
81 | 83 | WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_CONTROLS_SCRIPT PUBLIC ON) |
82 | 84 | WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MEDIA_SOURCE PUBLIC OFF) |