diff options
author | Charles Kerr <charles.kerr@canonical.com> | 2012-11-06 13:59:36 -0600 |
---|---|---|
committer | Charles Kerr <charles.kerr@canonical.com> | 2012-11-06 13:59:36 -0600 |
commit | 75636fb425e2ea398f2883197bde70b96900cb6d (patch) | |
tree | 2c72115cd05db665a1034f8da11186a0db302b6d | |
parent | e555496b6486982a75429af159c6ecd556944ff6 (diff) | |
download | ayatana-indicator-power-75636fb425e2ea398f2883197bde70b96900cb6d.tar.gz ayatana-indicator-power-75636fb425e2ea398f2883197bde70b96900cb6d.tar.bz2 ayatana-indicator-power-75636fb425e2ea398f2883197bde70b96900cb6d.zip |
when choosing between two devices, always pick the one that's not a UP_DEVICE_KIND_LINE_POWER
-rw-r--r-- | src/indicator-power.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/indicator-power.c b/src/indicator-power.c index 4118dcc..888e186 100644 --- a/src/indicator-power.c +++ b/src/indicator-power.c @@ -357,7 +357,8 @@ build_menu (IndicatorPower *self) 2. discharging items with an unknown time remaining 3. charging items from most time left to charge to least time left to charge 4. charging items with an unknown time remaining - 5. everything else */ + 5. everything except line-power, because it's not interesting + 6. line-power */ static gint device_compare_func (gconstpointer ga, gconstpointer gb) { @@ -418,6 +419,24 @@ device_compare_func (gconstpointer ga, gconstpointer gb) } } + if (!ret) /* make UP_DEVICE_KIND_LINE_POWER go last because it's not interesting */ + { + const UpDeviceKind a_kind = indicator_power_device_get_kind (a); + const UpDeviceKind b_kind = indicator_power_device_get_kind (b); + + if ((a_kind == UP_DEVICE_KIND_LINE_POWER) || (b_kind == UP_DEVICE_KIND_LINE_POWER)) + { + if (a_kind != UP_DEVICE_KIND_LINE_POWER) /* b is a line-power */ + { + ret = -1; + } + else if (b_kind != UP_DEVICE_KIND_LINE_POWER) /* a is a line-power */ + { + ret = 1; + } + } + } + if (!ret) ret = a_state - b_state; |