1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 20:37:35 +00:00

WindowServer: Replace character with code point

Replace u8 data type width u32. Remove character property from event and add code_point property for represent UTF-8 character.
This commit is contained in:
Hüseyin ASLITÜRK 2020-06-13 14:02:00 +03:00 committed by Andreas Kling
parent 25e14911c5
commit 2f7e5a5e40
5 changed files with 10 additions and 10 deletions

View file

@ -76,10 +76,10 @@ enum class MouseButton : u8 {
class KeyEvent final : public Event {
public:
KeyEvent(Type type, int key, char character, u8 modifiers, u32 scancode)
KeyEvent(Type type, int key, u32 code_point, u8 modifiers, u32 scancode)
: Event(type)
, m_key(key)
, m_character(character)
, m_code_point(code_point)
, m_modifiers(modifiers)
, m_scancode(scancode)
{
@ -91,14 +91,14 @@ public:
bool shift() const { return m_modifiers & Mod_Shift; }
bool logo() const { return m_modifiers & Mod_Logo; }
u8 modifiers() const { return m_modifiers; }
char character() const { return m_character; }
u32 code_point() const { return m_code_point; }
u32 scancode() const { return m_scancode; }
private:
friend class EventLoop;
friend class Screen;
int m_key { 0 };
char m_character { 0 };
u32 m_code_point { 0 };
u8 m_modifiers { 0 };
u32 m_scancode { 0 };
};

View file

@ -146,7 +146,7 @@ void MenuManager::event(Core::Event& event)
if (m_current_menu && event.type() == Event::KeyDown
&& ((key_event.key() >= Key_A && key_event.key() <= Key_Z)
|| (key_event.key() >= Key_0 && key_event.key() <= Key_9))) {
m_current_search.append(key_event.character());
m_current_search.append_codepoint(key_event.code_point());
m_search_timer->restart(s_search_timeout);
for (int i = 0; i < m_current_menu->item_count(); ++i) {
auto text = m_current_menu->item(i).text();

View file

@ -164,7 +164,7 @@ void Screen::on_receive_mouse_data(const MousePacket& packet)
void Screen::on_receive_keyboard_data(::KeyEvent kernel_event)
{
m_modifiers = kernel_event.modifiers();
auto message = make<KeyEvent>(kernel_event.is_press() ? Event::KeyDown : Event::KeyUp, kernel_event.key, kernel_event.character, kernel_event.modifiers(), kernel_event.scancode);
auto message = make<KeyEvent>(kernel_event.is_press() ? Event::KeyDown : Event::KeyUp, kernel_event.key, kernel_event.code_point, kernel_event.modifiers(), kernel_event.scancode);
Core::EventLoop::current().post_event(WindowManager::the(), move(message));
}

View file

@ -302,7 +302,7 @@ void Window::event(Core::Event& event)
case Event::KeyDown:
m_client->post_message(
Messages::WindowClient::KeyDown(m_window_id,
(u8) static_cast<const KeyEvent&>(event).character(),
(u32) static_cast<const KeyEvent&>(event).code_point(),
(u32) static_cast<const KeyEvent&>(event).key(),
static_cast<const KeyEvent&>(event).modifiers(),
(u32) static_cast<const KeyEvent&>(event).scancode()));
@ -310,7 +310,7 @@ void Window::event(Core::Event& event)
case Event::KeyUp:
m_client->post_message(
Messages::WindowClient::KeyUp(m_window_id,
(u8) static_cast<const KeyEvent&>(event).character(),
(u32) static_cast<const KeyEvent&>(event).code_point(),
(u32) static_cast<const KeyEvent&>(event).key(),
static_cast<const KeyEvent&>(event).modifiers(),
(u32) static_cast<const KeyEvent&>(event).scancode()));

View file

@ -8,8 +8,8 @@ endpoint WindowClient = 4
MouseWheel(i32 window_id, Gfx::IntPoint mouse_position, u32 button, u32 buttons, u32 modifiers, i32 wheel_delta) =|
WindowEntered(i32 window_id) =|
WindowLeft(i32 window_id) =|
KeyDown(i32 window_id, u8 character, u32 key, u32 modifiers, u32 scancode) =|
KeyUp(i32 window_id, u8 character, u32 key, u32 modifiers, u32 scancode) =|
KeyDown(i32 window_id, u32 code_point, u32 key, u32 modifiers, u32 scancode) =|
KeyUp(i32 window_id, u32 code_point, u32 key, u32 modifiers, u32 scancode) =|
WindowActivated(i32 window_id) =|
WindowDeactivated(i32 window_id) =|
WindowStateChanged(i32 window_id, bool minimized, bool occluded) =|