121 lines
2.8 KiB
C
121 lines
2.8 KiB
C
/*
|
|
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
|
|
*/
|
|
#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;
|
|
}
|