[Webkit-unassigned] [Bug 85503] [EFL]PlatformKeyboardEvent: figures, letters and printscreen key handling
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon May 7 05:54:50 PDT 2012
https://bugs.webkit.org/show_bug.cgi?id=85503
--- Comment #7 from Mikhail Pozdnyakov <mikhail.pozdnyakov at intel.com> 2012-05-07 05:54:50 PST ---
(In reply to comment #5)
> (From update of attachment 140168 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=140168&action=review
>
> Are there more commits related to adding keys to this file in your queue?
>
> > LayoutTests/ChangeLog:3
> > + [EFL]PlatformKeyboardEvent: figures, letters and printscreen key handling
>
> Nit: '[EFL] foo' instead of '[EFL]foo'
>
> > Source/WebCore/ChangeLog:3
> > + [EFL]PlatformKeyboardEvent: figures, letters and printscreen key handling
>
> Ditto.
>
> > Source/WebCore/ChangeLog:9
> > + Corrected valure for printscreen key in the windowsKeyMap.
>
> Nit: s/valure/value/.
>
> > Source/WebCore/ChangeLog:10
> > + Figures and letters keys are added to the keyMap.
> > + Corrected valure for printscreen key in the windowsKeyMap.
> > + Capital letters keys are added to the windowsKeyMap.
>
> This description can be moved to the respective methods they are related to below.
>
> > Source/WebCore/platform/efl/EflKeyboardUtilities.cpp:97
> > + // Set alphabet to the keyMap.
> > + const char* lows = "abcdefghijklmnopqrstuvwxyz";
> > + const char* caps = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
> > + const int lowsBase = static_cast<int>(*lows);
> > + const int capsBase = static_cast<int>(*caps);
> > +
> > + for (unsigned int i = 0; i < 26; i++) {
> > + keyMap().set(String(lows + i, 1), String::format("U+%04X", lowsBase + i));
> > + keyMap().set(String(caps + i, 1), String::format("U+%04X", capsBase + i));
> > + }
> > +
> > + // Set digits to the keyMap
> > + const int digitBase = static_cast<int>('0');
> > + for (unsigned int i = 0; i < 10; i++)
> > + keyMap().set(String::number(i), String::format("U+%04X", digitBase + i));
>
> How about
>
> static void addCharacterToKeyMap(char character)
> {
> keyMap().set(String(&character, 1), String::format("U+%04X", character));
> }
>
> static void createKeyMap()
> {
> // ...
>
> for (char c = 'a'; c <= 'z'; c++)
> addCharacterToKeyMap(c);
> for (char c = 'A'; c <= 'Z'; c++)
> addCharacterToKeyMap(c);
> for (char c = '0'; c <= '9'; c++)
> addCharacterToKeyMap(c);
>
> // ....
> }
>
> > Source/WebCore/platform/efl/EflKeyboardUtilities.cpp:155
> > - const char* alphabet = "abcdefghijklmnopqrstuvwxyz";
> > + const char* lows = "abcdefghijklmnopqrstuvwxyz";
> > + const char* caps = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
> > for (unsigned int i = 0; i < 26; i++) {
>
> This can be simplified in a way similar to the one I described above.
>
Fixed all above.
> > Source/WebCore/platform/efl/EflKeyboardUtilities.cpp:209
> > + if (keyName == "Print")
> > + return String("");
>
> Are you sure this is correct? Neither the Qt nor the GTK+ port does something similar.
This function is used to evaluate text() and unmodifiedText() properties for the event, which should be empty in this case.
Actually GTK+ port has something similar as gdk_keyval_to_unicode() returns 0 for printscreen key.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list