X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient_menu.c;h=f67ea906dd7280d0a5dcc88444791847f7c67444;hb=2442cdfd85e5229c7ee4ac49ca66a7d55ffcb919;hp=3477702aabc9930cabbe3908cdd399c1d7edef55;hpb=16f46c296d1fcd3f27fc62a18e71c55fb3fd3e88;p=chaz%2Fopenbox diff --git a/openbox/client_menu.c b/openbox/client_menu.c index 3477702a..f67ea906 100644 --- a/openbox/client_menu.c +++ b/openbox/client_menu.c @@ -1,7 +1,7 @@ /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*- client_menu.c for the Openbox window manager - Copyright (c) 2003 Ben Jansens + Copyright (c) 2003-2007 Dana Jansens This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -57,8 +57,6 @@ static void client_update(ObMenuFrame *frame, gpointer data) ObMenuEntry *e; GList *it; - frame->show_title = FALSE; - for (it = menu->entries; it; it = g_list_next(it)) { e = it->data; if (e->type == OB_MENU_ENTRY_TYPE_NORMAL) @@ -72,9 +70,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); + 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); + 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); @@ -85,6 +90,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) @@ -118,6 +126,7 @@ static void send_to_update(ObMenuFrame *frame, gpointer data) guint i; GSList *acts; ObAction *act; + ObMenuEntry *e;; menu_clear_entries(menu); @@ -125,11 +134,11 @@ static void send_to_update(ObMenuFrame *frame, gpointer data) return; for (i = 0; i <= screen_num_desktops; ++i) { - gchar *name; + const gchar *name; guint desk; if (i >= screen_num_desktops) { - menu_add_separator(menu, -1); + menu_add_separator(menu, -1, NULL); desk = DESKTOP_ALL; name = _("All desktops"); @@ -143,13 +152,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; - } } } @@ -184,11 +190,7 @@ void client_menu_startup() menu = menu_new(CLIENT_MENU_NAME, _("Client menu"), NULL); menu_set_update_func(menu, client_update); - e = menu_add_submenu(menu, CLIENT_SEND_TO, SEND_TO_MENU_NAME); - e->data.normal.mask = ob_rr_theme->desk_mask; - e->data.normal.mask_normal_color = ob_rr_theme->menu_color; - e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color; - e->data.normal.mask_selected_color = ob_rr_theme->menu_selected_color; + menu_add_submenu(menu, CLIENT_SEND_TO, SEND_TO_MENU_NAME); menu_add_submenu(menu, CLIENT_LAYER, LAYER_MENU_NAME); @@ -203,7 +205,7 @@ void client_menu_startup() acts = g_slist_prepend(NULL, action_from_string ("ToggleMaximizeFull", OB_USER_ACTION_MENU_SELECTION)); - e = menu_add_normal(menu, CLIENT_MAXIMIZE, _("Maximize"), acts); + e = menu_add_normal(menu, CLIENT_MAXIMIZE, "MAXIMIZE", acts); e->data.normal.mask = ob_rr_theme->max_mask; e->data.normal.mask_normal_color = ob_rr_theme->menu_color; e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color; @@ -219,7 +221,7 @@ void client_menu_startup() acts = g_slist_prepend(NULL, action_from_string ("ToggleShade", OB_USER_ACTION_MENU_SELECTION)); - e = menu_add_normal(menu, CLIENT_SHADE, _("Roll up/down"), acts); + e = menu_add_normal(menu, CLIENT_SHADE, "SHADE", acts); e->data.normal.mask = ob_rr_theme->shade_mask; e->data.normal.mask_normal_color = ob_rr_theme->menu_color; e->data.normal.mask_disabled_color = ob_rr_theme->menu_disabled_color; @@ -230,7 +232,7 @@ void client_menu_startup() OB_USER_ACTION_MENU_SELECTION)); menu_add_normal(menu, CLIENT_DECORATE, _("Decorate"), acts); - menu_add_separator(menu, -1); + menu_add_separator(menu, -1, NULL); acts = g_slist_prepend(NULL, action_from_string ("Move", OB_USER_ACTION_MENU_SELECTION)); @@ -240,7 +242,7 @@ void client_menu_startup() ("Resize", OB_USER_ACTION_MENU_SELECTION)); menu_add_normal(menu, CLIENT_RESIZE, _("Resize"), acts); - menu_add_separator(menu, -1); + menu_add_separator(menu, -1, NULL); acts = g_slist_prepend(NULL, action_from_string ("Close", OB_USER_ACTION_MENU_SELECTION));