Skip to content

Commit 9b4bac3

Browse files
committed
Minor changes to key down filter
* Tries to fix #142, but I can't confirm it does because I cannot reproduce the problem.
1 parent 615ec5e commit 9b4bac3

2 files changed

Lines changed: 8 additions & 8 deletions

File tree

src/support/Utils.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,10 @@ int32 rgb_colorToSciColor(rgb_color color)
146146
}
147147

148148

149-
KeyDownMessageFilter::KeyDownMessageFilter(uint32 commandToSend, char key,
149+
KeyDownMessageFilter::KeyDownMessageFilter(uint32 commandToSend, uint32 key,
150150
uint32 modifiers)
151151
:
152-
BMessageFilter(B_KEY_DOWN),
152+
BMessageFilter(B_ANY_DELIVERY, B_ANY_SOURCE),
153153
fKey(key),
154154
fModifiers(modifiers),
155155
fCommandToSend(commandToSend)
@@ -160,12 +160,12 @@ KeyDownMessageFilter::KeyDownMessageFilter(uint32 commandToSend, char key,
160160
filter_result
161161
KeyDownMessageFilter::Filter(BMessage* message, BHandler** target)
162162
{
163-
if(message->what == B_KEY_DOWN) {
164-
const char* bytes;
163+
if(message->what == B_KEY_DOWN || message->what == B_UNMAPPED_KEY_DOWN) {
164+
uint32 key;
165165
uint32 modifiers;
166-
message->FindString("bytes", &bytes);
166+
key = static_cast<uint32>(message->GetInt32("raw_char", 0));
167167
modifiers = static_cast<uint32>(message->GetInt32("modifiers", 0));
168-
if(bytes[0] == fKey && modifiers == fModifiers) {
168+
if(key == fKey && modifiers == fModifiers) {
169169
Looper()->PostMessage(fCommandToSend);
170170
return B_SKIP_MESSAGE;
171171
}

src/support/Utils.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,12 @@ class KeyDownMessageFilter : public BMessageFilter
4848
{
4949
public:
5050
KeyDownMessageFilter(uint32 commandToSend,
51-
char key, uint32 modifiers = 0);
51+
uint32 key, uint32 modifiers = 0);
5252

5353
virtual filter_result Filter(BMessage* message, BHandler** target);
5454

5555
private:
56-
char fKey;
56+
uint32 fKey;
5757
uint32 fModifiers;
5858
uint32 fCommandToSend;
5959
};

0 commit comments

Comments
 (0)