Don't cache group/level in EekKey.
This commit is contained in:
@ -66,48 +66,16 @@ struct _EekKeyboardPrivate
|
||||
EekLayout *layout;
|
||||
};
|
||||
|
||||
struct _SetKeysymIndexCallbackData {
|
||||
gint group;
|
||||
gint level;
|
||||
};
|
||||
typedef struct _SetKeysymIndexCallbackData SetKeysymIndexCallbackData;
|
||||
|
||||
static void
|
||||
set_keysym_index_for_key (EekElement *element,
|
||||
gpointer user_data)
|
||||
{
|
||||
SetKeysymIndexCallbackData *data;
|
||||
|
||||
g_return_if_fail (EEK_IS_KEY(element));
|
||||
|
||||
data = user_data;
|
||||
eek_key_set_keysym_index (EEK_KEY(element), data->group, data->level);
|
||||
}
|
||||
|
||||
static void
|
||||
set_keysym_index_for_section (EekElement *element,
|
||||
gpointer user_data)
|
||||
{
|
||||
eek_container_foreach_child (EEK_CONTAINER(element),
|
||||
set_keysym_index_for_key,
|
||||
user_data);
|
||||
}
|
||||
|
||||
static void
|
||||
eek_keyboard_real_set_keysym_index (EekKeyboard *self,
|
||||
gint group,
|
||||
gint level)
|
||||
{
|
||||
EekKeyboardPrivate *priv = EEK_KEYBOARD_GET_PRIVATE(self);
|
||||
SetKeysymIndexCallbackData data;
|
||||
|
||||
if (priv->group != group || priv->level != level) {
|
||||
data.group = priv->group = group;
|
||||
data.level = priv->level = level;
|
||||
|
||||
eek_container_foreach_child (EEK_CONTAINER(self),
|
||||
set_keysym_index_for_section,
|
||||
&data);
|
||||
priv->group = group;
|
||||
priv->level = level;
|
||||
|
||||
g_signal_emit_by_name (self, "keysym-index-changed", group, level);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user