Index: src/events.c =================================================================== RCS file: /cvsroot/ratpoison/ratpoison/src/events.c,v retrieving revision 1.135 diff -u -r1.135 events.c --- src/events.c 24 May 2006 02:48:22 -0000 1.135 +++ src/events.c 15 Jul 2006 10:15:43 -0000 @@ -621,8 +621,8 @@ { case XA_WM_NAME: PRINT_DEBUG (("updating window name\n")); - update_window_name (win); - update_window_names (win->scr, defaults.window_fmt); + if ( update_window_name (win) ) + update_window_names (win->scr, defaults.window_fmt); break; case XA_WM_NORMAL_HINTS: Index: src/manage.c =================================================================== RCS file: /cvsroot/ratpoison/ratpoison/src/manage.c,v retrieving revision 1.99 diff -u -r1.99 manage.c --- src/manage.c 24 May 2006 02:25:22 -0000 1.99 +++ src/manage.c 15 Jul 2006 10:15:43 -0000 @@ -305,10 +305,12 @@ update_window_name (rp_window *win) { char *newstr; + int changed = 0; newstr = get_wmname (win->w); if (newstr != NULL) { + changed = changed || win->wm_name == NULL || strcmp( newstr, win->wm_name ); free (win->wm_name); win->wm_name = newstr; } @@ -316,6 +318,7 @@ newstr = get_res_class (win->w); if (newstr != NULL) { + changed = changed || win->res_class == NULL || strcmp( newstr, win->res_class ); free (win->res_class); win->res_class = newstr; } @@ -323,11 +326,12 @@ newstr = get_res_name (win->w); if (newstr != NULL) { + changed = changed || win->res_name == NULL || strcmp( newstr, win->res_name ); free (win->res_name); win->res_name = newstr; } - return 1; + return changed; } /* Send an artificial configure event to the window. */