eekboard-context-service: Drop private struct

There's no point having it for a final type and it only
makes the code harder to read.
This commit is contained in:
Guido Günther
2020-09-11 18:53:22 +02:00
parent 53f30324f0
commit 07faf906d8
2 changed files with 14 additions and 20 deletions

View File

@ -55,11 +55,8 @@ static guint signals[LAST_SIGNAL] = { 0, };
*/
struct _EekboardContextService {
GObject parent;
EekboardContextServicePrivate *priv;
struct squeek_layout_state *layout; // Unowned
};
struct _EekboardContextServicePrivate {
LevelKeyboard *keyboard; // currently used keyboard
GSettings *settings; // Owned reference
@ -70,7 +67,7 @@ struct _EekboardContextServicePrivate {
struct submission *submission; // unowned
};
G_DEFINE_TYPE_WITH_PRIVATE (EekboardContextService, eekboard_context_service, G_TYPE_OBJECT);
G_DEFINE_TYPE (EekboardContextService, eekboard_context_service, G_TYPE_OBJECT);
static void
eekboard_context_service_set_property (GObject *object,
@ -96,7 +93,7 @@ eekboard_context_service_get_property (GObject *object,
switch (prop_id) {
case PROP_KEYBOARD:
g_value_set_object (value, context->priv->keyboard);
g_value_set_object (value, context->keyboard);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@ -157,12 +154,12 @@ eekboard_context_service_use_layout(EekboardContextService *context, struct sque
struct squeek_layout *layout = squeek_load_layout(layout_name, state->arrangement);
LevelKeyboard *keyboard = level_keyboard_new(layout);
// set as current
LevelKeyboard *previous_keyboard = context->priv->keyboard;
context->priv->keyboard = keyboard;
LevelKeyboard *previous_keyboard = context->keyboard;
context->keyboard = keyboard;
// Update the keymap if necessary.
// TODO: Update submission on change event
if (context->priv->submission) {
submission_set_keyboard(context->priv->submission, keyboard, timestamp);
if (context->submission) {
submission_set_keyboard(context->submission, keyboard, timestamp);
}
// Update UI
@ -177,7 +174,7 @@ eekboard_context_service_use_layout(EekboardContextService *context, struct sque
static void eekboard_context_service_update_settings_layout(EekboardContextService *context) {
g_autofree gchar *keyboard_layout = NULL;
g_autofree gchar *keyboard_type = NULL;
settings_get_layout(context->priv->settings,
settings_get_layout(context->settings,
&keyboard_type, &keyboard_layout);
if (g_strcmp0(context->layout->layout_name, keyboard_layout) != 0 || context->layout->overlay_name) {
@ -255,8 +252,6 @@ eekboard_context_service_class_init (EekboardContextServiceClass *klass)
static void
eekboard_context_service_init (EekboardContextService *self)
{
self->priv = eekboard_context_service_get_instance_private (self);
const char *schema_name = "org.gnome.desktop.input-sources";
GSettingsSchemaSource *ssrc = g_settings_schema_source_get_default();
g_autoptr(GSettingsSchema) schema = NULL;
@ -270,8 +265,8 @@ eekboard_context_service_init (EekboardContextService *self)
if (schema) {
// Not referencing the found schema directly,
// because it's not clear how...
self->priv->settings = g_settings_new (schema_name);
gulong conn_id = g_signal_connect(self->priv->settings, "change-event",
self->settings = g_settings_new (schema_name);
gulong conn_id = g_signal_connect(self->settings, "change-event",
G_CALLBACK(settings_handle_layout_changed),
self);
if (conn_id == 0) {
@ -307,7 +302,7 @@ eekboard_context_service_destroy (EekboardContextService *context)
LevelKeyboard *
eekboard_context_service_get_keyboard (EekboardContextService *context)
{
return context->priv->keyboard;
return context->keyboard;
}
void eekboard_context_service_set_hint_purpose(EekboardContextService *context,
@ -347,13 +342,13 @@ EekboardContextService *eekboard_context_service_new(struct squeek_layout_state
}
void eekboard_context_service_set_submission(EekboardContextService *context, struct submission *submission) {
context->priv->submission = submission;
if (context->priv->submission) {
context->submission = submission;
if (context->submission) {
uint32_t time = gdk_event_get_time(NULL);
submission_set_keyboard(context->priv->submission, context->priv->keyboard, time);
submission_set_keyboard(context->submission, context->keyboard, time);
}
}
void eekboard_context_service_set_ui(EekboardContextService *context, ServerContextService *ui) {
context->priv->ui = ui;
context->ui = ui;
}

View File

@ -35,7 +35,6 @@ G_BEGIN_DECLS
#define EEKBOARD_TYPE_CONTEXT_SERVICE (eekboard_context_service_get_type())
typedef struct _EekboardContextServicePrivate EekboardContextServicePrivate;
G_DECLARE_FINAL_TYPE(EekboardContextService, eekboard_context_service, EEKBOARD, CONTEXT_SERVICE, GObject)
EekboardContextService *eekboard_context_service_new(struct squeek_layout_state *state);