Moved disabling of repeat rate to Display
This commit is contained in:
parent
374334e7d3
commit
2077bbb1db
|
@ -203,15 +203,31 @@ static void waitMapped(Display *disp, Window win) {
|
||||||
} while ((event.type != MapNotify) || (event.xmap.event != win));
|
} while ((event.type != MapNotify) || (event.xmap.event != win));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void setRepeatMode(int mode) {
|
||||||
|
XKeyboardControl repeat_mode;
|
||||||
|
repeat_mode.auto_repeat_mode = mode;
|
||||||
|
XChangeKeyboardControl(disp, KBAutoRepeatMode, &repeat_mode);
|
||||||
|
}
|
||||||
|
|
||||||
bool releaseInput(void) {
|
bool releaseInput(void) {
|
||||||
if (current_fullscreen)
|
if (current_fullscreen)
|
||||||
return false;
|
return false;
|
||||||
releaseKeyboard();
|
releaseKeyboard();
|
||||||
releasePointer();
|
releasePointer();
|
||||||
input_released = true;
|
input_released = true;
|
||||||
|
setRepeatMode(AutoRepeatModeDefault);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void acquireInput(void) {
|
||||||
|
if (input_released) {
|
||||||
|
setRepeatMode(AutoRepeatModeOff);
|
||||||
|
acquireKeyboard();
|
||||||
|
acquirePointer();
|
||||||
|
input_released = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void handleMessages(void) {
|
void handleMessages(void) {
|
||||||
XEvent event;
|
XEvent event;
|
||||||
while (XPending(disp) > 0) {
|
while (XPending(disp) > 0) {
|
||||||
|
@ -222,10 +238,7 @@ void handleMessages(void) {
|
||||||
saved_env->SetStaticBooleanField(saved_clazz, fid_close, JNI_TRUE);
|
saved_env->SetStaticBooleanField(saved_clazz, fid_close, JNI_TRUE);
|
||||||
break;
|
break;
|
||||||
case FocusIn:
|
case FocusIn:
|
||||||
if (input_released) {
|
acquireInput();
|
||||||
acquireKeyboard();
|
|
||||||
acquirePointer();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case MapNotify:
|
case MapNotify:
|
||||||
current_minimized = false;
|
current_minimized = false;
|
||||||
|
@ -410,11 +423,13 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_Display_nCreate(JNIEnv * env, jclass c
|
||||||
XF86VidModeSetViewPort(disp, screen, 0, 0);
|
XF86VidModeSetViewPort(disp, screen, 0, 0);
|
||||||
}
|
}
|
||||||
XClearWindow(disp, win);
|
XClearWindow(disp, win);
|
||||||
|
setRepeatMode(AutoRepeatModeOff);
|
||||||
XSync(disp, True);
|
XSync(disp, True);
|
||||||
return JNI_TRUE;
|
return JNI_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_lwjgl_Display_nDestroy(JNIEnv * env, jclass clazz) {
|
JNIEXPORT void JNICALL Java_org_lwjgl_Display_nDestroy(JNIEnv * env, jclass clazz) {
|
||||||
|
setRepeatMode(AutoRepeatModeDefault);
|
||||||
XDestroyWindow(disp, win);
|
XDestroyWindow(disp, win);
|
||||||
if (current_fullscreen) {
|
if (current_fullscreen) {
|
||||||
if (!XF86VidModeSwitchToMode(disp, screen, avail_modes[0])) {
|
if (!XF86VidModeSwitchToMode(disp, screen, avail_modes[0])) {
|
||||||
|
|
|
@ -123,11 +123,6 @@ static void updateGrab(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setRepeatMode(int mode) {
|
|
||||||
XKeyboardControl repeat_mode;
|
|
||||||
repeat_mode.auto_repeat_mode = mode;
|
|
||||||
XChangeKeyboardControl(disp, KBAutoRepeatMode, &repeat_mode);
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
* Class: org_lwjgl_input_Keyboard
|
* Class: org_lwjgl_input_Keyboard
|
||||||
* Method: nCreate
|
* Method: nCreate
|
||||||
|
@ -164,7 +159,6 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_input_Keyboard_nCreate
|
||||||
|
|
||||||
memset(key_buf, 0, KEYBOARD_SIZE*sizeof(unsigned char));
|
memset(key_buf, 0, KEYBOARD_SIZE*sizeof(unsigned char));
|
||||||
created = true;
|
created = true;
|
||||||
setRepeatMode(AutoRepeatModeOff);
|
|
||||||
return JNI_TRUE;
|
return JNI_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,7 +173,6 @@ JNIEXPORT void JNICALL Java_org_lwjgl_input_Keyboard_nDestroy
|
||||||
if (keyboard_grabbed)
|
if (keyboard_grabbed)
|
||||||
ungrabKeyboard();
|
ungrabKeyboard();
|
||||||
created = false;
|
created = false;
|
||||||
setRepeatMode(AutoRepeatModeDefault);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static XKeyEvent *nextEventElement(void) {
|
static XKeyEvent *nextEventElement(void) {
|
||||||
|
|
Loading…
Reference in New Issue