/*ARGSUSED*/ static Bool CopySwitchScreenArgs(XkbDescPtr xkb,XkbAction *action,char *buf, int *sz) { XkbSwitchScreenAction * act; char tbuf[32]; act= &action->screen; if ((act->flags&XkbSA_SwitchAbsolute)||(XkbSAScreen(act)<0)) sprintf(tbuf,"screen=%d",XkbSAScreen(act)); else sprintf(tbuf,"screen=+%d",XkbSAScreen(act)); TryCopyStr(buf,tbuf,sz); if (act->flags&XkbSA_SwitchApplication) TryCopyStr(buf,",!same",sz); else TryCopyStr(buf,",same",sz); return True; }
int XkbDDXSwitchScreen(DeviceIntPtr dev, KeyCode key, XkbAction *act) { int vtnum = XkbSAScreen(&act->screen); if (!kdOsFuncs->SwitchVT) return 1; if (act->screen.flags & XkbSA_SwitchApplication) { if (act->screen.flags & XkbSA_SwitchAbsolute) (*kdOsFuncs->SwitchVT) (KD_VT_ABSOLUTE, vtnum); else (*kdOsFuncs->SwitchVT) (KD_VT_RELATIVE, vtnum); } return 0; }
int XkbDDXSwitchScreen(DeviceIntPtr dev,KeyCode key,XkbAction *act) { #ifdef XF86DDXACTIONS { int scrnnum = XkbSAScreen(&act->screen); if (act->screen.flags & XkbSA_SwitchApplication) { if (act->screen.flags & XkbSA_SwitchAbsolute) xf86ProcessActionEvent(ACTION_SWITCHSCREEN,(void *) &scrnnum); else { if (scrnnum < 0) xf86ProcessActionEvent(ACTION_SWITCHSCREEN_PREV,NULL); else xf86ProcessActionEvent(ACTION_SWITCHSCREEN_NEXT,NULL); } } } #endif return 1; }