Ignoring section.key-pressed
This commit is contained in:
@ -210,7 +210,9 @@ eek_gtk_keyboard_real_button_press_event (GtkWidget *self,
|
|||||||
(gdouble)event->x,
|
(gdouble)event->x,
|
||||||
(gdouble)event->y);
|
(gdouble)event->y);
|
||||||
if (key) {
|
if (key) {
|
||||||
g_signal_emit_by_name (key, "pressed", priv->keyboard);
|
g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKey pressed");
|
||||||
|
g_signal_emit_by_name (key, "pressed");
|
||||||
|
eek_keyboard_press_key(priv->keyboard, key);
|
||||||
}
|
}
|
||||||
// TODO: send time
|
// TODO: send time
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -229,6 +231,7 @@ eek_gtk_keyboard_real_button_release_event (GtkWidget *self,
|
|||||||
|
|
||||||
list = eek_keyboard_get_pressed_keys (priv->keyboard);
|
list = eek_keyboard_get_pressed_keys (priv->keyboard);
|
||||||
for (head = list; head; head = g_list_next (head)) {
|
for (head = list; head; head = g_list_next (head)) {
|
||||||
|
g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKey released");
|
||||||
g_signal_emit_by_name (head->data, "released", priv->keyboard);
|
g_signal_emit_by_name (head->data, "released", priv->keyboard);
|
||||||
}
|
}
|
||||||
g_list_free (list);
|
g_list_free (list);
|
||||||
@ -258,12 +261,14 @@ eek_gtk_keyboard_real_motion_notify_event (GtkWidget *self,
|
|||||||
if (head->data == key)
|
if (head->data == key)
|
||||||
found = TRUE;
|
found = TRUE;
|
||||||
else
|
else
|
||||||
g_signal_emit_by_name (head->data, "cancelled", priv->keyboard);
|
g_signal_emit_by_name (head->data, "cancelled");
|
||||||
}
|
}
|
||||||
g_list_free (list);
|
g_list_free (list);
|
||||||
|
|
||||||
if (!found)
|
if (!found) {
|
||||||
g_signal_emit_by_name (key, "pressed", priv->keyboard);
|
g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKey pressed");
|
||||||
|
g_signal_emit_by_name (key, "pressed");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -281,8 +286,10 @@ eek_gtk_keyboard_real_unmap (GtkWidget *self)
|
|||||||
EekKeyboard::key-released signal can remove elements from its
|
EekKeyboard::key-released signal can remove elements from its
|
||||||
internal copy */
|
internal copy */
|
||||||
list = eek_keyboard_get_pressed_keys (priv->keyboard);
|
list = eek_keyboard_get_pressed_keys (priv->keyboard);
|
||||||
for (head = list; head; head = g_list_next (head))
|
for (head = list; head; head = g_list_next (head)) {
|
||||||
g_signal_emit_by_name (head->data, "released", priv->keyboard);
|
g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKey released");
|
||||||
|
g_signal_emit_by_name (head->data, "released");
|
||||||
|
}
|
||||||
g_list_free (list);
|
g_list_free (list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,6 +406,7 @@ eek_gtk_keyboard_dispose (GObject *object)
|
|||||||
|
|
||||||
list = eek_keyboard_get_pressed_keys (priv->keyboard);
|
list = eek_keyboard_get_pressed_keys (priv->keyboard);
|
||||||
for (head = list; head; head = g_list_next (head)) {
|
for (head = list; head; head = g_list_next (head)) {
|
||||||
|
g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKey pressed");
|
||||||
g_signal_emit_by_name (head->data, "released", priv->keyboard);
|
g_signal_emit_by_name (head->data, "released", priv->keyboard);
|
||||||
}
|
}
|
||||||
g_list_free (list);
|
g_list_free (list);
|
||||||
|
|||||||
@ -43,6 +43,9 @@ typedef struct _EekKeyPrivate EekKeyPrivate;
|
|||||||
/**
|
/**
|
||||||
* EekKey:
|
* EekKey:
|
||||||
*
|
*
|
||||||
|
* Contains information about the state of a key.
|
||||||
|
* TODO: rewrite as a plain struct
|
||||||
|
*
|
||||||
* The #EekKey structure contains only private data and should only be
|
* The #EekKey structure contains only private data and should only be
|
||||||
* accessed using the provided API.
|
* accessed using the provided API.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -91,12 +91,18 @@ eek_modifier_key_free (EekModifierKey *modkey)
|
|||||||
g_slice_free (EekModifierKey, modkey);
|
g_slice_free (EekModifierKey, modkey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void eek_keyboard_press_key(EekKeyboard *keyboard, EekKey *key) {
|
||||||
|
g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKeyboard key-pressed");
|
||||||
|
g_signal_emit (keyboard, signals[KEY_PRESSED], 0, key);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_key_pressed (EekSection *section,
|
on_key_pressed (EekSection *section,
|
||||||
EekKey *key,
|
EekKey *key,
|
||||||
EekKeyboard *keyboard)
|
EekKeyboard *keyboard)
|
||||||
{
|
{
|
||||||
g_signal_emit (keyboard, signals[KEY_PRESSED], 0, key);
|
g_log("squeek", G_LOG_LEVEL_DEBUG, "DO NOT emit EekKeyboard key-pressed");
|
||||||
|
//g_signal_emit (keyboard, signals[KEY_PRESSED], 0, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -104,6 +110,7 @@ on_key_released (EekSection *section,
|
|||||||
EekKey *key,
|
EekKey *key,
|
||||||
EekKeyboard *keyboard)
|
EekKeyboard *keyboard)
|
||||||
{
|
{
|
||||||
|
g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKeyboard key-released");
|
||||||
g_signal_emit (keyboard, signals[KEY_RELEASED], 0, key);
|
g_signal_emit (keyboard, signals[KEY_RELEASED], 0, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -188,5 +188,7 @@ EekModifierKey *eek_modifier_key_copy
|
|||||||
void eek_modifier_key_free
|
void eek_modifier_key_free
|
||||||
(EekModifierKey *modkey);
|
(EekModifierKey *modkey);
|
||||||
|
|
||||||
|
void eek_keyboard_press_key(EekKeyboard *keyboard, EekKey *key);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
#endif /* EEK_KEYBOARD_H */
|
#endif /* EEK_KEYBOARD_H */
|
||||||
|
|||||||
@ -118,6 +118,7 @@ static void
|
|||||||
on_pressed (EekKey *key,
|
on_pressed (EekKey *key,
|
||||||
EekSection *section)
|
EekSection *section)
|
||||||
{
|
{
|
||||||
|
g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekSection key-pressed");
|
||||||
g_signal_emit (section, signals[KEY_PRESSED], 0, key);
|
g_signal_emit (section, signals[KEY_PRESSED], 0, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,6 +126,7 @@ static void
|
|||||||
on_released (EekKey *key,
|
on_released (EekKey *key,
|
||||||
EekSection *section)
|
EekSection *section)
|
||||||
{
|
{
|
||||||
|
g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekSection key-released");
|
||||||
g_signal_emit (section, signals[KEY_RELEASED], 0, key);
|
g_signal_emit (section, signals[KEY_RELEASED], 0, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -365,7 +367,9 @@ eek_section_class_init (EekSectionClass *klass)
|
|||||||
g_signal_new (I_("key-pressed"),
|
g_signal_new (I_("key-pressed"),
|
||||||
G_TYPE_FROM_CLASS(gobject_class),
|
G_TYPE_FROM_CLASS(gobject_class),
|
||||||
G_SIGNAL_RUN_LAST,
|
G_SIGNAL_RUN_LAST,
|
||||||
G_STRUCT_OFFSET(EekSectionClass, key_pressed),
|
// FIXME: this handler seems to be unnecessary complexity. Either remove or justify
|
||||||
|
// G_STRUCT_OFFSET(EekSectionClass, key_pressed),
|
||||||
|
0,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
g_cclosure_marshal_VOID__OBJECT,
|
g_cclosure_marshal_VOID__OBJECT,
|
||||||
|
|||||||
Reference in New Issue
Block a user