Flutter Linux Embedder
fl_key_event.cc
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
6 
8  g_return_val_if_fail(event != nullptr, nullptr);
9  GdkEventType type = gdk_event_get_event_type(event);
10  g_return_val_if_fail(type == GDK_KEY_PRESS || type == GDK_KEY_RELEASE,
11  nullptr);
12  FlKeyEvent* result = g_new(FlKeyEvent, 1);
13 
14  guint16 keycode = 0;
15  gdk_event_get_keycode(event, &keycode);
16  guint keyval = 0;
17  gdk_event_get_keyval(event, &keyval);
18  GdkModifierType state = static_cast<GdkModifierType>(0);
19  gdk_event_get_state(event, &state);
20 
21  result->time = gdk_event_get_time(event);
22  result->is_press = type == GDK_KEY_PRESS;
23  result->keycode = keycode;
24  result->keyval = keyval;
25  result->state = state;
26  result->group = event->key.group;
27  result->origin = event;
28 
29  return result;
30 }
31 
33  if (event->origin != nullptr) {
34  gdk_event_free(event->origin);
35  }
36  g_free(event);
37 }
38 
40  FlKeyEvent* new_event = g_new(FlKeyEvent, 1);
41  *new_event = *event;
42  return new_event;
43 }
event
FlKeyEvent * event
Definition: fl_key_channel_responder.cc:118
fl_key_event_new_from_gdk_event
FlKeyEvent * fl_key_event_new_from_gdk_event(GdkEvent *event)
Definition: fl_key_event.cc:7
type
uint8_t type
Definition: fl_standard_message_codec_test.cc:1115
_FlKeyEvent::origin
GdkEvent * origin
Definition: fl_key_event.h:36
_FlKeyEvent
Definition: fl_key_event.h:22
state
AtkStateType state
Definition: fl_accessible_node.cc:10
fl_key_event_clone
FlKeyEvent * fl_key_event_clone(const FlKeyEvent *event)
Definition: fl_key_event.cc:39
fl_key_event_dispose
void fl_key_event_dispose(FlKeyEvent *event)
Definition: fl_key_event.cc:32
result
GAsyncResult * result
Definition: fl_text_input_plugin.cc:106
fl_key_event.h