extern void inputdevice_acquire (int allmode);
extern void inputdevice_unacquire(void);
extern void inputdevice_unacquire(bool emulationactive, int inputmask);
+extern void inputdevice_releasebuttons(void);
extern void indicator_leds (int num, int state);
}
lightpen_trigger2 = 0;
cubo_flag = 0;
- alg_flag = 0;
+ alg_flag &= 1;
}
static int getoldport (struct uae_input_device *id)
}
}
-static void clearpressmask(void)
+void inputdevice_releasebuttons(void)
{
for (int i = 0; i < MAX_INPUT_DEVICES; i++) {
for (int j = 0; j < 32; j++) {
idev[IDTYPE_KEYBOARD].acquire (i, allmode < 0);
}
- clearpressmask();
-
if (input_acquired)
return;
idev[IDTYPE_MOUSE].unacquire(-1);
if (!(inputmask & 1))
idev[IDTYPE_KEYBOARD].unacquire(-1);
-
- clearpressmask();
}
void inputdevice_unacquire(void)
}
if (mode >= 0)
jp->mode = mode;
+ jp->changed = true;
}
int inputdevice_joyport_config (struct uae_prefs *p, const TCHAR *value1, const TCHAR *value2, int portnum, int mode, int type, bool candefault)
void inputdevice_fix_prefs(struct uae_prefs *p, bool userconfig)
{
struct jport jport_config_store[MAX_JPORTS];
+ bool changed = false;
for (int i = 0; i < MAX_JPORTS; i++) {
memcpy(&jport_config_store[i], &p->jports[i], sizeof(struct jport));
+ changed |= p->jports[i].changed;
}
+ if (!changed)
+ return;
+
bool defaultports = userconfig == false;
// Convert old style custom mapping to new style
for (int i = 0; i < MAX_JPORTS_CUSTOM; i++) {
}
#endif
inputdevice_acquire (FALSE);
+ inputdevice_releasebuttons();
}
if (!active && allowpause) {
if (currprefs.win32_active_nocapture_pause) {