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
5
#include "
flutter/shell/platform/linux/fl_key_event.h
"
6
7
static
void
dispose_origin_from_gdk_event
(gpointer origin) {
8
g_return_if_fail(origin !=
nullptr
);
9
gdk_event_free(
reinterpret_cast<
GdkEvent*
>
(origin));
10
}
11
12
FlKeyEvent
*
fl_key_event_new_from_gdk_event
(GdkEvent*
event
) {
13
g_return_val_if_fail(
event
!=
nullptr
,
nullptr
);
14
GdkEventType type = gdk_event_get_event_type(
event
);
15
g_return_val_if_fail(type == GDK_KEY_PRESS || type == GDK_KEY_RELEASE,
16
nullptr
);
17
FlKeyEvent
*
result
= g_new(
FlKeyEvent
, 1);
18
19
guint16 keycode = 0;
20
gdk_event_get_keycode(
event
, &keycode);
21
guint keyval = 0;
22
gdk_event_get_keyval(
event
, &keyval);
23
GdkModifierType
state
=
static_cast<
GdkModifierType
>
(0);
24
gdk_event_get_state(
event
, &
state
);
25
26
result
->time = gdk_event_get_time(
event
);
27
result
->is_press = type == GDK_KEY_PRESS;
28
result
->keycode = keycode;
29
result
->keyval = keyval;
30
result
->state =
state
;
31
result
->string = g_strdup(
event
->key.
string
);
32
result
->group =
event
->key.group;
33
result
->origin =
event
;
34
result
->dispose_origin =
dispose_origin_from_gdk_event
;
35
36
return
result
;
37
}
38
39
void
fl_key_event_dispose
(
FlKeyEvent
*
event
) {
40
if
(
event
->
string
!=
nullptr
) {
41
g_free(
const_cast<
char
*
>
(
event
->
string
));
42
}
43
if
(
event
->
dispose_origin
!=
nullptr
) {
44
event
->dispose_origin(
event
->
origin
);
45
}
46
g_free(
event
);
47
}
48
49
FlKeyEvent
*
fl_key_event_clone
(
const
FlKeyEvent
*
event
) {
50
FlKeyEvent
* new_event = g_new(
FlKeyEvent
, 1);
51
*new_event = *
event
;
52
new_event->
string
= g_strdup(
event
->
string
);
53
return
new_event;
54
}
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:12
_FlKeyEvent::origin
gpointer origin
Definition:
fl_key_event.h:52
_FlKeyEvent
Definition:
fl_key_event.h:31
state
AtkStateType state
Definition:
fl_accessible_node.cc:10
_FlKeyEvent::dispose_origin
FlKeyEventDisposeOrigin dispose_origin
Definition:
fl_key_event.h:56
fl_key_event_clone
FlKeyEvent * fl_key_event_clone(const FlKeyEvent *event)
Definition:
fl_key_event.cc:49
fl_key_event_dispose
void fl_key_event_dispose(FlKeyEvent *event)
Definition:
fl_key_event.cc:39
result
GAsyncResult * result
Definition:
fl_text_input_plugin.cc:106
dispose_origin_from_gdk_event
static void dispose_origin_from_gdk_event(gpointer origin)
Definition:
fl_key_event.cc:7
fl_key_event.h
_FlKeyEvent::string
const char * string
Definition:
fl_key_event.h:47
shell
platform
linux
fl_key_event.cc
Generated by
1.8.17