Use GObject instead of guint to represent keysyms.
This commit is contained in:
		@ -123,11 +123,11 @@ create_key (EekXkbLayout *layout,
 | 
			
		||||
    EekXkbLayoutPrivate *priv = layout->priv;
 | 
			
		||||
    EekKey *key;
 | 
			
		||||
    EekBounds bounds;
 | 
			
		||||
    guint *keysyms = NULL;
 | 
			
		||||
    EekSymbolMatrix *matrix = NULL;
 | 
			
		||||
    gchar name[XkbKeyNameLength + 1];
 | 
			
		||||
    EekOutline *outline;
 | 
			
		||||
    KeyCode keycode;
 | 
			
		||||
    gint num_groups, num_levels, num_keysyms;
 | 
			
		||||
    gint num_groups, num_levels, num_symbols;
 | 
			
		||||
 | 
			
		||||
    xkbgeometry = priv->xkb->geom;
 | 
			
		||||
    xkbshape = &xkbgeometry->shapes[xkbkey->shape_ndx];
 | 
			
		||||
@ -193,12 +193,13 @@ create_key (EekXkbLayout *layout,
 | 
			
		||||
 | 
			
		||||
        num_groups = XkbKeyNumGroups (priv->xkb, keycode);
 | 
			
		||||
        num_levels = XkbKeyGroupsWidth (priv->xkb, keycode);
 | 
			
		||||
        num_keysyms = num_groups * num_levels;
 | 
			
		||||
        keysyms = g_slice_alloc0 (num_keysyms * sizeof(guint));
 | 
			
		||||
        num_symbols = num_groups * num_levels;
 | 
			
		||||
        matrix = eek_symbol_matrix_new (num_groups, num_levels);
 | 
			
		||||
        for (i = 0; i < num_groups; i++)
 | 
			
		||||
            for (j = 0; j < num_levels; j++) {
 | 
			
		||||
                keysym = XkbKeySymEntry (priv->xkb, keycode, j, i);
 | 
			
		||||
                keysyms[i * num_levels + j] = keysym;
 | 
			
		||||
                matrix->data[i * num_levels + j] =
 | 
			
		||||
                    EEK_SYMBOL(eek_keysym_new (keysym));
 | 
			
		||||
            }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -206,9 +207,8 @@ create_key (EekXkbLayout *layout,
 | 
			
		||||
    eek_element_set_name (EEK_ELEMENT(key), name);
 | 
			
		||||
    eek_element_set_bounds (EEK_ELEMENT(key), &bounds);
 | 
			
		||||
    eek_key_set_keycode (key, keycode);
 | 
			
		||||
    eek_key_set_keysyms (key, keysyms, num_groups, num_levels);
 | 
			
		||||
    if (keysyms)
 | 
			
		||||
        g_slice_free1 (num_keysyms * sizeof(guint), keysyms);
 | 
			
		||||
    eek_key_set_symbol_matrix (key, matrix);
 | 
			
		||||
    eek_symbol_matrix_free (matrix);
 | 
			
		||||
    eek_key_set_outline (key, outline);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user