/** Get the current mouse buttons pressed. */ unsigned int GetMouseMask() { Window win1; int winx, winy; unsigned int mask; JXQueryPointer(display, rootWindow, &win1, &mousew, &mousex, &mousey, &winx, &winy, &mask); return mask; }
/** Move the mouse to the specified coordinates on a window. */ void MoveMouse(Window win, int x, int y) { Window win1; int winx, winy; unsigned int mask; JXWarpPointer(display, None, win, 0, 0, 0, 0, x, y); JXQueryPointer(display, rootWindow, &win1, &mousew, &mousex, &mousey, &winx, &winy, &mask); }
/** Startup cursor support. */ void StartupCursors() { Window win1; int winx, winy; unsigned int mask; int x; for(x = 0; x < CURSOR_COUNT; x++) { cursors[x] = CreateCursor(cursor_shapes[x]); } JXQueryPointer(display, rootWindow, &win1, &mousew, &mousex, &mousey, &winx, &winy, &mask); }
/** Set the focus to the window currently under the mouse pointer. */ void LoadFocus(void) { ClientNode *np; Window rootReturn, childReturn; int rootx, rooty; int winx, winy; unsigned int mask; JXQueryPointer(display, rootWindow, &rootReturn, &childReturn, &rootx, &rooty, &winx, &winy, &mask); np = FindClient(childReturn); if(np) { FocusClient(np); } }
/** Display a tray (for autohide). */ void ShowTray(TrayType *tp) { Window win1, win2; int winx, winy; unsigned int mask; int mousex, mousey; if(tp->hidden) { tp->hidden = 0; JXMoveWindow(display, tp->window, tp->x, tp->y); JXQueryPointer(display, rootWindow, &win1, &win2, &mousex, &mousey, &winx, &winy, &mask); SetMousePosition(mousex, mousey); } }
/** Startup cursor support. */ void StartupCursors() { Window win1, win2; int winx, winy; unsigned int mask; defaultCursor = CreateCursor(XC_left_ptr); moveCursor = CreateCursor(XC_fleur); northCursor = CreateCursor(XC_top_side); southCursor = CreateCursor(XC_bottom_side); eastCursor = CreateCursor(XC_right_side); westCursor = CreateCursor(XC_left_side); northEastCursor = CreateCursor(XC_ur_angle); northWestCursor = CreateCursor(XC_ul_angle); southEastCursor = CreateCursor(XC_lr_angle); southWestCursor = CreateCursor(XC_ll_angle); chooseCursor = CreateCursor(XC_tcross); JXQueryPointer(display, rootWindow, &win1, &win2, &mousex, &mousey, &winx, &winy, &mask); }