settings: Removed custom settings schema
This commit is contained in:
@ -1,60 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<schemalist>
|
|
||||||
<schema id="org.fedorahosted.eekboard" path="/org/fedorahosted/eekboard/">
|
|
||||||
<key name="keyboards" type="as">
|
|
||||||
<default>['us']</default>
|
|
||||||
<summary>Keyboard types</summary>
|
|
||||||
<description>keyboard types.</description>
|
|
||||||
</key>
|
|
||||||
<key name="focus-listener" type="s">
|
|
||||||
<default>'atspi'</default>
|
|
||||||
<summary>Use the given focus listener</summary>
|
|
||||||
<description>The name of the focus listener (either 'atspi' or 'ibus') used to detect focus events.</description>
|
|
||||||
</key>
|
|
||||||
<key name="auto-hide" type="b">
|
|
||||||
<default>true</default>
|
|
||||||
<summary>Hide keyboard automatically when focus is out</summary>
|
|
||||||
<description>If true, hide keyboard automatically when focus is out.</description>
|
|
||||||
</key>
|
|
||||||
<key name="auto-hide-delay" type="u">
|
|
||||||
<default>500</default>
|
|
||||||
<summary>Delay before hiding keyboard</summary>
|
|
||||||
<description>Delay before hiding keyboard in milliseconds. This is useful when focus listener is enabled.</description>
|
|
||||||
</key>
|
|
||||||
<key type="b" name="repeat">
|
|
||||||
<default>true</default>
|
|
||||||
<summary>Key repeat</summary>
|
|
||||||
<description>Generate key-press/release event repeatedly while a key is held down</description>
|
|
||||||
</key>
|
|
||||||
<key type="u" name="repeat-interval">
|
|
||||||
<default>100</default>
|
|
||||||
<summary>Key repeat interval</summary>
|
|
||||||
<description>Delay between repeats in milliseconds.</description>
|
|
||||||
</key>
|
|
||||||
<key type="u" name="repeat-delay">
|
|
||||||
<default>1000</default>
|
|
||||||
<summary>Initial key repeat delay</summary>
|
|
||||||
<description>Initial key repeat delay in milliseconds.</description>
|
|
||||||
</key>
|
|
||||||
<key name="start-fullscreen" type="b">
|
|
||||||
<default>false</default>
|
|
||||||
<summary>Switch to fullscreen mode when startup</summary>
|
|
||||||
<description>If true, switch to fullscreen mode when startup.</description>
|
|
||||||
</key>
|
|
||||||
<key name="size-constraint-landscape" type="(dd)">
|
|
||||||
<default>(1.0, 0.3)</default>
|
|
||||||
<summary>Constraint of the maximum window size on landscape screen</summary>
|
|
||||||
<description>Constraint of maximum window size on landscape screen</description>
|
|
||||||
</key>
|
|
||||||
<key name="size-constraint-portrait" type="(dd)">
|
|
||||||
<default>(1.0, 0.5)</default>
|
|
||||||
<summary>Constraint of the maximum window size on portrait screen</summary>
|
|
||||||
<description>Constraint of maximum window size on portrait screen</description>
|
|
||||||
</key>
|
|
||||||
<key name="theme" type="s">
|
|
||||||
<default>'default'</default>
|
|
||||||
<summary>Theme</summary>
|
|
||||||
<description>Base name of the theme to apply.</description>
|
|
||||||
</key>
|
|
||||||
</schema>
|
|
||||||
</schemalist>
|
|
||||||
@ -355,16 +355,50 @@ static void
|
|||||||
emit_group_changed_signal (EekboardContextService *context,
|
emit_group_changed_signal (EekboardContextService *context,
|
||||||
gint group);
|
gint group);
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
settings_get_layout(GSettings *settings, char **type, char **layout)
|
||||||
|
{
|
||||||
|
GVariant *inputs = g_settings_get_value(settings, "sources");
|
||||||
|
guint32 index;
|
||||||
|
g_settings_get(settings, "current", "u", &index);
|
||||||
|
|
||||||
|
GVariantIter *iter;
|
||||||
|
g_variant_get(inputs, "a(ss)", &iter);
|
||||||
|
|
||||||
|
for (unsigned i = 0;
|
||||||
|
g_variant_iter_loop(iter, "(ss)", type, layout);
|
||||||
|
i++) {
|
||||||
|
if (i == index) {
|
||||||
|
//printf("Found layout %s %s\n", *type, *layout);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
g_variant_iter_free(iter);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
eekboard_context_service_constructed (GObject *object)
|
eekboard_context_service_constructed (GObject *object)
|
||||||
{
|
{
|
||||||
EekboardContextService *context = EEKBOARD_CONTEXT_SERVICE (object);
|
EekboardContextService *context = EEKBOARD_CONTEXT_SERVICE (object);
|
||||||
EekboardContextServiceClass *klass = EEKBOARD_CONTEXT_SERVICE_GET_CLASS(context);
|
EekboardContextServiceClass *klass = EEKBOARD_CONTEXT_SERVICE_GET_CLASS(context);
|
||||||
static guint keyboard_id = 0;
|
static guint keyboard_id = 0;
|
||||||
const gchar *keyboard_type = "us"; // TODO: fetch from gsettings
|
g_autofree gchar *keyboard_type = NULL;
|
||||||
|
g_autofree gchar *keyboard_layout = NULL;
|
||||||
|
|
||||||
|
settings_get_layout(context->priv->settings, &keyboard_type, &keyboard_layout);
|
||||||
|
|
||||||
|
if (!keyboard_type) {
|
||||||
|
keyboard_type = g_strdup("us");
|
||||||
|
}
|
||||||
|
if (!keyboard_layout) {
|
||||||
|
keyboard_layout = g_strdup("undefined");
|
||||||
|
}
|
||||||
|
|
||||||
EekKeyboard *keyboard;
|
EekKeyboard *keyboard;
|
||||||
// create a keyboard
|
// create a keyboard
|
||||||
keyboard = klass->create_keyboard (context, keyboard_type);
|
keyboard = klass->create_keyboard (context, keyboard_layout);
|
||||||
eek_keyboard_set_modifier_behavior (keyboard,
|
eek_keyboard_set_modifier_behavior (keyboard,
|
||||||
EEK_MODIFIER_BEHAVIOR_LATCH);
|
EEK_MODIFIER_BEHAVIOR_LATCH);
|
||||||
|
|
||||||
@ -564,7 +598,7 @@ eekboard_context_service_init (EekboardContextService *self)
|
|||||||
NULL,
|
NULL,
|
||||||
(GDestroyNotify)g_object_unref);
|
(GDestroyNotify)g_object_unref);
|
||||||
|
|
||||||
self->priv->settings = g_settings_new ("org.fedorahosted.eekboard");
|
self->priv->settings = g_settings_new ("org.gnome.desktop.input-sources");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -668,9 +702,11 @@ static gboolean on_repeat_timeout (EekboardContextService *context);
|
|||||||
static gboolean
|
static gboolean
|
||||||
on_repeat_timeout (EekboardContextService *context)
|
on_repeat_timeout (EekboardContextService *context)
|
||||||
{
|
{
|
||||||
guint delay;
|
guint delay = 500; // ms
|
||||||
|
|
||||||
g_settings_get (context->priv->settings, "repeat-interval", "u", &delay);
|
// hardcoding; needs to connect to yet another settings path because
|
||||||
|
// org.gnome.desktop.input-sources doesn't control repeating
|
||||||
|
//g_settings_get (context->priv->settings, "repeat-interval", "u", &delay);
|
||||||
|
|
||||||
emit_key_activated_dbus_signal (context, context->priv->repeat_key);
|
emit_key_activated_dbus_signal (context, context->priv->repeat_key);
|
||||||
|
|
||||||
@ -692,6 +728,10 @@ on_repeat_timeout_init (EekboardContextService *context)
|
|||||||
eek_keyboard_set_modifiers (context->priv->keyboard, 0);
|
eek_keyboard_set_modifiers (context->priv->keyboard, 0);
|
||||||
|
|
||||||
/* reschedule repeat timeout only when "repeat" option is set */
|
/* reschedule repeat timeout only when "repeat" option is set */
|
||||||
|
/* TODO: org.gnome.desktop.input-sources doesn't have repeat info.
|
||||||
|
* In addition, repeat is only useful when the keyboard is not in text
|
||||||
|
* input mode */
|
||||||
|
/*
|
||||||
if (g_settings_get_boolean (context->priv->settings, "repeat")) {
|
if (g_settings_get_boolean (context->priv->settings, "repeat")) {
|
||||||
guint delay;
|
guint delay;
|
||||||
|
|
||||||
@ -700,7 +740,7 @@ on_repeat_timeout_init (EekboardContextService *context)
|
|||||||
g_timeout_add (delay,
|
g_timeout_add (delay,
|
||||||
(GSourceFunc)on_repeat_timeout,
|
(GSourceFunc)on_repeat_timeout,
|
||||||
context);
|
context);
|
||||||
} else
|
} else */
|
||||||
context->priv->repeat_timeout_id = 0;
|
context->priv->repeat_timeout_id = 0;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -712,9 +752,10 @@ on_key_pressed (EekKeyboard *keyboard,
|
|||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
EekboardContextService *context = user_data;
|
EekboardContextService *context = user_data;
|
||||||
guint delay;
|
guint delay = 500;
|
||||||
|
|
||||||
g_settings_get (context->priv->settings, "repeat-delay", "u", &delay);
|
// org.gnome.desktop.input-sources doesn't have delay info
|
||||||
|
//g_settings_get (context->priv->settings, "repeat-delay", "u", &delay);
|
||||||
|
|
||||||
if (context->priv->repeat_timeout_id) {
|
if (context->priv->repeat_timeout_id) {
|
||||||
g_source_remove (context->priv->repeat_timeout_id);
|
g_source_remove (context->priv->repeat_timeout_id);
|
||||||
@ -919,8 +960,6 @@ handle_method_call (GDBusConnection *connection,
|
|||||||
void
|
void
|
||||||
eekboard_context_service_enable (EekboardContextService *context)
|
eekboard_context_service_enable (EekboardContextService *context)
|
||||||
{
|
{
|
||||||
GError *error;
|
|
||||||
|
|
||||||
g_return_if_fail (EEKBOARD_IS_CONTEXT_SERVICE(context));
|
g_return_if_fail (EEKBOARD_IS_CONTEXT_SERVICE(context));
|
||||||
g_return_if_fail (context->priv->connection);
|
g_return_if_fail (context->priv->connection);
|
||||||
|
|
||||||
|
|||||||
@ -48,7 +48,6 @@ struct _ServerContextService {
|
|||||||
|
|
||||||
gulong notify_visible_handler;
|
gulong notify_visible_handler;
|
||||||
|
|
||||||
GSettings *settings;
|
|
||||||
gdouble size_constraint_landscape[2];
|
gdouble size_constraint_landscape[2];
|
||||||
gdouble size_constraint_portrait[2];
|
gdouble size_constraint_portrait[2];
|
||||||
};
|
};
|
||||||
@ -277,7 +276,7 @@ update_widget (ServerContextService *context)
|
|||||||
EekKeyboard *keyboard;
|
EekKeyboard *keyboard;
|
||||||
const gchar *client_name;
|
const gchar *client_name;
|
||||||
EekBounds bounds;
|
EekBounds bounds;
|
||||||
gchar *theme_name, *theme_filename, *theme_path;
|
gchar *theme_path;
|
||||||
EekTheme *theme;
|
EekTheme *theme;
|
||||||
|
|
||||||
if (context->widget) {
|
if (context->widget) {
|
||||||
@ -285,12 +284,7 @@ update_widget (ServerContextService *context)
|
|||||||
context->widget = NULL;
|
context->widget = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
theme_name = g_settings_get_string (context->settings, "theme");
|
theme_path = g_build_filename (THEMESDIR, "default.css", NULL);
|
||||||
theme_filename = g_strdup_printf ("%s.css", theme_name);
|
|
||||||
g_free (theme_name);
|
|
||||||
|
|
||||||
theme_path = g_build_filename (THEMESDIR, theme_filename, NULL);
|
|
||||||
g_free (theme_filename);
|
|
||||||
|
|
||||||
theme = eek_theme_new (theme_path, NULL, NULL);
|
theme = eek_theme_new (theme_path, NULL, NULL);
|
||||||
g_free (theme_path);
|
g_free (theme_path);
|
||||||
@ -472,22 +466,6 @@ server_context_service_init (ServerContextService *context)
|
|||||||
"notify::fullscreen",
|
"notify::fullscreen",
|
||||||
G_CALLBACK(on_notify_fullscreen),
|
G_CALLBACK(on_notify_fullscreen),
|
||||||
context);
|
context);
|
||||||
|
|
||||||
context->settings = g_settings_new ("org.fedorahosted.eekboard");
|
|
||||||
g_settings_bind_with_mapping (context->settings, "size-constraint-landscape",
|
|
||||||
context, "size-constraint-landscape",
|
|
||||||
G_SETTINGS_BIND_GET,
|
|
||||||
(GSettingsBindGetMapping)g_value_set_variant,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL);
|
|
||||||
g_settings_bind_with_mapping (context->settings, "size-constraint-portrait",
|
|
||||||
context, "size-constraint-portrait",
|
|
||||||
G_SETTINGS_BIND_GET,
|
|
||||||
(GSettingsBindGetMapping)g_value_set_variant,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ServerContextService *
|
ServerContextService *
|
||||||
|
|||||||
Reference in New Issue
Block a user