[core] re-enable minimize of widgets
by default, allow toggling the minimized state of a widget via the middle mouse and draw a single unicode char instead of the actual widget, maintaining all states. fixes #661
This commit is contained in:
parent
45d8ed23c9
commit
34dadadf90
6 changed files with 48 additions and 14 deletions
|
@ -184,12 +184,14 @@ class Module(core.input.Object):
|
|||
: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
|
||||
|
||||
|
|
|
@ -152,6 +152,12 @@ class i3(object):
|
|||
return self.__modules
|
||||
self.__modules = modules if isinstance(modules, list) else [modules]
|
||||
|
||||
def toggle_minimize(self, event):
|
||||
for module in self.__modules:
|
||||
widget = module.widget(widget_id=event["instance"])
|
||||
if widget:
|
||||
widget.minimized = not widget.minimized
|
||||
|
||||
def draw(self, what, args=None):
|
||||
cb = getattr(self, what)
|
||||
data = cb(args) if args else cb()
|
||||
|
@ -187,7 +193,7 @@ class i3(object):
|
|||
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 widget.minimized else self.__content[widget])
|
||||
if widget.get("pango", False):
|
||||
blk.set("markup", "pango")
|
||||
if self.__config.debug():
|
||||
|
|
|
@ -15,6 +15,7 @@ class Widget(util.store.Store, core.input.Object):
|
|||
self.__full_text = full_text
|
||||
self.module = None
|
||||
self.name = name
|
||||
self.minimized = False
|
||||
|
||||
@property
|
||||
def module(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue