diff --git a/platform/platform-impl/src/com/intellij/ide/GeneralSettingsConfigurable.java b/platform/platform-impl/src/com/intellij/ide/GeneralSettingsConfigurable.java
index a6c82bb19004..6929e9cd126a 100644
--- a/platform/platform-impl/src/com/intellij/ide/GeneralSettingsConfigurable.java
+++ b/platform/platform-impl/src/com/intellij/ide/GeneralSettingsConfigurable.java
@@ -23,16 +23,14 @@ import com.intellij.openapi.options.SearchableConfigurable;
import com.intellij.openapi.options.ex.ConfigurableWrapper;
import com.intellij.ui.components.JBRadioButton;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
import javax.swing.*;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
import java.awt.*;
import java.util.List;
+import java.util.concurrent.TimeUnit;
/**
- * To provide additional options in General section register implementation of {@link com.intellij.openapi.options.SearchableConfigurable} in the plugin.xml:
+ * To provide additional options in General section register implementation of {@link SearchableConfigurable} in the plugin.xml:
*
* <extensions defaultExtensionNs="com.intellij">
* <generalOptionsProvider instance="class-name"/>
@@ -49,6 +47,7 @@ public class GeneralSettingsConfigurable extends CompositeConfigurable 0) {
- settings.setInactiveTimeout(newInactiveTimeout);
+ int newInactiveTimeoutSeconds = Integer.parseInt(myComponent.myTfInactiveTimeout.getText());
+ if (newInactiveTimeoutSeconds > 0 && TimeUnit.SECONDS.toHours(newInactiveTimeoutSeconds) < 24) {
+ settings.setInactiveTimeout(newInactiveTimeoutSeconds);
}
}
catch (NumberFormatException ignored) { }
@@ -97,11 +96,11 @@ public class GeneralSettingsConfigurable extends CompositeConfigurable myComponent.myTfInactiveTimeout.setEditable(myComponent.myChkAutoSaveIfInactive.isSelected()));
List list = getConfigurables();
if (!list.isEmpty()) {
@@ -144,10 +141,12 @@ public class GeneralSettingsConfigurable extends CompositeConfigurable createConfigurables() {
return ConfigurableWrapper.createConfigurables(EP_NAME);
}
diff --git a/platform/platform-impl/src/com/intellij/ide/IdeEventQueue.java b/platform/platform-impl/src/com/intellij/ide/IdeEventQueue.java
index 84ac9d166627..02f183a96ba6 100644
--- a/platform/platform-impl/src/com/intellij/ide/IdeEventQueue.java
+++ b/platform/platform-impl/src/com/intellij/ide/IdeEventQueue.java
@@ -60,6 +60,7 @@ import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.*;
import java.util.List;
+import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
/**
@@ -235,14 +236,15 @@ public class IdeEventQueue extends EventQueue {
}
}
-
- public void addIdleListener(@NotNull final Runnable runnable, final int timeout) {
- LOG.assertTrue(timeout > 0);
+ public void addIdleListener(@NotNull final Runnable runnable, final int timeoutMillis) {
+ if(timeoutMillis <= 0 || TimeUnit.MILLISECONDS.toHours(timeoutMillis) >= 24) {
+ throw new IllegalArgumentException("This timeout value is unsupported: " + timeoutMillis);
+ }
synchronized (myLock) {
myIdleListeners.add(runnable);
- final MyFireIdleRequest request = new MyFireIdleRequest(runnable, timeout);
+ final MyFireIdleRequest request = new MyFireIdleRequest(runnable, timeoutMillis);
myListener2Request.put(runnable, request);
- UIUtil.invokeLaterIfNeeded(() -> myIdleRequestsAlarm.addRequest(request, timeout));
+ UIUtil.invokeLaterIfNeeded(() -> myIdleRequestsAlarm.addRequest(request, timeoutMillis));
}
}