⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xfilterev.c

📁 早期freebsd实现
💻 C
字号:
/* * $XConsortium: XFilterEv.c,v 1.8 91/06/05 09:15:44 rws Exp $ */ /*  * Copyright 1990, 1991 by OMRON Corporation  * Copyright 1991 by the Massachusetts Institute of Technology  *  * Permission to use, copy, modify, distribute, and sell this software and its  * documentation for any purpose is hereby granted without fee, provided that  * the above copyright notice appear in all copies and that both that  * copyright notice and this permission notice appear in supporting  * documentation, and that the names of OMRON and MIT not be used in  * advertising or publicity pertaining to distribution of the software without  * specific, written prior permission.  OMRON and MIT make no representations  * about the suitability of this software for any purpose.  It is provided  * "as is" without express or implied warranty.  *  * OMRON AND MIT DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO  * EVENT SHALL OMRON OR MIT BE LIABLE FOR ANY SPECIAL, INDIRECT OR  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER  * TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR  * PERFORMANCE OF THIS SOFTWARE.   *  *	Author:	Seiji Kuwari	OMRON Corporation  *				kuwa@omron.co.jp  *				kuwa%omron.co.jp@uunet.uu.net  */				#define NEED_EVENTS#include "Xlibint.h"#include "Xlcint.h"#if __STDC__#define Const const#else#define Const /**/#endifextern long Const _Xevent_to_mask[];/* * Look up if there is a specified filter for the event. */BoolXFilterEvent(ev, window)    XEvent *ev;    Window window;{    XFilterEventList	p;    Window		win;    long		mask;    Bool		ret;    if (window)	win = window;    else	win = ev->xany.window;    if (ev->type >= LASTEvent)	mask = 0;    else	mask = _Xevent_to_mask[ev->type];    LockDisplay(ev->xany.display);    for (p = ev->xany.display->im_filters; p != NULL; p = p->next) {	if (win == p->window) {	    if ((mask & p->event_mask) ||		(ev->type >= p->start_type && ev->type <= p->end_type)) {		ret = (*(p->filter))(ev->xany.display, p->window, ev,				      p->client_data);		UnlockDisplay(ev->xany.display);		return(ret);	    }	}    }    UnlockDisplay(ev->xany.display);    return(False);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -