submission: Take over virtual_keyboard handling

This commit is contained in:
Dorota Czaplejewicz
2020-01-12 20:09:05 +00:00
parent aafecfac02
commit 326bb9319f
14 changed files with 147 additions and 77 deletions

View File

@ -39,6 +39,7 @@
#include "eekboard/eekboard-context-service.h"
#include "src/layout.h"
#include "src/submission.h"
enum {
PROP_0,
@ -55,6 +56,7 @@ typedef struct _EekGtkKeyboardPrivate
{
EekRenderer *renderer;
EekboardContextService *eekboard_context; // unowned reference
struct submission *submission; // unowned reference
LevelKeyboard *keyboard; // unowned reference; it's kept in server-context (FIXME)
GdkEventSequence *sequence; // unowned reference
@ -123,7 +125,8 @@ static void depress(EekGtkKeyboard *self,
{
EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
squeek_layout_depress(priv->keyboard->layout, priv->eekboard_context->virtual_keyboard,
squeek_layout_depress(priv->keyboard->layout,
priv->submission,
x, y, eek_renderer_get_transformation(priv->renderer), time, self);
}
@ -131,7 +134,8 @@ static void drag(EekGtkKeyboard *self,
gdouble x, gdouble y, guint32 time)
{
EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
squeek_layout_drag(priv->keyboard->layout, priv->eekboard_context->virtual_keyboard,
squeek_layout_drag(priv->keyboard->layout,
priv->submission,
x, y, eek_renderer_get_transformation(priv->renderer), time,
priv->eekboard_context, self);
}
@ -140,7 +144,8 @@ static void release(EekGtkKeyboard *self, guint32 time)
{
EekGtkKeyboardPrivate *priv = eek_gtk_keyboard_get_instance_private (self);
squeek_layout_release(priv->keyboard->layout, priv->eekboard_context->virtual_keyboard,
squeek_layout_release(priv->keyboard->layout,
priv->submission,
eek_renderer_get_transformation(priv->renderer), time,
priv->eekboard_context, self);
}
@ -230,7 +235,8 @@ eek_gtk_keyboard_real_unmap (GtkWidget *self)
if (priv->keyboard) {
squeek_layout_release_all_only(
priv->keyboard->layout, priv->eekboard_context->virtual_keyboard,
priv->keyboard->layout,
priv->submission,
gdk_event_get_time(NULL));
}
@ -265,7 +271,8 @@ eek_gtk_keyboard_dispose (GObject *object)
if (priv->keyboard) {
squeek_layout_release_all_only(
priv->keyboard->layout, priv->eekboard_context->virtual_keyboard,
priv->keyboard->layout,
priv->submission,
gdk_event_get_time(NULL));
priv->keyboard = NULL;
}
@ -312,12 +319,14 @@ eek_gtk_keyboard_init (EekGtkKeyboard *self)
* Returns: a #GtkWidget
*/
GtkWidget *
eek_gtk_keyboard_new (LevelKeyboard *keyboard, EekboardContextService *eekservice)
eek_gtk_keyboard_new (LevelKeyboard *keyboard, EekboardContextService *eekservice,
struct submission *submission)
{
EekGtkKeyboard *ret = EEK_GTK_KEYBOARD(g_object_new (EEK_TYPE_GTK_KEYBOARD, NULL));
EekGtkKeyboardPrivate *priv = (EekGtkKeyboardPrivate*)eek_gtk_keyboard_get_instance_private (ret);
priv->keyboard = keyboard;
priv->eekboard_context = eekservice;
priv->submission = submission;
return GTK_WIDGET(ret);
}

View File

@ -30,6 +30,7 @@
#include "eek/eek-types.h"
struct submission;
typedef struct _LevelKeyboard LevelKeyboard; // including causes weird bugs
G_BEGIN_DECLS
@ -47,7 +48,7 @@ struct _EekGtkKeyboardClass
};
GType eek_gtk_keyboard_get_type (void) G_GNUC_CONST;
GtkWidget *eek_gtk_keyboard_new (LevelKeyboard *keyboard, EekboardContextService *eekservice);
GtkWidget *eek_gtk_keyboard_new (LevelKeyboard *keyboard, EekboardContextService *eekservice, struct submission *submission);
G_END_DECLS
#endif /* EEK_GTK_KEYBOARD_H */

View File

@ -38,6 +38,7 @@ G_BEGIN_DECLS
typedef struct _EekBounds EekBounds;
typedef struct _EekboardContextService EekboardContextService;
typedef struct _ServerContextService ServerContextService;
typedef struct _LevelKeyboard LevelKeyboard;
/**