Hello Jerome,
The patch has a problem: it sometimes adds a value "0" in addition to the selected category. To correct that problem you should replace the line:
if($cat == $filter->filter_namekey)
by:
if(($cat == $filter->filter_namekey) || ($cat == 0))
The filter now works but there is still a problem with the display: when a second value is checked then the corresponding checkboxes are not checked anymore. To correct that, you should replace the following line (1602?):
if(!empty($selected) && is_array($selected) && in_array($cat->category_id, $selected)){
by:
if(!empty($selected) && is_array($selected) && (in_array($cat->category_id, $selected) || strpos($selected[0], $cat->category_id)!==False)){
This patch works if you have only one checkbox filter (in the selected[0]). If you want to adapt it to multiple checkbox filters, you should add a loop and test for each checkbox filter.
Thanks,
Romain