diff options
Diffstat (limited to 'src/lib/elput/elput_manager.c')
-rw-r--r-- | src/lib/elput/elput_manager.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/lib/elput/elput_manager.c b/src/lib/elput/elput_manager.c index 3b127afdc7..0dcc82055d 100644 --- a/src/lib/elput/elput_manager.c +++ b/src/lib/elput/elput_manager.c @@ -89,6 +89,7 @@ elput_manager_open(Elput_Manager *manager, const char *path, int flags) manager->vt_hdlr = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _cb_key_down, manager); + manager->vt_fd = ret; } } @@ -101,8 +102,11 @@ elput_manager_close(Elput_Manager *manager, int fd) EINA_SAFETY_ON_NULL_RETURN(manager); EINA_SAFETY_ON_NULL_RETURN(manager->interface); - if (manager->vt_hdlr) ecore_event_handler_del(manager->vt_hdlr); - manager->vt_hdlr = NULL; + if (fd == manager->vt_fd) + { + if (manager->vt_hdlr) ecore_event_handler_del(manager->vt_hdlr); + manager->vt_hdlr = NULL; + } if (manager->interface->close) manager->interface->close(manager, fd); @@ -121,6 +125,15 @@ elput_manager_vt_set(Elput_Manager *manager, int vt) return EINA_FALSE; } +EAPI void +elput_manager_window_set(Elput_Manager *manager, unsigned int window) +{ + EINA_SAFETY_ON_NULL_RETURN(manager); + + manager->window = window; + _elput_input_window_update(manager); +} + EAPI const Eina_List * elput_manager_seats_get(Elput_Manager *manager) { |