EekXklLayout: eek_xkl_layout_set_config() takes XklConfigRec as an argument.
This commit is contained in:
@ -85,12 +85,11 @@ static const char ui_description[] =
|
||||
|
||||
#define SET_LAYOUT_UI_PATH "/MainMenu/KeyboardMenu/SetLayout/LayoutsPH"
|
||||
|
||||
struct _LayoutVariant {
|
||||
struct _ConfigCallbackData {
|
||||
EekBoard *eekboard;
|
||||
gchar *layout;
|
||||
gchar *variant;
|
||||
XklConfigRec *config;
|
||||
};
|
||||
typedef struct _LayoutVariant LayoutVariant;
|
||||
typedef struct _ConfigCallbackData ConfigCallbackData;
|
||||
|
||||
struct _LayoutCallbackData {
|
||||
EekBoard *eekboard;
|
||||
@ -180,18 +179,11 @@ on_key_released (EekKeyboard *keyboard,
|
||||
static void
|
||||
on_activate (GtkAction *action, gpointer user_data)
|
||||
{
|
||||
LayoutVariant *config = user_data;
|
||||
gchar *layouts[2], *variants[2], **vp = NULL;
|
||||
ConfigCallbackData *data = user_data;
|
||||
|
||||
layouts[0] = config->layout;
|
||||
layouts[1] = NULL;
|
||||
if (config->variant) {
|
||||
variants[0] = config->variant;
|
||||
variants[1] = NULL;
|
||||
vp = variants;
|
||||
}
|
||||
eek_xkl_layout_set_config (EEK_XKL_LAYOUT(config->eekboard->layout),
|
||||
layouts, vp, NULL);
|
||||
eek_xkl_layout_set_config (EEK_XKL_LAYOUT(data->eekboard->layout),
|
||||
data->config);
|
||||
g_object_unref (data->config);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -202,7 +194,6 @@ create_keyboard (EekBoard *eekboard,
|
||||
gfloat initial_height)
|
||||
{
|
||||
ClutterActor *actor;
|
||||
GValue value = {0};
|
||||
|
||||
eekboard->keyboard = eek_clutter_keyboard_new (initial_width,
|
||||
initial_height);
|
||||
@ -261,7 +252,7 @@ layout_callback (XklConfigRegistry *registry,
|
||||
GtkAction *action;
|
||||
GSList *variants = NULL;
|
||||
char layout_action_name[128], variant_action_name[128];
|
||||
LayoutVariant *config;
|
||||
ConfigCallbackData *config;
|
||||
|
||||
g_snprintf (layout_action_name, sizeof (layout_action_name),
|
||||
"SetLayout%s", item->name);
|
||||
@ -274,13 +265,15 @@ layout_callback (XklConfigRegistry *registry,
|
||||
&variants);
|
||||
|
||||
if (!variants) {
|
||||
config = g_slice_new (LayoutVariant);
|
||||
config = g_slice_new (ConfigCallbackData);
|
||||
config->eekboard = data->eekboard;
|
||||
config->layout = g_strdup (item->name);
|
||||
config->variant = NULL;
|
||||
config->config = xkl_config_rec_new ();
|
||||
config->config->layouts = g_new0 (char *, 2);
|
||||
config->config->layouts[0] = g_strdup (item->name);
|
||||
config->config->layouts[1] = NULL;
|
||||
config->config->variants = NULL;
|
||||
g_signal_connect (action, "activate", G_CALLBACK (on_activate),
|
||||
config);
|
||||
|
||||
g_object_unref (action);
|
||||
gtk_ui_manager_add_ui (data->ui_manager, data->merge_id,
|
||||
SET_LAYOUT_UI_PATH,
|
||||
@ -308,10 +301,15 @@ layout_callback (XklConfigRegistry *registry,
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
config = g_slice_new (LayoutVariant);
|
||||
config = g_slice_new (ConfigCallbackData);
|
||||
config->eekboard = data->eekboard;
|
||||
config->layout = g_strdup (item->name);
|
||||
config->variant = g_strdup (_item->name);
|
||||
config->config = xkl_config_rec_new ();
|
||||
config->config->layouts = g_new0 (char *, 2);
|
||||
config->config->layouts[0] = g_strdup (item->name);
|
||||
config->config->layouts[1] = NULL;
|
||||
config->config->variants = g_new0 (char *, 2);
|
||||
config->config->variants[0] = g_strdup (_item->name);
|
||||
config->config->variants[1] = NULL;
|
||||
g_signal_connect (action, "activate", G_CALLBACK (on_activate),
|
||||
config);
|
||||
|
||||
@ -410,8 +408,10 @@ main (int argc, char *argv[])
|
||||
GtkWidget *menubar, *embed, *vbox, *window;
|
||||
GtkUIManager *ui_manager;
|
||||
|
||||
clutter_init (&argc, &argv);
|
||||
gtk_init (&argc, &argv);
|
||||
if (gtk_clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS) {
|
||||
fprintf (stderr, "Can't init Clutter-Gtk\n");
|
||||
exit (1);
|
||||
}
|
||||
|
||||
memset (&eekboard, 0, sizeof eekboard);
|
||||
eekboard.display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
|
||||
|
||||
Reference in New Issue
Block a user