mirror of
https://github.com/shadowfacts/lwjgl2-arm64.git
synced 2026-04-08 07:54:05 +00:00
Moved disabling of repeat rate to Display
This commit is contained in:
parent
374334e7d3
commit
2077bbb1db
2 changed files with 19 additions and 11 deletions
|
|
@ -203,15 +203,31 @@ static void waitMapped(Display *disp, Window 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) {
|
||||
if (current_fullscreen)
|
||||
return false;
|
||||
releaseKeyboard();
|
||||
releasePointer();
|
||||
input_released = true;
|
||||
setRepeatMode(AutoRepeatModeDefault);
|
||||
return true;
|
||||
}
|
||||
|
||||
static void acquireInput(void) {
|
||||
if (input_released) {
|
||||
setRepeatMode(AutoRepeatModeOff);
|
||||
acquireKeyboard();
|
||||
acquirePointer();
|
||||
input_released = false;
|
||||
}
|
||||
}
|
||||
|
||||
void handleMessages(void) {
|
||||
XEvent event;
|
||||
while (XPending(disp) > 0) {
|
||||
|
|
@ -222,10 +238,7 @@ void handleMessages(void) {
|
|||
saved_env->SetStaticBooleanField(saved_clazz, fid_close, JNI_TRUE);
|
||||
break;
|
||||
case FocusIn:
|
||||
if (input_released) {
|
||||
acquireKeyboard();
|
||||
acquirePointer();
|
||||
}
|
||||
acquireInput();
|
||||
break;
|
||||
case MapNotify:
|
||||
current_minimized = false;
|
||||
|
|
@ -410,11 +423,13 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_Display_nCreate(JNIEnv * env, jclass c
|
|||
XF86VidModeSetViewPort(disp, screen, 0, 0);
|
||||
}
|
||||
XClearWindow(disp, win);
|
||||
setRepeatMode(AutoRepeatModeOff);
|
||||
XSync(disp, True);
|
||||
return JNI_TRUE;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL Java_org_lwjgl_Display_nDestroy(JNIEnv * env, jclass clazz) {
|
||||
setRepeatMode(AutoRepeatModeDefault);
|
||||
XDestroyWindow(disp, win);
|
||||
if (current_fullscreen) {
|
||||
if (!XF86VidModeSwitchToMode(disp, screen, avail_modes[0])) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue