forked from enlightenment/enlightenment
Fix leak as reported by zmike.
- Add support for AltGr key in E_Kbd_Buf_Key - Fix e_kbd_buf_layout_key_add to also take in altgr as a param. Signed-off-by: Christopher Michael <cp.michael@samsung.com> SVN revision: 83153
This commit is contained in:
parent
0183b727d0
commit
f9a3a22e9e
|
@ -31,6 +31,7 @@ _e_kbd_buf_layout_unref(E_Kbd_Buf_Layout *kbl)
|
||||||
if (ky->key) eina_stringshare_del(ky->key);
|
if (ky->key) eina_stringshare_del(ky->key);
|
||||||
if (ky->key_shift) eina_stringshare_del(ky->key_shift);
|
if (ky->key_shift) eina_stringshare_del(ky->key_shift);
|
||||||
if (ky->key_capslock) eina_stringshare_del(ky->key_capslock);
|
if (ky->key_capslock) eina_stringshare_del(ky->key_capslock);
|
||||||
|
if (ky->key_altgr) eina_stringshare_del(ky->key_altgr);
|
||||||
free(ky);
|
free(ky);
|
||||||
kbl->keys = eina_list_remove_list(kbl->keys, kbl->keys);
|
kbl->keys = eina_list_remove_list(kbl->keys, kbl->keys);
|
||||||
}
|
}
|
||||||
|
@ -366,7 +367,7 @@ e_kbd_buf_layout_fuzz_set(E_Kbd_Buf *kb, int fuzz)
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_kbd_buf_layout_key_add(E_Kbd_Buf *kb, const char *key, const char *key_shift, const char *key_capslock, int x, int y, int w, int h)
|
e_kbd_buf_layout_key_add(E_Kbd_Buf *kb, const char *key, const char *key_shift, const char *key_capslock, const char *key_altgr, int x, int y, int w, int h)
|
||||||
{
|
{
|
||||||
E_Kbd_Buf_Key *ky;
|
E_Kbd_Buf_Key *ky;
|
||||||
|
|
||||||
|
@ -378,6 +379,7 @@ e_kbd_buf_layout_key_add(E_Kbd_Buf *kb, const char *key, const char *key_shift,
|
||||||
ky->key = eina_stringshare_add(key);
|
ky->key = eina_stringshare_add(key);
|
||||||
if (key_shift) ky->key_shift = eina_stringshare_add(key_shift);
|
if (key_shift) ky->key_shift = eina_stringshare_add(key_shift);
|
||||||
if (key_capslock) ky->key_capslock = eina_stringshare_add(key_capslock);
|
if (key_capslock) ky->key_capslock = eina_stringshare_add(key_capslock);
|
||||||
|
if (key_altgr) ky->key_altgr = eina_stringshare_add(key_altgr);
|
||||||
ky->x = x;
|
ky->x = x;
|
||||||
ky->y = y;
|
ky->y = y;
|
||||||
ky->w = w;
|
ky->w = w;
|
||||||
|
|
|
@ -33,7 +33,7 @@ struct _E_Kbd_Buf
|
||||||
struct _E_Kbd_Buf_Key
|
struct _E_Kbd_Buf_Key
|
||||||
{
|
{
|
||||||
int x, y, w, h;
|
int x, y, w, h;
|
||||||
const char *key, *key_shift, *key_capslock;
|
const char *key, *key_shift, *key_capslock, *key_altgr;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _E_Kbd_Buf_Keystroke
|
struct _E_Kbd_Buf_Keystroke
|
||||||
|
@ -45,7 +45,8 @@ struct _E_Kbd_Buf_Keystroke
|
||||||
unsigned char capslock : 1;
|
unsigned char capslock : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _E_Kbd_Buf_Layout {
|
struct _E_Kbd_Buf_Layout
|
||||||
|
{
|
||||||
int ref;
|
int ref;
|
||||||
int w, h;
|
int w, h;
|
||||||
int fuzz;
|
int fuzz;
|
||||||
|
@ -59,7 +60,7 @@ EAPI void e_kbd_buf_clear(E_Kbd_Buf *kb);
|
||||||
EAPI void e_kbd_buf_layout_clear(E_Kbd_Buf *kb);
|
EAPI void e_kbd_buf_layout_clear(E_Kbd_Buf *kb);
|
||||||
EAPI void e_kbd_buf_layout_size_set(E_Kbd_Buf *kb, int w, int h);
|
EAPI void e_kbd_buf_layout_size_set(E_Kbd_Buf *kb, int w, int h);
|
||||||
EAPI void e_kbd_buf_layout_fuzz_set(E_Kbd_Buf *kb, int fuzz);
|
EAPI void e_kbd_buf_layout_fuzz_set(E_Kbd_Buf *kb, int fuzz);
|
||||||
EAPI void e_kbd_buf_layout_key_add(E_Kbd_Buf *kb, const char *key, const char *key_shift, const char *key_capslock, int x, int y, int w, int h);
|
EAPI void e_kbd_buf_layout_key_add(E_Kbd_Buf *kb, const char *key, const char *key_shift, const char *key_capslock, const char *key_altgr, int x, int y, int w, int h);
|
||||||
EAPI void e_kbd_buf_pressed_key_add(E_Kbd_Buf *kb, const char *key, int shift, int capslock);
|
EAPI void e_kbd_buf_pressed_key_add(E_Kbd_Buf *kb, const char *key, int shift, int capslock);
|
||||||
EAPI void e_kbd_buf_pressed_point_add(E_Kbd_Buf *kb, int x, int y, int shift, int capslock);
|
EAPI void e_kbd_buf_pressed_point_add(E_Kbd_Buf *kb, int x, int y, int shift, int capslock);
|
||||||
EAPI const char *e_kbd_buf_actual_string_get(E_Kbd_Buf *kb);
|
EAPI const char *e_kbd_buf_actual_string_get(E_Kbd_Buf *kb);
|
||||||
|
|
|
@ -112,21 +112,22 @@ _e_kbd_int_layout_buf_update(E_Kbd_Int *ki)
|
||||||
}
|
}
|
||||||
if (out)
|
if (out)
|
||||||
{
|
{
|
||||||
char *s1 = NULL, *s2 = NULL, *s3 = NULL;
|
char *s1 = NULL, *s2 = NULL, *s3 = NULL, *s4 = NULL;
|
||||||
|
|
||||||
if ((out) && (out[0] == '"'))
|
if ((out) && (out[0] == '"'))
|
||||||
s1 = strdup(_e_kbd_int_str_unquote(out));
|
s1 = strdup(_e_kbd_int_str_unquote(out));
|
||||||
if ((out_shift) && (out_shift[0] == '"'))
|
if ((out_shift) && (out_shift[0] == '"'))
|
||||||
s2 = strdup(_e_kbd_int_str_unquote(out_shift));
|
s2 = strdup(_e_kbd_int_str_unquote(out_shift));
|
||||||
if ((out_altgr) && (out_altgr[0] == '"'))
|
if ((out_altgr) && (out_altgr[0] == '"'))
|
||||||
s2 = strdup(_e_kbd_int_str_unquote(out_altgr));
|
s4 = strdup(_e_kbd_int_str_unquote(out_altgr));
|
||||||
if ((out_capslock) && (out_capslock[0] == '"'))
|
if ((out_capslock) && (out_capslock[0] == '"'))
|
||||||
s3 = strdup(_e_kbd_int_str_unquote(out_capslock));
|
s3 = strdup(_e_kbd_int_str_unquote(out_capslock));
|
||||||
e_kbd_buf_layout_key_add(ki->kbuf, s1, s2, s3,
|
e_kbd_buf_layout_key_add(ki->kbuf, s1, s2, s3, s4,
|
||||||
ky->x, ky->y, ky->w, ky->h);
|
ky->x, ky->y, ky->w, ky->h);
|
||||||
free(s1);
|
free(s1);
|
||||||
free(s2);
|
free(s2);
|
||||||
free(s3);
|
free(s3);
|
||||||
|
free(s4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue