summaryrefslogtreecommitdiff
path: root/src/lib/elput/elput_manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/elput/elput_manager.c')
-rw-r--r--src/lib/elput/elput_manager.c17
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)
{