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(


Reply via email to