summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2013-07-25 22:17:52 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2013-07-25 22:17:52 +0900
commitfd0648286f9fad13ab8f8cf2ef56ba4d95c9920a (patch)
treec0077b9363a090c4991e695a55e393e863a81e99
parent9a905a2efda932a06f78c763240d422bd37151a6 (diff)
downloadelementary-fd0648286f9fad13ab8f8cf2ef56ba4d95c9920a.tar.gz
add throttle policy settings to elm
-rw-r--r--src/lib/elm_general.h14
-rw-r--r--src/lib/elm_win.c4
2 files changed, 17 insertions, 1 deletions
diff --git a/src/lib/elm_general.h b/src/lib/elm_general.h
index 9f37c0138..5e4703a82 100644
--- a/src/lib/elm_general.h
+++ b/src/lib/elm_general.h
@@ -80,6 +80,9 @@ typedef enum
ELM_POLICY_EXIT, /**< defines elm_exit() behaviour. @see Elm_Policy_Exit.
* @since 1.8
*/
+ ELM_POLICY_THROTTLE, /**< defines how throttling should work @see Elm_Policy_Throttle
+ * @since 1.8
+ */
ELM_POLICY_LAST
} Elm_Policy; /**< Elementary policy identifiers/groups enumeration. @see elm_policy_set() */
@@ -106,6 +109,17 @@ typedef enum
* the main loop */
} Elm_Policy_Exit;
+/**
+ * Possible values for the #ELM_POLICY_THROTTLE policy.
+ * @since 1.8
+ */
+typedef enum
+{
+ ELM_POLICY_THROTTLE_CONFIG = 0, /**< do whatever elementary config is configured to do */
+ ELM_POLICY_THROTTLE_HIDDEN_ALWAYS, /**< always throttle when all windows are no longer visible */
+ ELM_POLICY_THROTTLE_NEVER /**< never throttle when windows are all hidden, regardless of config settings */
+} Elm_Policy_Throttle;
+
typedef enum
{
ELM_OBJECT_SELECT_MODE_DEFAULT = 0, /**< default select mode */
diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index 525fea6c7..4636b1755 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -290,7 +290,9 @@ _elm_win_state_eval(void *data __UNUSED__)
}
}
}
- if (_elm_config->auto_throttle)
+ if (((_elm_config->auto_throttle) &&
+ (elm_policy_get(ELM_POLICY_THROTTLE) != ELM_POLICY_THROTTLE_NEVER)) ||
+ (elm_policy_get(ELM_POLICY_THROTTLE) == ELM_POLICY_THROTTLE_HIDDEN_ALWAYS))
{
if (_elm_win_count == 0)
{