X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.c;h=fe23f05df94f017af187122ac5a4da59b6f254f2;hb=9f2a844beb62287e12e75bf207e4c55bc14b6209;hp=c8f006055b8022bd277fa96771d83b54fb854316;hpb=4bec1c07db9245eb58de04d2f80552a7bcc0f74e;p=chaz%2Fopenbox diff --git a/openbox/client.c b/openbox/client.c index c8f00605..fe23f05d 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -660,6 +660,8 @@ static void client_get_all(ObClient *self) client_get_state(self); client_get_shaped(self); + g_message("self->iconic %d", self->iconic); + client_get_mwm_hints(self); client_get_type(self);/* this can change the mwmhints for special cases */ @@ -749,10 +751,6 @@ static void client_get_state(ObClient *self) guint32 *state; guint num; - self->modal = self->shaded = self->max_horz = self->max_vert = - self->fullscreen = self->above = self->below = self->iconic = - self->skip_taskbar = self->skip_pager = FALSE; - if (PROP_GETA32(self->window, net_wm_state, atom, &state, &num)) { gulong i; for (i = 0; i < num; ++i) { @@ -1310,10 +1308,11 @@ void client_update_title(ObClient *self) GList *it; guint32 nums; guint i; - char *data = NULL; + gchar *data = NULL; gboolean read_title; + gchar *old_title; - g_free(self->title); + old_title = self->title; /* try netwm */ if (!PROP_GETS(self->window, net_wm_name, utf8, &data)) @@ -1321,6 +1320,10 @@ void client_update_title(ObClient *self) if (!PROP_GETS(self->window, wm_name, locale, &data)) data = g_strdup("Unnamed Window"); + /* did the title change? then reset the title_count */ + if (old_title && 0 != strncmp(old_title, data, strlen(data))) + self->title_count = 1; + /* look for duplicates and append a number */ nums = 0; for (it = client_list; it; it = it->next) @@ -1338,12 +1341,10 @@ void client_update_title(ObClient *self) } /* dont display the number for the first window */ if (self->title_count > 1) { - char *vdata, *ndata; - ndata = g_strdup_printf(" - [%u]", self->title_count); - vdata = g_strconcat(data, ndata, NULL); - g_free(ndata); + char *ndata; + ndata = g_strdup_printf("%s - [%u]", data, self->title_count); g_free(data); - data = vdata; + data = ndata; } PROP_SETS(self->window, net_wm_visible_name, data); @@ -1353,6 +1354,8 @@ void client_update_title(ObClient *self) if (self->frame) frame_adjust_title(self->frame); + g_free(old_title); + /* update the icon title */ data = NULL; g_free(self->icon_title); @@ -1712,6 +1715,7 @@ static void client_apply_startup_state(ObClient *self) { /* these are in a carefully crafted order.. */ + g_message("self->iconic %d", self->iconic); if (self->iconic) { self->iconic = FALSE; client_iconify(self, TRUE, FALSE);