From 60c475d6e6840cc7ca2bdf9ee6daab475325c097 Mon Sep 17 00:00:00 2001 From: philipdexter Date: Fri, 15 Mar 2013 21:34:45 -0400 Subject: [PATCH] Add the option of specifying python-ish negative array indices to the move method --- i3pystatus/core/modules.py | 3 ++- i3pystatus/core/util.py | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/i3pystatus/core/modules.py b/i3pystatus/core/modules.py index f1c1050..926d91d 100644 --- a/i3pystatus/core/modules.py +++ b/i3pystatus/core/modules.py @@ -3,6 +3,7 @@ import time from .settings import SettingsBase from .threading import Manager +from .util import convert_position __all__ = [ "Module", "AsyncModule", "IntervalModule", @@ -20,7 +21,7 @@ class Module(SettingsBase): if "name" not in self.output: self.output["name"] = self.__name__ self.output["instance"] = str(id(self)) - json.insert(self.position, self.output) + json.insert(convert_position(self.position, json), self.output) def on_click(self, button): if button == 1: # Left mouse button diff --git a/i3pystatus/core/util.py b/i3pystatus/core/util.py index aae8f5f..26b1a0f 100644 --- a/i3pystatus/core/util.py +++ b/i3pystatus/core/util.py @@ -95,3 +95,8 @@ class KeyConstraintDict(collections.UserDict): def missing(self): return self.required_keys - (self.seen_keys & self.required_keys) + +def convert_position(pos, json): + if pos < 0: + pos = len(json) + (pos+1) + return pos