Split window event handling functions
They deal with entirely different things.
This commit is contained in:
parent
2bddb03c4e
commit
cbfdd0872b
43
ipc.c
43
ipc.c
|
@ -39,8 +39,6 @@ static Window root_win = None;
|
|||
static Window comms_win = None;
|
||||
static Window my_msg_win = None;
|
||||
static Client *e_client = NULL;
|
||||
static GdkWindow *gdkwin = NULL;
|
||||
static GdkWindow *gdkwin2 = NULL;
|
||||
static void (*msg_receive_callback)(char *msg) = NULL;
|
||||
static unsigned int Atom_ENL_MSG;
|
||||
|
||||
|
@ -180,17 +178,34 @@ CommsGet(XEvent *ev)
|
|||
}
|
||||
|
||||
static GdkFilterReturn
|
||||
CommsFilter(GdkXEvent *gdk_xevent, GdkEvent *event __UNUSED__,
|
||||
FilterCommsWin(GdkXEvent *gdk_xevent, GdkEvent *event __UNUSED__,
|
||||
void *data __UNUSED__)
|
||||
{
|
||||
XEvent *xevent;
|
||||
char *msg;
|
||||
XEvent *xevent = gdk_xevent;
|
||||
|
||||
xevent = (XEvent *) gdk_xevent;
|
||||
switch (xevent->type)
|
||||
{
|
||||
default:
|
||||
break;
|
||||
|
||||
case DestroyNotify:
|
||||
exit(1);
|
||||
}
|
||||
|
||||
return GDK_FILTER_REMOVE;
|
||||
}
|
||||
|
||||
static GdkFilterReturn
|
||||
FilterMyMsgWin(GdkXEvent *gdk_xevent, GdkEvent *event __UNUSED__,
|
||||
void *data __UNUSED__)
|
||||
{
|
||||
XEvent *xevent = gdk_xevent;
|
||||
char *msg;
|
||||
|
||||
switch (xevent->type)
|
||||
{
|
||||
default:
|
||||
break;
|
||||
|
||||
case ClientMessage:
|
||||
if (xevent->xclient.message_type != Atom_ENL_MSG)
|
||||
|
@ -204,17 +219,17 @@ CommsFilter(GdkXEvent *gdk_xevent, GdkEvent *event __UNUSED__,
|
|||
free(msg);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return GDK_FILTER_REMOVE;
|
||||
}
|
||||
|
||||
int
|
||||
CommsInit(void (*msg_receive_func)(char *msg))
|
||||
{
|
||||
if(CommsSetup())
|
||||
GdkWindow *gdkwin;
|
||||
|
||||
if (CommsSetup())
|
||||
return 1;
|
||||
|
||||
comms_win = CommsFindCommsWindow();
|
||||
|
@ -224,10 +239,12 @@ CommsInit(void (*msg_receive_func)(char *msg))
|
|||
e_client = ClientCreate(comms_win);
|
||||
|
||||
gdkwin = gdk_window_foreign_new(comms_win);
|
||||
gdk_window_add_filter(gdkwin, CommsFilter, NULL);
|
||||
gdkwin2 = gdk_window_foreign_new(my_msg_win);
|
||||
gdk_window_add_filter(gdkwin2, CommsFilter, NULL);
|
||||
gdk_window_set_events(gdkwin, GDK_STRUCTURE_MASK);
|
||||
gdk_window_add_filter(gdkwin, FilterCommsWin, NULL);
|
||||
|
||||
gdkwin = gdk_window_foreign_new(my_msg_win);
|
||||
gdk_window_add_filter(gdkwin, FilterMyMsgWin, NULL);
|
||||
|
||||
msg_receive_callback = msg_receive_func;
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue