#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <X11/Xlibint.h>
#include <X11/extensions/MITMisc.h>
#include <X11/extensions/mitmiscproto.h>
#include <X11/extensions/Xext.h>
#include <X11/extensions/extutil.h>
static XExtensionInfo _mit_info_data;
static XExtensionInfo *mit_info = &_mit_info_data;
static char *mit_extension_name = MITMISCNAME;
#define MITCheckExtension(dpy,i,val) \
XextCheckExtension (dpy, i, mit_extension_name, val)
static int close_display(Display *dpy, XExtCodes *codes);
static XExtensionHooks mit_extension_hooks = {
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
close_display,
NULL,
NULL,
NULL,
NULL
};
static XEXT_GENERATE_FIND_DISPLAY (find_display, mit_info, mit_extension_name,
&mit_extension_hooks, MITMiscNumberEvents,
NULL)
static XEXT_GENERATE_CLOSE_DISPLAY (close_display, mit_info)
Bool XMITMiscQueryExtension (Display *dpy, int *event_basep, int *error_basep)
{
XExtDisplayInfo *info = find_display (dpy);
if (XextHasExtension(info)) {
*event_basep = info->codes->first_event;
*error_basep = info->codes->first_error;
return True;
} else {
return False;
}
}
Status XMITMiscSetBugMode(Display *dpy, Bool onOff)
{
XExtDisplayInfo *info = find_display (dpy);
register xMITSetBugModeReq *req;
MITCheckExtension (dpy, info, 0);
LockDisplay(dpy);
GetReq(MITSetBugMode, req);
req->reqType = info->codes->major_opcode;
req->mitReqType = X_MITSetBugMode;
req->onOff = onOff;
UnlockDisplay(dpy);
SyncHandle();
return 1;
}
Bool XMITMiscGetBugMode(Display *dpy)
{
XExtDisplayInfo *info = find_display (dpy);
register xMITGetBugModeReq *req;
xMITGetBugModeReply rep;
MITCheckExtension (dpy, info, 0);
LockDisplay(dpy);
GetReq(MITGetBugMode, req);
req->reqType = info->codes->major_opcode;
req->mitReqType = X_MITGetBugMode;
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
UnlockDisplay(dpy);
SyncHandle();
return False;
}
UnlockDisplay(dpy);
SyncHandle();
return rep.onOff;
}