@@ -52,6 +52,10 @@ void print_stringlist (StringList *list)
5252 s = "class" ;
5353 break ;
5454
55+ case SCREEN_NAME :
56+ s = "screen" ;
57+ break ;
58+
5559 default :
5660 s = "unknown type" ;
5761 }
@@ -78,6 +82,8 @@ void add_to_stringlist (StringList *list, char *s)
7882 type = RESOURCE_NAME ;
7983 else if (!strcasecmp (s , "class" ))
8084 type = CLASS_NAME ;
85+ else if (!strcasecmp (s , "screen" ))
86+ type = SCREEN_NAME ;
8187 else {
8288 ConsoleMessage ("Bad element in show/dontshow list: %s\n" , s );
8389 return ;
@@ -107,17 +113,18 @@ void add_to_stringlist (StringList *list, char *s)
107113}
108114
109115static int matches_string (NameType type , char * pattern , char * tname ,
110- char * iname , char * rname , char * cname )
116+ char * iname , char * rname , char * cname , char * sname )
111117{
112118 int ans = 0 ;
113119
114120 ConsoleDebug (WINLIST , "matches_string: type: 0x%x pattern: %s\n" ,
115121 type , pattern );
116- ConsoleDebug (WINLIST , "\tstrings: %s:%s %s:%s\n" ,
122+ ConsoleDebug (WINLIST , "\tstrings: %s:%s %s:%s %s \n" ,
117123 tname ? tname : "(null)" ,
118124 iname ? iname : "(null)" ,
119125 rname ? rname : "(null)" ,
120- cname ? cname : "(null)" );
126+ cname ? cname : "(null)" ,
127+ sname ? sname : "(null" );
121128
122129 if (tname && (type == ALL_NAME || type == TITLE_NAME )) {
123130 ans |= matchWildcards (pattern , tname );
@@ -131,6 +138,9 @@ static int matches_string (NameType type, char *pattern, char *tname,
131138 if (cname && (type == ALL_NAME || type == CLASS_NAME )) {
132139 ans |= matchWildcards (pattern , cname );
133140 }
141+ if (cname && (type == ALL_NAME || type == SCREEN_NAME )) {
142+ ans |= matchWildcards (pattern , sname );
143+ }
134144
135145 ConsoleDebug (WINLIST , "\tmatches_string: %d\n" , ans );
136146 return ans ;
@@ -209,7 +219,7 @@ int check_resolution(WinManager *manager, WinData *win)
209219}
210220
211221static int iconmanager_show (WinManager * man , char * tname , char * iname ,
212- char * rname , char * cname )
222+ char * rname , char * cname , char * sname )
213223{
214224 StringEl * string ;
215225 int in_showlist = 0 , in_dontshowlist = 0 ;
@@ -228,7 +238,7 @@ static int iconmanager_show (WinManager *man, char *tname, char *iname,
228238 for (string = man -> dontshow .list ; string ; string = string -> next ) {
229239 ConsoleDebug (WINLIST , "Matching: %s\n" , string -> string );
230240 if (matches_string (string -> type , string -> string , tname , iname ,
231- rname , cname )) {
241+ rname , cname , sname )) {
232242 ConsoleDebug (WINLIST , "Don't show\n" );
233243 in_dontshowlist = 1 ;
234244 break ;
@@ -243,7 +253,7 @@ static int iconmanager_show (WinManager *man, char *tname, char *iname,
243253 for (string = man -> show .list ; string ; string = string -> next ) {
244254 ConsoleDebug (WINLIST , "Matching: %s\n" , string -> string );
245255 if (matches_string (string -> type , string -> string , tname , iname ,
246- rname , cname )) {
256+ rname , cname , sname )) {
247257 ConsoleDebug (WINLIST , "Show\n" );
248258 in_showlist = 1 ;
249259 break ;
@@ -295,14 +305,15 @@ WinManager *figure_win_manager (WinData *win, Uchar name_mask)
295305 char * iname = win -> iconname ;
296306 char * rname = win -> resname ;
297307 char * cname = win -> classname ;
308+ char * sname = win -> monitor ;
298309 WinManager * man ;
299310
300- assert (tname || iname || rname || cname );
301- ConsoleDebug (WINLIST , "set_win_manager: %s %s %s %s\n" , tname , iname , rname , cname );
311+ assert (tname || iname || rname || cname || sname );
312+ ConsoleDebug (WINLIST , "set_win_manager: %s %s %s %s %s \n" , tname , iname , rname , cname , sname );
302313
303314 for (i = 0 , man = & globals .managers [0 ]; i < globals .num_managers ;
304315 i ++ , man ++ ) {
305- if (iconmanager_show (man , tname , iname , rname , cname ) &&
316+ if (iconmanager_show (man , tname , iname , rname , cname , sname ) &&
306317 check_resolution (man , win )) {
307318 if (man != win -> manager ) {
308319 assert (man -> magic == 0x12344321 );
@@ -329,6 +340,8 @@ int check_win_complete (WinData *p)
329340 (p -> resname ? p -> resname : "No p->resname" ));
330341 ConsoleDebug (WINLIST , "\tclass: %s\n" ,
331342 (p -> classname ? p -> classname : "No p->classname" ));
343+ ConsoleDebug (WINLIST , "\tscreen: %s\n" ,
344+ (p -> monitor ? p -> monitor : "No p->monitor" ));
332345 ConsoleDebug (WINLIST , "\tdisplaystring: %s\n" ,
333346 (p -> display_string ? p -> display_string :
334347 "No p->display_string" ));
0 commit comments