// xtest opcode 1 - compare cursor /** * @param cursor possible: * {@link Cursor#NONE}, * {@link Cursor#CURRENT} * * @see <a href="XTestCompareCursorWithWindow.html"> * XTestCompareCursorWithWindow</a> */ public bool compare_cursor(Window window, Cursor cursor) { Request request = new Request (display, major_opcode, 1, 3); request.write4 (window.id); request.write4 (cursor.id); return display.read_reply (request).read_bool (1); }
// opcode 30 - change active pointer grab /** * @param cursor possible: {@link Cursor#NONE} * @param time possible: {@link Display#CURRENT_TIME} * @see <a href="XChangeActivePointerGrab.html"> * XChangeActivePointerGrab</a> */ public void change_active_pointer_grab(int event_mask, Cursor cursor, int time) { Request request = new Request (display, 30, 4); request.write4 (cursor.id); request.write4 (time); request.write2 (event_mask); display.send_request (request); }
// opcode 26 - grab pointer /** * @param pointer_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param keyboard_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param confine_to possible: {@link #NONE} * @param cursor possible: {@link Cursor#NONE} * @param time possible: {@link Display#CURRENT_TIME} * * @return valid: * {@link #SUCCESS}, * {@link #ALREADY_GRABBED}, * {@link #FROZEN}, * {@link #INVALID_TIME}, * {@link #NOT_VIEWABLE} * * @see <a href="XGrabPointer.html">XGrabPointer</a> */ public int grab_pointer(bool owner_events, int event_mask, int pointer_mode, int keyboard_mode, Window confine_to, Cursor cursor, int time) { Request request = new Request (display, 26, owner_events, 6); request.write4 (id); request.write2 (event_mask); request.write1 (pointer_mode); request.write1 (keyboard_mode); request.write4 (confine_to.id); request.write4 (cursor.id); request.write4 (time); return display.read_reply (request).read1 (1); }
/** * Grab button ignoring caps lock (LOCK), num lock (MOD2), and scroll * lock (MOD5). * * @see #grab_button(int, int, bool, int, int, int, Window, Cursor) */ public void grab_button_ignore_locks(int button, int modifiers, bool owner_events, int event_mask, int pointer_mode, int keyboard_mode, Window confine_to, Cursor cursor) { // Are there a portable way to do this? // Sawfish and Icewm use the same technique as well. // TODO highly inefficient (many X requests) for (int i=0; i<Input.LOCK_COMBINATIONS.Length; i++) grab_button (button, modifiers | Input.LOCK_COMBINATIONS [i], owner_events, event_mask, pointer_mode, keyboard_mode, confine_to, cursor); }
// opcode 28 - grab button /** * @param button possible: {@link #ANY_BUTTON} * @param modifiers possible: {@link #ANY_MODIFIER} * @param pointer_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param keyboard_mode valid: * {@link #SYNCHRONOUS}, * {@link #ASYNCHRONOUS} * * @param confine_to possible: {@link #NONE} * @param cursor possible: {@link Cursor#NONE} * @see <a href="XGrabButton.html">XGrabButton</a> */ public void grab_button(int button, int modifiers, bool owner_events, int event_mask, int pointer_mode, int keyboard_mode, Window confine_to, Cursor cursor) { Request request = new Request (display, 28, owner_events, 6); request.write4 (id); request.write2 (event_mask); request.write1 (pointer_mode); request.write1 (keyboard_mode); request.write4 (confine_to.id); request.write4 (cursor.id); request.write1 (button); request.write1_unused (); request.write2 (modifiers); display.send_request (request); }
/** * @param c possible: {@link Cursor#NONE} */ public void set_cursor(Cursor c) { set (14, c.id); }