updated titlechanged hook patch

Zed Lopez <[email protected]>
Newsgroups gmane.comp.window-managers.ratpoison.devel
Message-ID <[email protected]>
Attached is an updated version of a patch that adds a 'titlechanged'
hook for when the current window's title changes, suitable for keeping
the current window's title in a dzen status bar. The old one didn't
work against the current source (since the newwindow hook was
committed); this one also includes an appropriate doc patch.

_______________________________________________
Ratpoison-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/ratpoison-devel
titlechanged.patch (text/x-diff, 2.3 KB)
diff --git doc/ratpoison.texi doc/ratpoison.texi
index 9bfe8b9..7d9adfd 100644
--- doc/ratpoison.texi
+++ doc/ratpoison.texi
@@ -1269,6 +1269,8 @@ Run when the user switches to a different group.
 Run when a window is deleted.
 @item newwindow
 Run after a new window is mapped.
+@item titlechanged
+Run when the current window's title changes.
 @item quit
 Run when ratpoison exits.
 @item restart
diff --git src/actions.c src/actions.c
index dabb8e5..b3baadb 100644
--- src/actions.c
+++ src/actions.c
@@ -1407,6 +1407,7 @@ cmd_rename (int interactive UNUSED, struct cmdarg **args)
   free (current_window()->user_name);
   current_window()->user_name = xstrdup (ARG_STRING(0));
   current_window()->named = 1;
+  hook_run (&rp_title_changed_hook);
 
   /* Update the program bar. */
   update_window_names (current_screen(), defaults.window_fmt);
diff --git src/events.c src/events.c
index d973639..6a229b8 100644
--- src/events.c
+++ src/events.c
@@ -624,8 +624,10 @@ property_notify (XEvent *ev)
           {
           case XA_WM_NAME:
             PRINT_DEBUG (("updating window name\n"));
-            if (update_window_name (win))
+            if (update_window_name (win)) {
 	      update_window_names (win->scr, defaults.window_fmt);
+	      hook_run (&rp_title_changed_hook);
+	    }
             break;
 
           case XA_WM_NORMAL_HINTS:
diff --git src/globals.c src/globals.c
index eb94db6..3029aef 100644
--- src/globals.c
+++ src/globals.c
@@ -232,6 +232,7 @@ LIST_HEAD (rp_quit_hook);
 LIST_HEAD (rp_restart_hook);
 LIST_HEAD (rp_delete_window_hook);
 LIST_HEAD (rp_new_window_hook);
+LIST_HEAD (rp_title_changed_hook);
 
 struct rp_hook_db_entry rp_hook_db[]=
   {{"key",              &rp_key_hook},
@@ -243,6 +244,7 @@ struct rp_hook_db_entry rp_hook_db[]=
    {"quit",             &rp_quit_hook},
    {"restart",          &rp_restart_hook},
    {"newwindow",	&rp_new_window_hook},
+   {"titlechanged",	&rp_title_changed_hook},
    {NULL, NULL}};
 
 void
diff --git src/globals.h src/globals.h
index aa73451..e5ba32a 100644
--- src/globals.h
+++ src/globals.h
@@ -182,6 +182,7 @@ extern struct list_head rp_delete_window_hook;
 extern struct list_head rp_quit_hook;
 extern struct list_head rp_restart_hook;
 extern struct list_head rp_new_window_hook;
+extern struct list_head rp_title_changed_hook;
 
 extern struct rp_hook_db_entry rp_hook_db[];
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.