Forward press timestamps

This commit is contained in:
Dorota Czaplejewicz
2019-06-19 15:49:51 +00:00
parent a3d745edd0
commit 260ab42b9e
9 changed files with 44 additions and 36 deletions

View File

@ -72,7 +72,7 @@ struct _EekGtkKeyboardPrivate
static EekColor * color_from_gdk_color (GdkColor *gdk_color);
static void on_key_pressed (EekKeyboard *keyboard,
EekKey *key,
EekKey *key, guint32 timestamp,
gpointer user_data);
static void on_key_released (EekKeyboard *keyboard,
EekKey *key,
@ -212,7 +212,7 @@ eek_gtk_keyboard_real_button_press_event (GtkWidget *self,
if (key) {
g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKey pressed");
g_signal_emit_by_name (key, "pressed"); // TODO: set the pressed property on the key instead
eek_keyboard_press_key(priv->keyboard, key);
eek_keyboard_press_key(priv->keyboard, key, event->time);
}
// TODO: send time
return TRUE;
@ -584,8 +584,11 @@ render_released_key (GtkWidget *widget,
static void
on_key_pressed (EekKeyboard *keyboard,
EekKey *key,
guint32 timestamp,
gpointer user_data)
{
(void)keyboard;
(void)timestamp;
GtkWidget *widget = user_data;
EekGtkKeyboardPrivate *priv = EEK_GTK_KEYBOARD_GET_PRIVATE(widget);

View File

@ -30,10 +30,6 @@
#endif /* HAVE_CONFIG_H */
#include <string.h>
#define DEBUG 0
#if DEBUG
#include <stdio.h>
#endif
#include "eek-key.h"
#include "eek-section.h"

View File

@ -32,6 +32,7 @@
#endif /* HAVE_CONFIG_H */
#include "eek-keyboard.h"
#include "eek-marshalers.h"
#include "eek-section.h"
#include "eek-key.h"
#include "eek-symbol.h"
@ -92,9 +93,9 @@ eek_modifier_key_free (EekModifierKey *modkey)
g_slice_free (EekModifierKey, modkey);
}
void eek_keyboard_press_key(EekKeyboard *keyboard, EekKey *key) {
void eek_keyboard_press_key(EekKeyboard *keyboard, EekKey *key, guint32 timestamp) {
g_log("squeek", G_LOG_LEVEL_DEBUG, "emit EekKeyboard key-pressed");
g_signal_emit (keyboard, signals[KEY_PRESSED], 0, key);
g_signal_emit (keyboard, signals[KEY_PRESSED], 0, key, timestamp);
}
static void
@ -279,7 +280,8 @@ set_modifiers_with_key (EekKeyboard *self,
static void
eek_keyboard_real_key_pressed (EekKeyboard *self,
EekKey *key)
EekKey *key,
guint32 timestamp)
{
EekKeyboardPrivate *priv = EEK_KEYBOARD_GET_PRIVATE(self);
EekSymbol *symbol;
@ -305,7 +307,7 @@ eek_keyboard_real_key_pressed (EekKeyboard *self,
EekboardContext ec = {0};
Client c = {&ec, 0, {0}};
emit_key_activated(&ec, keycode, symbol, modifiers, &c, TRUE);
emit_key_activated(&ec, keycode, symbol, modifiers, &c, TRUE, timestamp);
}
static void
@ -489,10 +491,11 @@ eek_keyboard_class_init (EekKeyboardClass *klass)
G_STRUCT_OFFSET(EekKeyboardClass, key_pressed),
NULL,
NULL,
g_cclosure_marshal_VOID__OBJECT,
_eek_marshal_VOID__OBJECT_UINT,
G_TYPE_NONE,
1,
EEK_TYPE_KEY);
2,
EEK_TYPE_KEY,
G_TYPE_UINT);
/**
* EekKeyboard::key-released:

View File

@ -86,7 +86,8 @@ struct _EekKeyboardClass
/* signals */
void (* key_pressed) (EekKeyboard *self,
EekKey *key);
EekKey *key,
guint32 timestamp);
void (* key_released) (EekKeyboard *self,
EekKey *key);
@ -190,7 +191,7 @@ EekModifierKey *eek_modifier_key_copy
void eek_modifier_key_free
(EekModifierKey *modkey);
void eek_keyboard_press_key(EekKeyboard *keyboard, EekKey *key);
void eek_keyboard_press_key(EekKeyboard *keyboard, EekKey *key, guint32 timestamp);
G_END_DECLS
#endif /* EEK_KEYBOARD_H */

View File

@ -1 +1,2 @@
VOID:INT,INT
VOID:OBJECT,UINT