Чет я туплю и никак не осилю эту штуку.

Вообщем мне нужен выделяемый (selectable) композитный виджет (тобеш состоящий из других виджетов) в котором некоторые его компоненты будут раскрашены в иные цвета - но при этом при выделении корректно сменять цвет. Вот какраз с последним я и застрял. Если все вложенные виджеты в единой раскраске, все нормально. Но если какойнибуть из них раскрасить иначе, то при выделении у него цвет не сменяется.
Уже как только ни пробовал, нифига не выходит.
В примерах подобной штуки нигде нету, такчто глянуть некуда. но поидеи штукаж простая.

Подскажите ктонить как это сделать?

widgets.py

#!/usr/bin/python3

import urwid
from urwid import WidgetWrap, Pile, Columns, Text, Padding, AttrWrap, SelectableIcon, ListBox, Divider
from urwid.command_map import ACTIVATE
from urwid.util import is_mouse_press
import urwid.raw_display

urwid.set_encoding("UTF-8"

class FilterItem(WidgetWrap):
def __init__(self, name, descr, count):
self._w_name=Text(f'{name}')
self._w_count=Text(f'{count}', align='right')
self._w_descr=Text(f'{descr}')

#! если убрать эту строку, все работает коректно, если оставить - описание элемента перестает получать фокус
# self._w_descr=AttrWrap(self._w_descr, 'style2', 'style2-focus')

w=Pile([
Columns([
self._w_name, self._w_count
], 1),
self._w_descr
])

w=AttrWrap(w, 'style1', 'style1-focus')
self.__super.__init__(w)

def selectable(self):
return True

class FiltersList(urwid.SimpleFocusListWalker):
def __init__(self):
grp=[]
data=[
FilterItem('Item name', 'Descreption text', 1),
FilterItem('Item name', 'Descreption text', 1),
Divider('