diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dfab3af3..878ca595 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -36,7 +36,7 @@ build_meson: expire_in: 3h script: - apt-get -y build-dep . - - meson . _build/ -Ddepdatadir=/usr/share + - meson . _build/ -Ddepdatadir=/usr/share --werror - ninja -C _build install build_deb: diff --git a/eek/eek-element.h b/eek/eek-element.h index 87e59723..83b1e7e5 100644 --- a/eek/eek-element.h +++ b/eek/eek-element.h @@ -38,8 +38,6 @@ struct _EekElementClass GObjectClass parent_class; }; -GType eek_element_get_type (void) G_GNUC_CONST; - void eek_element_set_name (EekElement *element, const gchar *name); diff --git a/eek/eek-gtk-keyboard.h b/eek/eek-gtk-keyboard.h index 1f07cba3..e9df72b3 100644 --- a/eek/eek-gtk-keyboard.h +++ b/eek/eek-gtk-keyboard.h @@ -47,7 +47,6 @@ struct _EekGtkKeyboardClass gpointer pdummy[24]; }; -GType eek_gtk_keyboard_get_type (void) G_GNUC_CONST; GtkWidget *eek_gtk_keyboard_new (EekboardContextService *eekservice, struct submission *submission, struct squeek_layout_state *layout); void eek_gtk_keyboard_emit_feedback (EekGtkKeyboard *self); diff --git a/eek/eek-keyboard.c b/eek/eek-keyboard.c index 292a0879..7d000480 100644 --- a/eek/eek-keyboard.c +++ b/eek/eek-keyboard.c @@ -21,6 +21,7 @@ #include "config.h" #define _XOPEN_SOURCE 500 +#include #include #include #include @@ -68,7 +69,8 @@ level_keyboard_new (struct squeek_layout *layout) g_autofree char *path = strdup("/eek_keymap-XXXXXX"); char *r = &path[strlen(path) - 6]; - getrandom(r, 6, GRND_NONBLOCK); + if (getrandom(r, 6, GRND_NONBLOCK) < 0) + g_error("Failed to get random numbers: %s", strerror(errno)); for (unsigned i = 0; i < 6; i++) { r[i] = (r[i] & 0b1111111) | 0b1000000; // A-z r[i] = r[i] > 'z' ? '?' : r[i]; // The randomizer doesn't need to be good... diff --git a/eek/eek-renderer.c b/eek/eek-renderer.c index ceeeb02d..8e62c560 100644 --- a/eek/eek-renderer.c +++ b/eek/eek-renderer.c @@ -241,7 +241,7 @@ static GType new_type(char *name) { ); } -static GType view_type() { +static GType view_type(void) { static GType type = 0; if (!type) { type = new_type("sq_view"); @@ -249,7 +249,7 @@ static GType view_type() { return type; } -static GType button_type() { +static GType button_type(void) { static GType type = 0; if (!type) { type = new_type("sq_button"); diff --git a/eekboard/eekboard-context-service.c b/eekboard/eekboard-context-service.c index c0c023d6..a360c2b6 100644 --- a/eekboard/eekboard-context-service.c +++ b/eekboard/eekboard-context-service.c @@ -42,10 +42,21 @@ enum { static guint signals[LAST_SIGNAL] = { 0, }; -#define EEKBOARD_CONTEXT_SERVICE_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((obj), EEKBOARD_TYPE_CONTEXT_SERVICE, EekboardContextServicePrivate)) +/** + * EekboardContextService: + * + * Handles layout state, gsettings, and virtual-keyboard. + * + * TODO: Restrict to managing keyboard layouts, and maybe button repeats, + * and the virtual keyboard protocol. + * + * The #EekboardContextService structure contains only private data + * and should only be accessed using the provided API. + */ +struct _EekboardContextService { + GObject parent; + struct squeek_layout_state *layout; // Unowned -struct _EekboardContextServicePrivate { LevelKeyboard *keyboard; // currently used keyboard GSettings *settings; // Owned reference @@ -56,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, @@ -82,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); @@ -143,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 @@ -163,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) { @@ -217,7 +228,7 @@ eekboard_context_service_class_init (EekboardContextServiceClass *klass) g_signal_new (I_("destroyed"), G_TYPE_FROM_CLASS(gobject_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(EekboardContextServiceClass, destroyed), + 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, @@ -241,30 +252,30 @@ eekboard_context_service_class_init (EekboardContextServiceClass *klass) static void eekboard_context_service_init (EekboardContextService *self) { - self->priv = EEKBOARD_CONTEXT_SERVICE_GET_PRIVATE(self); const char *schema_name = "org.gnome.desktop.input-sources"; GSettingsSchemaSource *ssrc = g_settings_schema_source_get_default(); - if (ssrc) { - GSettingsSchema *schema = g_settings_schema_source_lookup(ssrc, - schema_name, - TRUE); - 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", - G_CALLBACK(settings_handle_layout_changed), - self); - if (conn_id == 0) { - g_warning ("Could not connect to gsettings updates, " - "automatic layout changing unavailable"); - } - } else { - g_warning("Gsettings schema %s is not installed on the system. " - "Layout switching unavailable", schema_name); + g_autoptr(GSettingsSchema) schema = NULL; + + if (!ssrc) { + g_warning("No gsettings schemas installed. Layout switching unavailable."); + return; + } + + schema = g_settings_schema_source_lookup(ssrc, schema_name, TRUE); + if (schema) { + // Not referencing the found schema directly, + // because it's not clear how... + 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) { + g_warning ("Could not connect to gsettings updates, " + "automatic layout changing unavailable"); } } else { - g_warning("No gsettings schemas installed. Layout switching unavailable."); + g_warning("Gsettings schema %s is not installed on the system. " + "Layout switching unavailable", schema_name); } } @@ -291,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, @@ -331,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; } diff --git a/eekboard/eekboard-context-service.h b/eekboard/eekboard-context-service.h index b1d47f42..345c246e 100644 --- a/eekboard/eekboard-context-service.h +++ b/eekboard/eekboard-context-service.h @@ -34,54 +34,9 @@ G_BEGIN_DECLS #define EEKBOARD_CONTEXT_SERVICE_INTERFACE "org.fedorahosted.Eekboard.Context" #define EEKBOARD_TYPE_CONTEXT_SERVICE (eekboard_context_service_get_type()) -#define EEKBOARD_CONTEXT_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EEKBOARD_TYPE_CONTEXT_SERVICE, EekboardContextService)) -#define EEKBOARD_CONTEXT_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EEKBOARD_TYPE_CONTEXT_SERVICE, EekboardContextServiceClass)) -#define EEKBOARD_IS_CONTEXT_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EEKBOARD_TYPE_CONTEXT_SERVICE)) -#define EEKBOARD_IS_CONTEXT_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EEKBOARD_TYPE_CONTEXT_SERVICE)) -#define EEKBOARD_CONTEXT_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EEKBOARD_TYPE_CONTEXT_SERVICE, EekboardContextServiceClass)) +G_DECLARE_FINAL_TYPE(EekboardContextService, eekboard_context_service, EEKBOARD, CONTEXT_SERVICE, GObject) -typedef struct _EekboardContextServiceClass EekboardContextServiceClass; -typedef struct _EekboardContextServicePrivate EekboardContextServicePrivate; - -/** - * EekboardContextService: - * - * Handles layout state, gsettings, and virtual-keyboard. - * - * TODO: Restrict to managing keyboard layouts, and maybe button repeats, - * and the virtual keyboard protocol. - * - * The #EekboardContextService structure contains only private data - * and should only be accessed using the provided API. - */ -struct _EekboardContextService { - GObject parent; - EekboardContextServicePrivate *priv; - struct squeek_layout_state *layout; // Unowned -}; - -/** - * EekboardContextServiceClass: - * @create_keyboard: virtual function for create a keyboard from string - * @enabled: class handler for #EekboardContextService::enabled signal - * @disabled: class handler for #EekboardContextService::disabled signal - */ -struct _EekboardContextServiceClass { - /*< private >*/ - GObjectClass parent_class; - - /*< public >*/ - /* signals */ - void (*destroyed) (EekboardContextService *self); - - /*< private >*/ - /* padding */ - gpointer pdummy[24]; -}; - -GType eekboard_context_service_get_type - (void) G_GNUC_CONST; EekboardContextService *eekboard_context_service_new(struct squeek_layout_state *state); void eekboard_context_service_set_submission(EekboardContextService *context, struct submission *submission); void eekboard_context_service_set_ui(EekboardContextService *context, ServerContextService *ui); diff --git a/meson.build b/meson.build index 559bb300..d8e0e1bb 100644 --- a/meson.build +++ b/meson.build @@ -19,6 +19,14 @@ add_project_arguments( '-Werror=missing-field-initializers', '-Werror=incompatible-pointer-types', '-Werror=int-conversion', + '-Wformat-nonliteral', + '-Wformat-security', + '-Winit-self', + '-Wmaybe-uninitialized', + '-Wold-style-definition', + '-Wredundant-decls', + '-Wstrict-prototypes', + '-Wunused-function', ], language: 'c' ) diff --git a/src/keyboard.rs b/src/keyboard.rs index 19cd376c..749d21ad 100644 --- a/src/keyboard.rs +++ b/src/keyboard.rs @@ -192,7 +192,7 @@ pub fn generate_keymap( key {{ [ BackSpace ] }};" )?; - for (name, state) in keystates.iter() { + for (_name, state) in keystates.iter() { if let Action::Submit { text: _, keys } = &state.action { for keysym in keys.iter() { write!( diff --git a/src/layout.rs b/src/layout.rs index 41515bc5..b1cae8ee 100644 --- a/src/layout.rs +++ b/src/layout.rs @@ -107,8 +107,8 @@ pub mod c { impl Bounds { pub fn contains(&self, point: &Point) -> bool { - (point.x > self.x && point.x < self.x + self.width - && point.y > self.y && point.y < self.y + self.height) + point.x > self.x && point.x < self.x + self.width + && point.y > self.y && point.y < self.y + self.height } } diff --git a/src/outputs.h b/src/outputs.h index e018d037..f6466a70 100644 --- a/src/outputs.h +++ b/src/outputs.h @@ -9,7 +9,7 @@ struct squeek_output_handle { struct squeek_outputs *outputs; }; -struct squeek_outputs *squeek_outputs_new(); +struct squeek_outputs *squeek_outputs_new(void); void squeek_outputs_free(struct squeek_outputs*); void squeek_outputs_register(struct squeek_outputs*, struct wl_output *output); struct squeek_output_handle squeek_outputs_get_current(struct squeek_outputs*); diff --git a/src/server-context-service.c b/src/server-context-service.c index 48f1deeb..ded432ef 100644 --- a/src/server-context-service.c +++ b/src/server-context-service.c @@ -34,8 +34,6 @@ enum { PROP_LAST }; -typedef struct _ServerContextServiceClass ServerContextServiceClass; - struct _ServerContextService { GObject parent; @@ -52,39 +50,36 @@ struct _ServerContextService { guint last_requested_height; }; -struct _ServerContextServiceClass { - GObjectClass parent_class; -}; - G_DEFINE_TYPE(ServerContextService, server_context_service, G_TYPE_OBJECT); static void -on_destroy (GtkWidget *widget, gpointer user_data) +on_destroy (ServerContextService *self, GtkWidget *widget) { - ServerContextService *context = user_data; + g_return_if_fail (SERVER_IS_CONTEXT_SERVICE (self)); - g_assert (widget == GTK_WIDGET(context->window)); + g_assert (widget == GTK_WIDGET(self->window)); - context->window = NULL; - context->widget = NULL; + self->window = NULL; + self->widget = NULL; //eekboard_context_service_destroy (EEKBOARD_CONTEXT_SERVICE (context)); } static void -on_notify_map (GObject *object, - ServerContextService *context) +on_notify_map (ServerContextService *self, GtkWidget *widget) { - g_object_set (context, "visible", TRUE, NULL); + g_return_if_fail (SERVER_IS_CONTEXT_SERVICE (self)); + + g_object_set (self, "visible", TRUE, NULL); } static void -on_notify_unmap (GObject *object, - ServerContextService *context) +on_notify_unmap (ServerContextService *self, GtkWidget *widget) { - (void)object; - g_object_set (context, "visible", FALSE, NULL); + g_return_if_fail (SERVER_IS_CONTEXT_SERVICE (self)); + + g_object_set (self, "visible", FALSE, NULL); } static uint32_t @@ -100,10 +95,14 @@ calculate_height(int32_t width) } static void -on_surface_configure(PhoshLayerSurface *surface, ServerContextService *context) +on_surface_configure(ServerContextService *self, PhoshLayerSurface *surface) { gint width; gint height; + + g_return_if_fail (SERVER_IS_CONTEXT_SERVICE (self)); + g_return_if_fail (PHOSH_IS_LAYER_SURFACE (surface)); + g_object_get(G_OBJECT(surface), "configured-width", &width, "configured-height", &height, @@ -122,8 +121,8 @@ on_surface_configure(PhoshLayerSurface *surface, ServerContextService *context) // as it's likely to create pointless loops // of request->reject->request_again->... if (desired_height != configured_height - && context->last_requested_height != desired_height) { - context->last_requested_height = desired_height; + && self->last_requested_height != desired_height) { + self->last_requested_height = desired_height; phosh_layer_surface_set_size(surface, 0, (gint)desired_height); phosh_layer_surface_set_exclusive_zone(surface, (gint)desired_height); @@ -132,16 +131,16 @@ on_surface_configure(PhoshLayerSurface *surface, ServerContextService *context) } static void -make_window (ServerContextService *context) +make_window (ServerContextService *self) { - if (context->window) + if (self->window) g_error("Window already present"); struct squeek_output_handle output = squeek_outputs_get_current(squeek_wayland->outputs); - squeek_uiman_set_output(context->manager, output); - uint32_t height = squeek_uiman_get_perceptual_height(context->manager); + squeek_uiman_set_output(self->manager, output); + uint32_t height = squeek_uiman_get_perceptual_height(self->manager); - context->window = g_object_new ( + self->window = g_object_new ( PHOSH_TYPE_LAYER_SURFACE, "layer-shell", squeek_wayland->layer_shell, "wl-output", output.output, @@ -156,11 +155,11 @@ make_window (ServerContextService *context) NULL ); - g_object_connect (context->window, - "signal::destroy", G_CALLBACK(on_destroy), context, - "signal::map", G_CALLBACK(on_notify_map), context, - "signal::unmap", G_CALLBACK(on_notify_unmap), context, - "signal::configured", G_CALLBACK(on_surface_configure), context, + g_object_connect (self->window, + "swapped-signal::destroy", G_CALLBACK(on_destroy), self, + "swapped-signal::map", G_CALLBACK(on_notify_map), self, + "swapped-signal::unmap", G_CALLBACK(on_notify_unmap), self, + "swapped-signal::configured", G_CALLBACK(on_surface_configure), self, NULL); // The properties below are just to make hacking easier. @@ -168,87 +167,87 @@ make_window (ServerContextService *context) // and there's no space in the protocol for others. // Those may still be useful in the future, // or for hacks with regular windows. - gtk_widget_set_can_focus (GTK_WIDGET(context->window), FALSE); - g_object_set (G_OBJECT(context->window), "accept_focus", FALSE, NULL); - gtk_window_set_title (GTK_WINDOW(context->window), + gtk_widget_set_can_focus (GTK_WIDGET(self->window), FALSE); + g_object_set (G_OBJECT(self->window), "accept_focus", FALSE, NULL); + gtk_window_set_title (GTK_WINDOW(self->window), _("Squeekboard")); - gtk_window_set_icon_name (GTK_WINDOW(context->window), "squeekboard"); - gtk_window_set_keep_above (GTK_WINDOW(context->window), TRUE); + gtk_window_set_icon_name (GTK_WINDOW(self->window), "squeekboard"); + gtk_window_set_keep_above (GTK_WINDOW(self->window), TRUE); } static void -destroy_window (ServerContextService *context) +destroy_window (ServerContextService *self) { - gtk_widget_destroy (GTK_WIDGET (context->window)); - context->window = NULL; + gtk_widget_destroy (GTK_WIDGET (self->window)); + self->window = NULL; } static void -make_widget (ServerContextService *context) +make_widget (ServerContextService *self) { - if (context->widget) { - gtk_widget_destroy(context->widget); - context->widget = NULL; + if (self->widget) { + gtk_widget_destroy(self->widget); + self->widget = NULL; } - context->widget = eek_gtk_keyboard_new (context->state, context->submission, context->layout); + self->widget = eek_gtk_keyboard_new (self->state, self->submission, self->layout); - gtk_widget_set_has_tooltip (context->widget, TRUE); - gtk_container_add (GTK_CONTAINER(context->window), context->widget); - gtk_widget_show_all(context->widget); + gtk_widget_set_has_tooltip (self->widget, TRUE); + gtk_container_add (GTK_CONTAINER(self->window), self->widget); + gtk_widget_show_all(self->widget); } static gboolean -on_hide (ServerContextService *context) +on_hide (ServerContextService *self) { - gtk_widget_hide (GTK_WIDGET(context->window)); - context->hiding = 0; + gtk_widget_hide (GTK_WIDGET(self->window)); + self->hiding = 0; return G_SOURCE_REMOVE; } static void -server_context_service_real_show_keyboard (ServerContextService *context) +server_context_service_real_show_keyboard (ServerContextService *self) { - if (context->hiding) { - g_source_remove (context->hiding); - context->hiding = 0; + if (self->hiding) { + g_source_remove (self->hiding); + self->hiding = 0; } - if (!context->window) - make_window (context); - if (!context->widget) - make_widget (context); + if (!self->window) + make_window (self); + if (!self->widget) + make_widget (self); - context->visible = TRUE; - gtk_widget_show (GTK_WIDGET(context->window)); + self->visible = TRUE; + gtk_widget_show (GTK_WIDGET(self->window)); } static void -server_context_service_real_hide_keyboard (ServerContextService *context) +server_context_service_real_hide_keyboard (ServerContextService *self) { - if (!context->hiding) - context->hiding = g_timeout_add (200, (GSourceFunc) on_hide, context); + if (!self->hiding) + self->hiding = g_timeout_add (200, (GSourceFunc) on_hide, self); - context->visible = FALSE; + self->visible = FALSE; } void -server_context_service_show_keyboard (ServerContextService *context) +server_context_service_show_keyboard (ServerContextService *self) { - g_return_if_fail (SERVER_IS_CONTEXT_SERVICE(context)); + g_return_if_fail (SERVER_IS_CONTEXT_SERVICE(self)); - if (!context->visible) { - server_context_service_real_show_keyboard (context); + if (!self->visible) { + server_context_service_real_show_keyboard (self); } } void -server_context_service_hide_keyboard (ServerContextService *context) +server_context_service_hide_keyboard (ServerContextService *self) { - g_return_if_fail (SERVER_IS_CONTEXT_SERVICE(context)); + g_return_if_fail (SERVER_IS_CONTEXT_SERVICE(self)); - if (context->visible) { - server_context_service_real_hide_keyboard (context); + if (self->visible) { + server_context_service_real_hide_keyboard (self); } } @@ -258,11 +257,11 @@ server_context_service_set_property (GObject *object, const GValue *value, GParamSpec *pspec) { - ServerContextService *context = SERVER_CONTEXT_SERVICE(object); + ServerContextService *self = SERVER_CONTEXT_SERVICE(object); switch (prop_id) { case PROP_VISIBLE: - context->visible = g_value_get_boolean (value); + self->visible = g_value_get_boolean (value); break; default: @@ -277,10 +276,10 @@ server_context_service_get_property (GObject *object, GValue *value, GParamSpec *pspec) { - ServerContextService *context = SERVER_CONTEXT_SERVICE(object); + ServerContextService *self = SERVER_CONTEXT_SERVICE(object); switch (prop_id) { case PROP_VISIBLE: - g_value_set_boolean (value, context->visible); + g_value_set_boolean (value, self->visible); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -291,10 +290,10 @@ server_context_service_get_property (GObject *object, static void server_context_service_dispose (GObject *object) { - ServerContextService *context = SERVER_CONTEXT_SERVICE(object); + ServerContextService *self = SERVER_CONTEXT_SERVICE(object); - destroy_window (context); - context->widget = NULL; + destroy_window (self); + self->widget = NULL; G_OBJECT_CLASS (server_context_service_parent_class)->dispose (object); } @@ -323,16 +322,16 @@ server_context_service_class_init (ServerContextServiceClass *klass) } static void -server_context_service_init (ServerContextService *state) { - (void)state; +server_context_service_init (ServerContextService *self) { + (void)self; } ServerContextService * -server_context_service_new (EekboardContextService *state, struct submission *submission, struct squeek_layout_state *layout, struct ui_manager *uiman) +server_context_service_new (EekboardContextService *self, struct submission *submission, struct squeek_layout_state *layout, struct ui_manager *uiman) { ServerContextService *ui = g_object_new (SERVER_TYPE_CONTEXT_SERVICE, NULL); ui->submission = submission; - ui->state = state; + ui->state = self; ui->layout = layout; ui->manager = uiman; return ui; diff --git a/src/server-context-service.h b/src/server-context-service.h index a69f85ae..bafe71c3 100644 --- a/src/server-context-service.h +++ b/src/server-context-service.h @@ -25,22 +25,14 @@ G_BEGIN_DECLS #define SERVER_TYPE_CONTEXT_SERVICE (server_context_service_get_type()) -#define SERVER_CONTEXT_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SERVER_TYPE_CONTEXT_SERVICE, ServerContextService)) -#define SERVER_CONTEXT_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SERVER_TYPE_CONTEXT_SERVICE, ServerContextServiceClass)) -#define SERVER_IS_CONTEXT_SERVICE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SERVER_TYPE_CONTEXT_SERVICE)) -#define SERVER_IS_CONTEXT_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SERVER_TYPE_CONTEXT_SERVICE)) -#define SERVER_CONTEXT_SERVICE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SERVER_TYPE_CONTEXT_SERVICE, ServerContextServiceClass)) /** Manages the lifecycle of the window displaying layouts. */ -typedef struct _ServerContextService ServerContextService; +G_DECLARE_FINAL_TYPE (ServerContextService, server_context_service, SERVER, CONTEXT_SERVICE, GObject) -GType server_context_service_get_type - (void) G_GNUC_CONST; - -ServerContextService *server_context_service_new(EekboardContextService *state, struct submission *submission, struct squeek_layout_state *layout, struct ui_manager *uiman); +ServerContextService *server_context_service_new(EekboardContextService *self, struct submission *submission, struct squeek_layout_state *layout, struct ui_manager *uiman); enum squeek_arrangement_kind server_context_service_get_layout_type(ServerContextService *); -void server_context_service_show_keyboard (ServerContextService *context); -void server_context_service_hide_keyboard (ServerContextService *context); +void server_context_service_show_keyboard (ServerContextService *self); +void server_context_service_hide_keyboard (ServerContextService *self); G_END_DECLS #endif /* SERVER_CONTEXT_SERVICE_H */ diff --git a/src/style.h b/src/style.h index 6fd7c8b7..fdc7d463 100644 --- a/src/style.h +++ b/src/style.h @@ -2,6 +2,6 @@ #define __STYLE_H #include "gtk/gtk.h" -GtkCssProvider *squeek_load_style(); +GtkCssProvider *squeek_load_style(void); #endif diff --git a/src/ui_manager.h b/src/ui_manager.h index 57d3cc70..b0c64592 100644 --- a/src/ui_manager.h +++ b/src/ui_manager.h @@ -7,7 +7,7 @@ struct ui_manager; -struct ui_manager *squeek_uiman_new(); +struct ui_manager *squeek_uiman_new(void); void squeek_uiman_set_output(struct ui_manager *uiman, struct squeek_output_handle output); uint32_t squeek_uiman_get_perceptual_height(struct ui_manager *uiman);