patch to add hook on window title changing

Zed Lopez <[email protected]>
Newsgroups gmane.comp.window-managers.ratpoison.devel
Message-ID <[email protected]>
Hi folks,

Here's a tiny patch that adds a "titlechanged" hook to be triggered
when the current window's title changes. I did this so I configure
titlechanged and switchwin hooks that would maintain the current
window's title in dzen.

It might be more useful to also call it whenever switchwin is
triggered, so I wouldn't have to configure them separately for that
case, but I thought I'd submit it as is for your comments.

_______________________________________________
Ratpoison-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/ratpoison-devel
title_changed.patch (text/x-diff, 2.3 KB)
diff -rupN ratpoison/src/actions.c ratpoison-dev/src/actions.c
--- ratpoison/src/actions.c	2009-12-11 09:33:27.000000000 -0800
+++ ratpoison-dev/src/actions.c	2009-12-11 09:33:56.000000000 -0800
@@ -1402,6 +1402,7 @@ cmd_rename (int interactive UNUSED, stru
   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 -rupN ratpoison/src/events.c ratpoison-dev/src/events.c
--- ratpoison/src/events.c	2009-12-11 09:33:27.000000000 -0800
+++ ratpoison-dev/src/events.c	2009-12-11 09:33:56.000000000 -0800
@@ -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 -rupN ratpoison/src/globals.c ratpoison-dev/src/globals.c
--- ratpoison/src/globals.c	2009-12-11 09:33:27.000000000 -0800
+++ ratpoison-dev/src/globals.c	2009-12-11 09:33:56.000000000 -0800
@@ -231,6 +231,7 @@ LIST_HEAD (rp_switch_screen_hook);
 LIST_HEAD (rp_quit_hook);
 LIST_HEAD (rp_restart_hook);
 LIST_HEAD (rp_delete_window_hook);
+LIST_HEAD (rp_title_changed_hook);
 
 struct rp_hook_db_entry rp_hook_db[]=
   {{"key",              &rp_key_hook},
@@ -241,6 +242,7 @@ struct rp_hook_db_entry rp_hook_db[]=
    {"deletewindow",     &rp_delete_window_hook},
    {"quit",             &rp_quit_hook},
    {"restart",          &rp_restart_hook},
+   {"titlechanged",     &rp_title_changed_hook},
    {NULL, NULL}};
 
 void
diff -rupN ratpoison/src/globals.h ratpoison-dev/src/globals.h
--- ratpoison/src/globals.h	2009-12-11 09:33:27.000000000 -0800
+++ ratpoison-dev/src/globals.h	2009-12-11 09:33:56.000000000 -0800
@@ -181,6 +181,7 @@ extern struct list_head rp_switch_screen
 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_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.