]> Dogcows Code - chaz/openbox/blobdiff - openbox/client_menu.c
oops... I'm combining two different things in this commit... so I'll try be clear
[chaz/openbox] / openbox / client_menu.c
index 083341ca4bac832c27d50e8b96f0b2b728bd1e78..e9922bdd30e0274629b19de1a815643aa25f7e05 100644 (file)
@@ -72,13 +72,16 @@ static void client_update(ObMenuFrame *frame, gpointer data)
     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);
@@ -89,6 +92,9 @@ static void client_update(ObMenuFrame *frame, gpointer data)
 
     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)
@@ -122,6 +128,7 @@ static void send_to_update(ObMenuFrame *frame, gpointer data)
     guint i;
     GSList *acts;
     ObAction *act;
+    ObMenuEntry *e;;
 
     menu_clear_entries(menu);
 
@@ -147,13 +154,10 @@ static void send_to_update(ObMenuFrame *frame, gpointer data)
         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;
-        }
     }
 }
 
This page took 0.028032 seconds and 4 git commands to generate.