enlightenment/src/bin/e_focus.c

118 lines
2.8 KiB
C

#include "e.h"
/* local subsystem functions */
static int _e_focus_cb_window_focus_in(void *data, int ev_type, void *ev);
static int _e_focus_cb_window_focus_out(void *data, int ev_type, void *ev);
/* local subsystem globals */
static Ecore_Event_Handler *_e_focus_focus_in_handler = NULL;
static Ecore_Event_Handler *_e_focus_focus_out_handler = NULL;
/* externally accessible functions */
int
e_focus_init(void)
{
_e_focus_focus_in_handler = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, _e_focus_cb_window_focus_in, NULL);
_e_focus_focus_out_handler = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, _e_focus_cb_window_focus_out, NULL);
return 1;
}
int
e_focus_shutdown(void)
{
E_FN_DEL(ecore_event_handler_del, _e_focus_focus_in_handler);
E_FN_DEL(ecore_event_handler_del, _e_focus_focus_out_handler);
return 1;
}
void
e_focus_idler_before(void)
{
return;
}
/* local subsystem functions */
static int
_e_focus_cb_window_focus_in(void *data, int ev_type, void *ev)
{
Ecore_X_Event_Window_Focus_In *e;
const char *modes[] = {
"ECORE_X_EVENT_MODE_NORMAL",
"ECORE_X_EVENT_MODE_WHILE_GRABBED",
"ECORE_X_EVENT_MODE_GRAB",
"ECORE_X_EVENT_MODE_UNGRAB"
};
const char *details[] = {
"ECORE_X_EVENT_DETAIL_ANCESTOR",
"ECORE_X_EVENT_DETAIL_VIRTUAL",
"ECORE_X_EVENT_DETAIL_INFERIOR",
"ECORE_X_EVENT_DETAIL_NON_LINEAR",
"ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL",
"ECORE_X_EVENT_DETAIL_POINTER",
"ECORE_X_EVENT_DETAIL_POINTER_ROOT",
"ECORE_X_EVENT_DETAIL_DETAIL_NONE"
};
e = ev;
#if 0
if (e_border_find_by_client_window(e->win))
{
printf("BI 0x%x md=%s dt=%s\n",
e->win,
modes[e->mode],
details[e->detail]);
}
else
{
printf("FI 0x%x md=%s dt=%s\n",
e->win,
modes[e->mode],
details[e->detail]);
}
#endif
return 1;
}
static int
_e_focus_cb_window_focus_out(void *data, int ev_type, void *ev)
{
Ecore_X_Event_Window_Focus_Out *e;
const char *modes[] = {
"ECORE_X_EVENT_MODE_NORMAL",
"ECORE_X_EVENT_MODE_WHILE_GRABBED",
"ECORE_X_EVENT_MODE_GRAB",
"ECORE_X_EVENT_MODE_UNGRAB"
};
const char *details[] = {
"ECORE_X_EVENT_DETAIL_ANCESTOR",
"ECORE_X_EVENT_DETAIL_VIRTUAL",
"ECORE_X_EVENT_DETAIL_INFERIOR",
"ECORE_X_EVENT_DETAIL_NON_LINEAR",
"ECORE_X_EVENT_DETAIL_NON_LINEAR_VIRTUAL",
"ECORE_X_EVENT_DETAIL_POINTER",
"ECORE_X_EVENT_DETAIL_POINTER_ROOT",
"ECORE_X_EVENT_DETAIL_DETAIL_NONE"
};
e = ev;
#if 0
if (e_border_find_by_client_window(e->win))
{
printf("BO 0x%x md=%s dt=%s\n",
e->win,
modes[e->mode],
details[e->detail]);
}
else
{
printf("FO 0x%x md=%s dt=%s\n",
e->win,
modes[e->mode],
details[e->detail]);
}
#endif
return 1;
}