submission: Take over virtual_keyboard handling
This commit is contained in:
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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 */
|
||||
|
||||
@ -38,6 +38,7 @@ G_BEGIN_DECLS
|
||||
typedef struct _EekBounds EekBounds;
|
||||
|
||||
typedef struct _EekboardContextService EekboardContextService;
|
||||
typedef struct _ServerContextService ServerContextService;
|
||||
typedef struct _LevelKeyboard LevelKeyboard;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user