char *str;
/* remove the dbus signal handlers if we can */
- if (dbus_conn)
- {
- e_dbus_signal_handler_del(dbus_conn, dbus_dev_add);
- e_dbus_signal_handler_del(dbus_conn, dbus_dev_del);
- e_dbus_signal_handler_del(dbus_conn, dbus_dev_chg);
- }
+ if (dbus_dev_add)
+ e_dbus_signal_handler_del(dbus_conn, dbus_dev_add);
+ if (dbus_dev_del)
+ e_dbus_signal_handler_del(dbus_conn, dbus_dev_del);
+ if (dbus_dev_chg)
+ e_dbus_signal_handler_del(dbus_conn, dbus_dev_chg);
/* free the list of ignored keyboards */
EINA_LIST_FREE(ignore_kbds, str)
/* if it's an input keyboard, than add it and eval */
if ((ret) && (ret->boolean))
{
- _e_kbd_dbus_kbd_add(udi);
- _e_kbd_dbus_kbd_eval();
+ if (udi)
+ {
+ _e_kbd_dbus_kbd_add(udi);
+ _e_kbd_dbus_kbd_eval();
+ free(udi);
+ }
}
}
const char *str;
Eina_List *l;
+ if (!udi) return;
EINA_LIST_FOREACH(dbus_kbds, l, str)
if (!strcmp(str, udi)) return;
dbus_kbds = eina_list_append(dbus_kbds, eina_stringshare_add(udi));
const char *str;
Eina_List *l;
+ if (!udi) return;
EINA_LIST_FOREACH(dbus_kbds, l, str)
if (!strcmp(str, udi))
{
dbus_error_init(&err);
dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &udi,
DBUS_TYPE_STRING, &cap, DBUS_TYPE_INVALID);
- if (!strcmp(cap, "input.keyboard"))
+ if (cap)
{
- _e_kbd_dbus_kbd_add(udi);
- _e_kbd_dbus_kbd_eval();
+ if (!strcmp(cap, "input.keyboard"))
+ {
+ if (udi)
+ {
+ _e_kbd_dbus_kbd_add(udi);
+ _e_kbd_dbus_kbd_eval();
+ free(udi);
+ }
+ }
+ free(cap);
}
- if (cap) free(cap);
- if (udi) free(udi);
}