Hello community,
here is the log from the commit of package bumblebee-status for
openSUSE:Factory checked in at 2020-06-25 15:09:20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bumblebee-status (Old)
and /work/SRC/openSUSE:Factory/.bumblebee-status.new.3060 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bumblebee-status"
Thu Jun 25 15:09:20 2020 rev:7 rq:816965 version:2.0.3
Changes:
--------
--- /work/SRC/openSUSE:Factory/bumblebee-status/bumblebee-status.changes
2020-06-23 21:05:44.918065951 +0200
+++
/work/SRC/openSUSE:Factory/.bumblebee-status.new.3060/bumblebee-status.changes
2020-06-25 15:10:45.545992418 +0200
@@ -1,0 +2,8 @@
+Thu Jun 25 07:12:18 UTC 2020 - Michael Vetter <[email protected]>
+
+- Update to 2.0.3:
+ * fixed #661 - collapsing modules via middle mouse was missing
+ * fixed #662 - regression that broke the pulseaudio module
+ when using non-english locales
+
+-------------------------------------------------------------------
Old:
----
bumblebee-status-2.0.2.tar.gz
New:
----
bumblebee-status-2.0.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bumblebee-status.spec ++++++
--- /var/tmp/diff_new_pack.wWXr7B/_old 2020-06-25 15:10:46.305994802 +0200
+++ /var/tmp/diff_new_pack.wWXr7B/_new 2020-06-25 15:10:46.309994816 +0200
@@ -17,7 +17,7 @@
Name: bumblebee-status
-Version: 2.0.2
+Version: 2.0.3
Release: 0
Summary: Modular, theme-able status line generator for the i3 window
manager
License: MIT
++++++ bumblebee-status-2.0.2.tar.gz -> bumblebee-status-2.0.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bumblebee-status-2.0.2/bumblebee-status
new/bumblebee-status-2.0.3/bumblebee-status
--- old/bumblebee-status-2.0.2/bumblebee-status 2020-06-22 11:43:16.000000000
+0200
+++ new/bumblebee-status-2.0.3/bumblebee-status 2020-06-24 07:47:31.000000000
+0200
@@ -19,6 +19,7 @@
import core.input
import core.event
+import util.format
started = False
@@ -38,7 +39,7 @@
os.unlink(self.__name)
-def handle_input(output):
+def handle_input(output, update_lock):
with CommandSocket() as cmdsocket:
poll = select.poll()
poll.register(sys.stdin.fileno(), select.POLLIN)
@@ -66,8 +67,10 @@
modules[event["name"]] = True
except ValueError:
pass
+ update_lock.acquire()
core.event.trigger("update", modules.keys())
core.event.trigger("draw")
+ update_lock.release()
poll.unregister(sys.stdin.fileno())
@@ -95,7 +98,8 @@
core.input.register(None, core.input.WHEEL_UP, "i3-msg workspace
prev_on_output")
core.input.register(None, core.input.WHEEL_DOWN, "i3-msg workspace
next_on_output")
- input_thread = threading.Thread(target=handle_input, args=(output,))
+ update_lock = threading.Lock()
+ input_thread = threading.Thread(target=handle_input, args=(output,
update_lock, ))
input_thread.daemon = True
input_thread.start()
@@ -110,11 +114,17 @@
modules.reverse()
output.modules(modules)
+
+ if util.format.asbool(config.get("engine.collapsible", True)) == True:
+ core.input.register(None, core.input.MIDDLE_MOUSE,
output.toggle_minimize)
+
core.event.trigger("start")
started = True
while True:
- core.event.trigger("update")
- core.event.trigger("draw")
+ if update_lock.acquire(blocking=False) == True:
+ core.event.trigger("update")
+ core.event.trigger("draw")
+ update_lock.release()
output.wait(config.interval())
core.event.trigger("stop")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/bumblebee-status-2.0.2/bumblebee_status/core/module.py
new/bumblebee-status-2.0.3/bumblebee_status/core/module.py
--- old/bumblebee-status-2.0.2/bumblebee_status/core/module.py 2020-06-22
11:43:16.000000000 +0200
+++ new/bumblebee-status-2.0.3/bumblebee_status/core/module.py 2020-06-24
07:47:31.000000000 +0200
@@ -171,7 +171,8 @@
"""
def add_widget(self, full_text="", name=None):
- widget = core.widget.Widget(full_text=full_text, name=name)
+ widget_id = "{}::{}".format(self.name, len(self.widgets()))
+ widget = core.widget.Widget(full_text=full_text, name=name,
widget_id=widget_id)
self.widgets().append(widget)
widget.module = self
return widget
@@ -184,12 +185,14 @@
:rtype: bumblebee_status.widget.Widget
"""
- def widget(self, name=None):
- if not name:
+ def widget(self, name=None, widget_id=None):
+ if not name and not widget_id:
return self.widgets()[0]
for w in self.widgets():
- if w.name == name:
+ if name and w.name == name:
+ return w
+ if w.id == widget_id:
return w
return None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/bumblebee-status-2.0.2/bumblebee_status/core/output.py
new/bumblebee-status-2.0.3/bumblebee_status/core/output.py
--- old/bumblebee-status-2.0.2/bumblebee_status/core/output.py 2020-06-22
11:43:16.000000000 +0200
+++ new/bumblebee-status-2.0.3/bumblebee_status/core/output.py 2020-06-24
07:47:31.000000000 +0200
@@ -142,6 +142,9 @@
core.event.register("draw", self.draw, "statusline")
core.event.register("stop", self.draw, "stop")
+ def content(self):
+ return self.__content
+
def theme(self, new_theme=None):
if new_theme:
self.__theme = new_theme
@@ -152,6 +155,12 @@
return self.__modules
self.__modules = modules if isinstance(modules, list) else [modules]
+ def toggle_minimize(self, event):
+ widget_id = event["instance"]
+
+ if widget_id in self.__content:
+ self.__content[widget_id]["minimized"] = not
self.__content[widget_id]["minimized"]
+
def draw(self, what, args=None):
cb = getattr(self, what)
data = cb(args) if args else cb()
@@ -187,7 +196,7 @@
except:
blk.set("min-width", minwidth)
blk.set("align", widget.theme("align"))
- blk.set("full_text", self.__content[widget])
+ blk.set("full_text", "\u2026" if
self.__content[widget.id]["minimized"] else self.__content[widget.id]["text"])
if widget.get("pango", False):
blk.set("markup", "pango")
if self.__config.debug():
@@ -230,7 +239,9 @@
module.parameter("interval", self.__config.interval())
)
for widget in module.widgets():
- self.__content[widget] = widget.full_text()
+ if not widget.id in self.__content:
+ self.__content[widget.id] = { "minimized": False }
+ self.__content[widget.id]["text"] = widget.full_text()
def statusline(self):
blocks = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/bumblebee-status-2.0.2/bumblebee_status/core/widget.py
new/bumblebee-status-2.0.3/bumblebee_status/core/widget.py
--- old/bumblebee-status-2.0.2/bumblebee_status/core/widget.py 2020-06-22
11:43:16.000000000 +0200
+++ new/bumblebee-status-2.0.3/bumblebee_status/core/widget.py 2020-06-24
07:47:31.000000000 +0200
@@ -10,11 +10,12 @@
class Widget(util.store.Store, core.input.Object):
- def __init__(self, full_text="", name=None):
+ def __init__(self, full_text="", name=None, widget_id=None):
super(Widget, self).__init__()
self.__full_text = full_text
self.module = None
self.name = name
+ self.id = widget_id or self.id
@property
def module(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bumblebee-status-2.0.2/bumblebee_status/util/cli.py
new/bumblebee-status-2.0.3/bumblebee_status/util/cli.py
--- old/bumblebee-status-2.0.2/bumblebee_status/util/cli.py 2020-06-22
11:43:16.000000000 +0200
+++ new/bumblebee-status-2.0.3/bumblebee_status/util/cli.py 2020-06-24
07:47:31.000000000 +0200
@@ -30,6 +30,11 @@
"""
args = cmd if shell else shlex.split(cmd)
logging.debug(cmd)
+
+ if not env:
+ env = os.environ.copy()
+ env["LC_ALL"] = "C"
+
try:
proc = subprocess.Popen(
args,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bumblebee-status-2.0.2/tests/core/test_module.py
new/bumblebee-status-2.0.3/tests/core/test_module.py
--- old/bumblebee-status-2.0.2/tests/core/test_module.py 2020-06-22
11:43:16.000000000 +0200
+++ new/bumblebee-status-2.0.3/tests/core/test_module.py 2020-06-24
07:47:31.000000000 +0200
@@ -129,6 +129,13 @@
assert module.widget("i-do-not-exist") == None
assert module.widget() == widget_a
+def test_get_widget_by_id(empty_config, widget_a, widget_b):
+ module = SampleModule(config=empty_config, widgets=[widget_a, widget_b])
+
+ assert module.widget(widget_id=widget_a.id) == widget_a
+ assert module.widget(widget_id=widget_b.id) == widget_b
+ assert module.widget(widget_id="i-do-not-exist") == None
+
def test_default_thresholds(empty_config, widget_a, widget_b):
module = SampleModule(config=empty_config, widgets=[widget_a, widget_b])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bumblebee-status-2.0.2/tests/core/test_output.py
new/bumblebee-status-2.0.3/tests/core/test_output.py
--- old/bumblebee-status-2.0.2/tests/core/test_output.py 2020-06-22
11:43:16.000000000 +0200
+++ new/bumblebee-status-2.0.3/tests/core/test_output.py 2020-06-24
07:47:31.000000000 +0200
@@ -25,6 +25,14 @@
def module_a(mocker):
widget = mocker.MagicMock()
widget.full_text.return_value = "test"
+ widget.id = "a"
+ return SampleModule(config=core.config.Config([]), widgets=[widget,
widget, widget])
+
[email protected]
+def module_b(mocker):
+ widget = mocker.MagicMock()
+ widget.full_text.return_value = "test"
+ widget.id = "b"
return SampleModule(config=core.config.Config([]), widgets=[widget,
widget, widget])
@@ -46,16 +54,6 @@
theme=separatorTheme, module=module_a, widget=module_a.widget(),
)
-
-# def setUp(self):
-# self.i3 = core.output.i3()
-# widget = unittest.mock.MagicMock()
-# widget.full_text.return_value = "test"
-# self.someModule = SampleModule(
-# config=core.config.Config([]), widgets=[widget, widget, widget]
-# )
-# self.separator = "***"
-#
def test_start(i3):
all_data = i3.start()
data = all_data["blocks"]
@@ -83,6 +81,23 @@
i3.modules([module_a, module_a, module_a])
assert i3.modules() == [module_a, module_a, module_a]
+def test_toggle_module(i3, module_a, module_b):
+ i3.modules([module_a, module_b])
+
+ i3.update()
+ i3.toggle_minimize({ "instance": module_a.widget().id })
+ i3.update()
+
+ assert i3.content()[module_a.widget().id]["minimized"] == True
+
+# assert module_a.widget().minimized == True
+# assert module_b.widget().minimized == False
+#
+# i3.toggle_minimize({ "instance": module_a.widget().id })
+# i3.toggle_minimize({ "instance": module_b.widget().id })
+#
+# assert module_a.widget().minimized == False
+# assert module_b.widget().minimized == True
def test_draw_existing_module(mocker, i3):
i3.test_draw = mocker.MagicMock(