e->data.normal.enabled = frame->client->functions & OB_CLIENT_FUNC_ICONIFY;
e = menu_find_entry_id(menu, CLIENT_MAXIMIZE);
- e->data.normal.label = frame->client->max_vert || frame->client->max_horz ?
- _("Restore") : _("Maximize");
+ g_free(e->data.normal.label);
+ e->data.normal.label =
+ g_strdup(frame->client->max_vert || frame->client->max_horz ?
+ _("Restore") : _("Maximize"));
e->data.normal.enabled =frame->client->functions & OB_CLIENT_FUNC_MAXIMIZE;
e = menu_find_entry_id(menu, CLIENT_SHADE);
- e->data.normal.label = frame->client->shaded ?
- _("Roll down") : _("Roll up");
+ g_free(e->data.normal.label);
+ e->data.normal.label = g_strdup(frame->client->shaded ?
+ _("Roll down") : _("Roll up"));
e->data.normal.enabled = frame->client->functions & OB_CLIENT_FUNC_SHADE;
e = menu_find_entry_id(menu, CLIENT_MOVE);
e = menu_find_entry_id(menu, CLIENT_CLOSE);
e->data.normal.enabled = frame->client->functions & OB_CLIENT_FUNC_CLOSE;
+
+ e = menu_find_entry_id(menu, CLIENT_DECORATE);
+ e->data.normal.enabled = client_normal(frame->client);
}
static void layer_update(ObMenuFrame *frame, gpointer data)
guint i;
GSList *acts;
ObAction *act;
+ ObMenuEntry *e;;
menu_clear_entries(menu);
return;
for (i = 0; i <= screen_num_desktops; ++i) {
- gchar *name;
+ const gchar *name;
guint desk;
if (i >= screen_num_desktops) {
act->data.sendto.desk = desk;
act->data.sendto.follow = FALSE;
acts = g_slist_prepend(NULL, act);
- menu_add_normal(menu, desk, name, acts);
+ e = menu_add_normal(menu, desk, name, acts);
- if (frame->client->desktop == desk) {
- ObMenuEntry *e = menu_find_entry_id(menu, desk);
- g_assert(e);
+ if (frame->client->desktop == desk)
e->data.normal.enabled = FALSE;
- }
}
}