@@ -16,8 +16,6 @@ public class Gala.WindowListModel : Object, ListModel {
1616 STACKING
1717 }
1818
19- public delegate bool WindowFilter (Meta .Window window );
20-
2119 public Meta . Display display { get ; construct; }
2220
2321 public SortMode sort_mode { get ; construct; }
@@ -38,18 +36,20 @@ public class Gala.WindowListModel : Object, ListModel {
3836 */
3937 public Meta . Workspace ? workspace_filter { get ; construct set ; }
4038
41- private Gee . ArrayList< Meta . Window > windows;
39+ public Gtk . Filter ? custom_filter { get ; con struct set ; }
4240
43- private WindowFilter ? custom_filter = null ;
41+ private Gee . ArrayList< Meta . Window > windows ;
4442
4543 public WindowListModel (
4644 Meta . Display display, SortMode sort_mode = NONE ,
4745 bool normal_filter = false , int monitor_filter = - 1 ,
48- Meta . Workspace ? workspace_filter = null
46+ Meta . Workspace ? workspace_filter = null ,
47+ Gtk . Filter ? custom_filter = null
4948 ) {
5049 Object (
5150 display: display, sort_mode: sort_mode, normal_filter: normal_filter,
52- monitor_filter: monitor_filter, workspace_filter: workspace_filter
51+ monitor_filter: monitor_filter, workspace_filter: workspace_filter,
52+ custom_filter: custom_filter
5353 );
5454 }
5555
@@ -68,11 +68,6 @@ public class Gala.WindowListModel : Object, ListModel {
6868 check_all ();
6969 }
7070
71- public void set_custom_filter (WindowFilter ? filter) {
72- custom_filter = filter;
73- check_all ();
74- }
75-
7671 private void on_window_created (Meta . Window window) {
7772 window. unmanaging. connect (on_window_unmanaging);
7873 InternalUtils . wait_for_window_actor (window, (actor) = > check_window (actor. meta_window));
@@ -123,7 +118,7 @@ public class Gala.WindowListModel : Object, ListModel {
123118 }
124119
125120 if (custom_filter != null ) {
126- return custom_filter (window);
121+ return custom_filter. match (window);
127122 }
128123
129124 return true ;
0 commit comments