diff options
| author | Dana Jansens <danakj@orodu.net> | 2008-01-15 21:57:47 -0500 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2008-01-15 21:57:47 -0500 |
| commit | d3e9fc8941831477b50678b9bd676e29f4bed1a7 (patch) | |
| tree | ccd97ea7ea28b74ef0dd46964d758509a19b4d42 /openbox/client.c | |
| parent | fb7a71da202632c7301ada67c8b4420bfb8d8fbe (diff) | |
show [Not Responding] in the titlebar when closing an app and it stops responding to pings
Diffstat (limited to 'openbox/client.c')
| -rw-r--r-- | openbox/client.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/openbox/client.c b/openbox/client.c index 0f592ebe..a4d045dc 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -40,6 +40,7 @@ #include "keyboard.h" #include "mouse.h" #include "render/render.h" +#include "gettext.h" #ifdef HAVE_UNISTD_H # include <unistd.h> @@ -93,6 +94,7 @@ static GSList *client_search_all_top_parents_internal(ObClient *self, gboolean bylayer, ObStackingLayer layer); static void client_call_notifies(ObClient *self, GSList *list); +static void client_ping_event(ObClient *self, gboolean dead); void client_startup(gboolean reconfig) @@ -1947,6 +1949,12 @@ void client_update_title(ObClient *self) } else visible = data; + if (self->not_responding) { + data = visible; + visible = g_strdup_printf("%s - [%s]", data, _("Not Responding")); + g_free(data); + } + PROP_SETS(self->window, net_wm_visible_name, visible); self->title = visible; @@ -1970,6 +1978,12 @@ void client_update_title(ObClient *self) } else visible = data; + if (self->not_responding) { + data = visible; + visible = g_strdup_printf("%s - [%s]", data, _("Not Responding")); + g_free(data); + } + PROP_SETS(self->window, net_wm_visible_icon_name, visible); self->icon_title = visible; } @@ -3168,10 +3182,8 @@ void client_shade(ObClient *self, gboolean shade) static void client_ping_event(ObClient *self, gboolean dead) { - if (dead) - ob_debug("client 0x%x window 0x%x is not responding !!\n"); - else - ob_debug("client 0x%x window 0x%x started responding again..\n"); + self->not_responding = dead; + client_update_title(self); } void client_close(ObClient *self) @@ -3195,7 +3207,8 @@ void client_close(ObClient *self) prop_atoms.wm_delete_window, event_curtime, 0, 0, 0, NoEventMask); - ping_start(self, client_ping_event); + if (self->ping) + ping_start(self, client_ping_event); } void client_kill(ObClient *self) |
