aboutsummaryrefslogtreecommitdiff
path: root/src/windows
diff options
context:
space:
mode:
authorJeffrey Altman <jaltman@secure-endpoints.com>2007-04-02 17:49:08 +0000
committerJeffrey Altman <jaltman@secure-endpoints.com>2007-04-02 17:49:08 +0000
commitc697f74a7c058e3fc8a83f4b36154000cd3b587e (patch)
treeabcba50aa8e621b6f7cc18ab5155705a701e19c2 /src/windows
parentbda1c2f72144e81b8aab7db5282cfe323dddf775 (diff)
downloadkrb5-c697f74a7c058e3fc8a83f4b36154000cd3b587e.zip
krb5-c697f74a7c058e3fc8a83f4b36154000cd3b587e.tar.gz
krb5-c697f74a7c058e3fc8a83f4b36154000cd3b587e.tar.bz2
More commits for NIM 1.2 Beta 1
netidmgr.exe - Credentials display : - When picking out the mouse hit rectangles, correctly handle the case where a sticky identity doesn't have any outline controls. - Move code to check and uncheck view layout action to cw_load_view() for consistency. - Initialize outlines properly when creating them. - cw_select_row_creds() should be called on all rows that are being selected or unselected. - Actions : - Remove the 'Contents' item from the 'Help' menu. The KHUI_ACTION_HELP_CTX action already opens the 'Contents' section. - Add 'Change password', 'Import', 'Help contents', and 'About' to the notification icon context menu. - Move the 'Import' action to be between 'Renew' and 'Destroy' for consistency. - Resources : - "Run Network Identity Manager in System Tray" -> "Run from taskbar notification area" - "New Credentials" -> "Obtain new credentials" - Main window : - Don't switch the window mode when handling a KHUI_ACTION_LAYOUT_RELOAD. - Refresh the action tables after changing the window state actions. - Main Menu : - Call khm_refresh_identity_menus() when initializing the menus so that they have a consistent initial state. - When refreshing menus, the checked/unchecked state needs to be set explicitly by turning off flags that are no longer necessary. - Refresh the identities before refreshing the identity menus. - If there are no identities with credentials, disable renew/destroy menus and actions. - Don't bother adding 'renew/destroy all' menu items to the per-identity action menus if there is only one identity. krb5cred.dll - Resources : - Expand the 'Credential flags' control so that it's big enough to hold the contents. source - ccsv.pl : - Handle comment lines before the actual content. - csvschema.cfg : - Don't bother embedding documentation in the data strucutre now. We don't use it. - Convert '[~]' to '\0' before we send it back to the parser. ticket: new component: windows tags: pullup git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19376 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/windows')
-rw-r--r--src/windows/identity/config/ccsv.pl6
-rw-r--r--src/windows/identity/config/csvschema.cfg6
-rw-r--r--src/windows/identity/plugins/krb5/lang/en_us/langres.rc2
-rw-r--r--src/windows/identity/ui/credwnd.c114
-rw-r--r--src/windows/identity/ui/lang/en_us/khapp.rc6
-rw-r--r--src/windows/identity/ui/mainmenu.c25
-rw-r--r--src/windows/identity/ui/mainwnd.c7
-rw-r--r--src/windows/identity/uilib/action.c15
8 files changed, 107 insertions, 74 deletions
diff --git a/src/windows/identity/config/ccsv.pl b/src/windows/identity/config/ccsv.pl
index c6c8281..a377797 100644
--- a/src/windows/identity/config/ccsv.pl
+++ b/src/windows/identity/config/ccsv.pl
@@ -88,10 +88,10 @@ $first_line = 1;
while(<IN>) {
chomp $_;
- if($skip_lines > 0) {
- $skip_lines--;
- } elsif (m/^\#/) {
+ if (m/^\#/) {
# ignore
+ } elsif ($skip_lines > 0) {
+ $skip_lines--;
} else {
if($first_line == 0){
print OUT $record_sep;
diff --git a/src/windows/identity/config/csvschema.cfg b/src/windows/identity/config/csvschema.cfg
index ba3bf9b..cc8acd2 100644
--- a/src/windows/identity/config/csvschema.cfg
+++ b/src/windows/identity/config/csvschema.cfg
@@ -55,13 +55,11 @@ $skip_lines = 1;
sub rec_handler {
$arr = shift;
if($$arr[1] =~ "KC_STRING") {
- $$arr[2] = "(khm_int64) L\"".$$arr[2]."\"";
$$arr[2] =~ s/\[\~\]/\\0/g;
+ $$arr[2] = "(khm_int64) L\"".$$arr[2]."\"";
}
- if($#$arr == 2){
- $$arr[3] = "";
- }
+ $$arr[3] = "";
}
$record_parser = \&rec_handler;
diff --git a/src/windows/identity/plugins/krb5/lang/en_us/langres.rc b/src/windows/identity/plugins/krb5/lang/en_us/langres.rc
index 1bdae10..67492da 100644
--- a/src/windows/identity/plugins/krb5/lang/en_us/langres.rc
+++ b/src/windows/identity/plugins/krb5/lang/en_us/langres.rc
@@ -81,7 +81,7 @@ BEGIN
LTEXT "Valid till",IDC_STATIC,7,39,24,8
LTEXT "Renewable till",IDC_STATIC,7,55,45,12
LTEXT "Issued on",IDC_STATIC,7,23,32,8
- LTEXT "Credential flags",IDC_STATIC,7,75,37,8
+ LTEXT "Credential flags",IDC_STATIC,7,75,51,8
EDITTEXT IDC_PPK5_NAME,72,7,156,12,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_PPK5_ISSUE,72,23,156,12,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_PPK5_VALID,72,39,156,12,ES_AUTOHSCROLL | ES_READONLY
diff --git a/src/windows/identity/ui/credwnd.c b/src/windows/identity/ui/credwnd.c
index 4ed45e6..a31daac 100644
--- a/src/windows/identity/ui/credwnd.c
+++ b/src/windows/identity/ui/credwnd.c
@@ -470,31 +470,31 @@ cw_load_view(khui_credwnd_tbl * tbl, wchar_t * view, HWND hwnd) {
if(KHM_FAILED(khc_read_string(hc_cw, viewval, buf, &cbsize)))
goto _exit;
view = buf;
+ } else {
+ khc_write_string(hc_cw, viewval, view);
+ }
/* in addition, if we are loading the default view, we should
also check the appropriate menu item */
- if (!wcscmp(view, L"ByIdentity"))
- khui_check_radio_action(khui_find_menu(KHUI_MENU_LAYOUT),
- KHUI_ACTION_LAYOUT_ID);
- else if (!wcscmp(view, L"ByLocation"))
- khui_check_radio_action(khui_find_menu(KHUI_MENU_LAYOUT),
- KHUI_ACTION_LAYOUT_LOC);
- else if (!wcscmp(view, L"ByType"))
- khui_check_radio_action(khui_find_menu(KHUI_MENU_LAYOUT),
- KHUI_ACTION_LAYOUT_TYPE);
- else if (!wcscmp(view, L"Custom_0"))
- khui_check_radio_action(khui_find_menu(KHUI_MENU_LAYOUT),
- KHUI_ACTION_LAYOUT_CUST);
- else if (!wcscmp(view, L"CompactIdentity"))
- khui_check_radio_action(khui_find_menu(KHUI_MENU_LAYOUT),
- KHUI_ACTION_LAYOUT_MINI);
-
- kmq_post_message(KMSG_ACT, KMSG_ACT_REFRESH, 0, 0);
- } else {
- khc_write_string(hc_cw, viewval, view);
+ if (!wcscmp(view, L"ByIdentity"))
+ khui_check_radio_action(khui_find_menu(KHUI_MENU_LAYOUT),
+ KHUI_ACTION_LAYOUT_ID);
+ else if (!wcscmp(view, L"ByLocation"))
+ khui_check_radio_action(khui_find_menu(KHUI_MENU_LAYOUT),
+ KHUI_ACTION_LAYOUT_LOC);
+ else if (!wcscmp(view, L"ByType"))
+ khui_check_radio_action(khui_find_menu(KHUI_MENU_LAYOUT),
+ KHUI_ACTION_LAYOUT_TYPE);
+ else if (!wcscmp(view, L"Custom_0"))
+ khui_check_radio_action(khui_find_menu(KHUI_MENU_LAYOUT),
+ KHUI_ACTION_LAYOUT_CUST);
+ else {
+ /* do nothing */
}
+ kmq_post_message(KMSG_ACT, KMSG_ACT_REFRESH, 0, 0);
+
if(KHM_FAILED(khc_open_space(hc_vs, view, 0, &hc_v)))
goto _exit;
@@ -1064,6 +1064,7 @@ cw_new_outline_node(wchar_t * heading) {
o->header = PMALLOC(cblen);
StringCbCopy(o->header, cblen, heading);
}
+ o->start = -1;
return o;
}
@@ -1708,23 +1709,29 @@ cw_update_outline(khui_credwnd_tbl * tbl)
o->col = grouping[0];
o->data = id_def;
o->attr_id = KCDB_ATTR_ID;
+ o->start = -1;
+ } else {
+ kcdb_identity_release(id_def);
+ }
- if (flags & KCDB_IDENT_FLAG_STICKY)
- o->flags |= KHUI_CW_O_STICKY;
+ if (o->start != -1)
+ goto done_with_defident;
+
+ if (flags & KCDB_IDENT_FLAG_STICKY)
+ o->flags |= KHUI_CW_O_STICKY;
+ else
+ o->flags &= ~KHUI_CW_O_STICKY;
- o->start = n_rows;
- o->length = 1;
- o->idx_start = -1;
+ o->start = n_rows;
+ o->length = 1;
+ o->idx_start = -1;
- if (grouping[0] == tbl->n_cols - 1)
- o->flags |= KHUI_CW_O_NOOUTLINE;
+ if (grouping[0] == tbl->n_cols - 1)
+ o->flags |= KHUI_CW_O_NOOUTLINE;
- cw_set_tbl_row_header(tbl, n_rows, grouping[0], o);
+ cw_set_tbl_row_header(tbl, n_rows, grouping[0], o);
- n_rows ++;
- } else {
- kcdb_identity_release(id_def);
- }
+ n_rows ++;
done_with_defident:
;
@@ -1775,7 +1782,7 @@ cw_update_outline(khui_credwnd_tbl * tbl)
/* found it */
if (o->start != -1) /* already visible? */
continue;
- o->flags &= KHUI_CW_O_STICKY;
+ o->flags &= KHUI_CW_O_STICKY | KHUI_CW_O_RELIDENT;
o->flags |= KHUI_CW_O_VISIBLE;
} else {
/* not found. create */
@@ -1786,21 +1793,22 @@ cw_update_outline(khui_credwnd_tbl * tbl)
o->col = grouping[0];
o->data = (void *) h;
o->attr_id = KCDB_ATTR_ID;
-
- if (grouping[0] == tbl->n_cols - 1)
- o->flags |= KHUI_CW_O_NOOUTLINE;
}
+ if (grouping[0] == tbl->n_cols - 1)
+ o->flags |= KHUI_CW_O_NOOUTLINE;
+
if (o->flags & KHUI_CW_O_STICKY)
kcdb_identity_release(h);
else
/* leave identity held in this case */
- o->flags |= KHUI_CW_O_STICKY;
+ o->flags |= KHUI_CW_O_STICKY | KHUI_CW_O_RELIDENT;
o->flags &= ~KHUI_CW_O_EXPAND;
o->start = n_rows;
o->length = 1;
o->idx_start = -1;
+ o->idx_end = -1;
cw_set_tbl_row_header(tbl, n_rows, grouping[0], o);
@@ -2369,6 +2377,9 @@ cw_draw_header(HDC hdc,
if (o->flags & KHUI_CW_O_STICKY) {
/* khui_ilist_draw_id(tbl->ilist, IDB_TK_NEW_SM, hdc,
r->left, r->bottom - KHUI_SMICON_CY, 0); */
+ if (!(o->flags & KHUI_CW_O_NOOUTLINE)) {
+ r->left += KHUI_SMICON_CX * 3 / 2;
+ }
} else if (!(o->flags & KHUI_CW_O_NOOUTLINE)) {
if((tbl->mouse_state & CW_MOUSE_WOUTLINE) &&
tbl->mouse_row == row) {
@@ -3582,7 +3593,7 @@ cw_select_outline(khui_credwnd_outline * o,
}
static void
-cw_select_cred_row(khui_credwnd_tbl * tbl, int row, int selected) {
+cw_select_row_creds(khui_credwnd_tbl * tbl, int row, int selected) {
khm_size j;
khm_size idx_start, idx_end;
@@ -3613,6 +3624,9 @@ cw_select_cred_row(khui_credwnd_tbl * tbl, int row, int selected) {
idx_end = tbl->rows[row].idx_end;
}
+ if (idx_start == -1 || idx_end == -1)
+ return;
+
for (j = idx_start; j <= idx_end; j++) {
khm_handle cred = NULL;
@@ -3634,9 +3648,7 @@ cw_unselect_all(khui_credwnd_tbl * tbl)
for(i=0; i<tbl->n_rows; i++) {
tbl->rows[i].flags &= ~KHUI_CW_ROW_SELECTED;
- if (!(tbl->rows[i].flags & KHUI_CW_ROW_HEADER)) {
- cw_select_cred_row(tbl, i, FALSE);
- }
+ cw_select_row_creds(tbl, i, FALSE);
}
cw_select_outline_level(tbl->outline, FALSE);
@@ -3856,8 +3868,7 @@ cw_select_all(khui_credwnd_tbl * tbl)
for(i=0; i<tbl->n_rows; i++) {
tbl->rows[i].flags |= KHUI_CW_ROW_SELECTED;
- if (!(tbl->rows[i].flags & KHUI_CW_ROW_HEADER))
- cw_select_cred_row(tbl, i, TRUE);
+ cw_select_row_creds(tbl, i, TRUE);
}
cw_select_outline_level(tbl->outline, TRUE);
@@ -3913,7 +3924,7 @@ cw_select_row(khui_credwnd_tbl * tbl, int row, WPARAM wParam)
for (i = group_begin; i <= group_end; i++) {
tbl->rows[i].flags |= KHUI_CW_ROW_SELECTED;
- cw_select_cred_row(tbl, i, TRUE);
+ cw_select_row_creds(tbl, i, TRUE);
}
} else if (toggle) {
BOOL select;
@@ -3929,7 +3940,7 @@ cw_select_row(khui_credwnd_tbl * tbl, int row, WPARAM wParam)
else
tbl->rows[i].flags &= ~KHUI_CW_ROW_SELECTED;
- cw_select_cred_row(tbl, i, select);
+ cw_select_row_creds(tbl, i, select);
}
} else if (extend) {
int range_begin;
@@ -3943,7 +3954,7 @@ cw_select_row(khui_credwnd_tbl * tbl, int row, WPARAM wParam)
for (i = range_begin; i <= range_end; i++) {
tbl->rows[i].flags |= KHUI_CW_ROW_SELECTED;
- cw_select_cred_row(tbl, i, TRUE);
+ cw_select_row_creds(tbl, i, TRUE);
}
tbl->cursor_row = row;
@@ -4073,7 +4084,7 @@ cw_wm_mouse(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
x < KHUI_SMICON_CX * 4) {
nm_state |= CW_MOUSE_WICON | CW_MOUSE_WIDGET;
}
- } else if (tbl->cols[tbl->rows[row].col].attr_id == KCDB_ATTR_ID_NAME) {
+ } else if (tbl->cols[o->col].attr_id == KCDB_ATTR_ID_NAME) {
if (col == tbl->rows[row].col &&
x >= 0 &&
x < KHUI_SMICON_CX){
@@ -5000,8 +5011,6 @@ cw_wm_command(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
InvalidateRect(tbl->hwnd, NULL, TRUE);
- khui_check_radio_action(khui_find_menu(KHUI_MENU_LAYOUT), KHUI_ACTION_LAYOUT_ID);
- kmq_post_message(KMSG_ACT, KMSG_ACT_REFRESH, 0, 0);
}
break;
@@ -5020,9 +5029,6 @@ cw_wm_command(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
InvalidateRect(tbl->hwnd, NULL, TRUE);
- khui_check_radio_action(khui_find_menu(KHUI_MENU_LAYOUT),
- KHUI_ACTION_LAYOUT_LOC);
- kmq_post_message(KMSG_ACT, KMSG_ACT_REFRESH, 0, 0);
}
break;
@@ -5041,9 +5047,6 @@ cw_wm_command(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
InvalidateRect(tbl->hwnd, NULL, TRUE);
- khui_check_radio_action(khui_find_menu(KHUI_MENU_LAYOUT),
- KHUI_ACTION_LAYOUT_TYPE);
- kmq_post_message(KMSG_ACT, KMSG_ACT_REFRESH, 0, 0);
}
break;
@@ -5062,9 +5065,6 @@ cw_wm_command(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
InvalidateRect(tbl->hwnd, NULL, TRUE);
- khui_check_radio_action(khui_find_menu(KHUI_MENU_LAYOUT),
- KHUI_ACTION_LAYOUT_CUST);
- kmq_post_message(KMSG_ACT, KMSG_ACT_REFRESH, 0, 0);
}
break;
diff --git a/src/windows/identity/ui/lang/en_us/khapp.rc b/src/windows/identity/ui/lang/en_us/khapp.rc
index 74255fb..285db67 100644
--- a/src/windows/identity/ui/lang/en_us/khapp.rc
+++ b/src/windows/identity/ui/lang/en_us/khapp.rc
@@ -247,7 +247,7 @@ BEGIN
CONTROL "&Destroy all credentials on exit",IDC_CFG_DESTROYALL,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,36,111,10
GROUPBOX "Other",IDC_CFG_OTHER,7,55,241,120
- CONTROL "&Run Network Identity Manager in system tray after window close",IDC_CFG_KEEPRUNNING,
+ CONTROL "&Run from taskbar notification area after window close",IDC_CFG_KEEPRUNNING,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,68,230,10
LTEXT "Clicking on the &notification icon",IDC_CFG_NOTACT_STATIC,26,87,99,8
COMBOBOX IDC_CFG_NOTACTION,133,85,110,48,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
@@ -564,7 +564,7 @@ BEGIN
IDS_ACTION_SET_SRCH_ID "Allow applications to &search"
IDS_CFG_ROOT_TITLE "Network Identity Manager Configuration"
IDS_CFG_GENERAL_SHORT "General"
- IDS_ACTION_NEW_CRED "&New credentials ..."
+ IDS_ACTION_NEW_CRED "Obtain &new credentials ..."
IDS_ACTION_PASSWD_ID "Change &password"
IDS_ACTION_CHOOSE_COLS "View columns"
IDS_ACTION_DEBUG_WINDOW "Debug window"
@@ -582,7 +582,7 @@ BEGIN
IDS_ACTION_OPT_KHIM "General"
IDS_ACTION_OPT_IDENTS "Identities"
IDS_ACTION_OPT_NOTIF "Notifications"
- IDS_ACTION_HELP_CTX "Help Index"
+ IDS_ACTION_HELP_CTX "Help Contents"
IDS_ACTION_HELP_CONTENTS "Contents"
IDS_ACTION_HELP_INDEX "Index"
IDS_ACTION_HELP_ABOUT "About Network Identity Manager"
diff --git a/src/windows/identity/ui/mainmenu.c b/src/windows/identity/ui/mainmenu.c
index 5d9e4d9..e27d039 100644
--- a/src/windows/identity/ui/mainmenu.c
+++ b/src/windows/identity/ui/mainmenu.c
@@ -49,6 +49,8 @@ void khui_init_menu(void) {
MAX_ILIST, 5, 0);
for(i=0;i<MAX_ILIST;i++)
il_icon_id[i] = -1;
+
+ khm_refresh_identity_menus();
}
void khui_exit_menu(void) {
@@ -258,8 +260,10 @@ static int refresh_menu_item(HMENU hm, khui_action * act,
if(act->type & KHUI_ACTIONTYPE_TOGGLE) {
mii.fMask |= MIIM_STATE;
if (act->state & KHUI_ACTIONSTATE_CHECKED) {
+ mii.fState &= ~MFS_UNCHECKED;
mii.fState |= MFS_CHECKED;
} else {
+ mii.fState &= ~MFS_CHECKED;
mii.fState |= MFS_UNCHECKED;
}
}
@@ -817,6 +821,8 @@ khm_refresh_identity_menus(void) {
khm_size t;
khm_int32 rv = KHM_ERROR_SUCCESS;
+ kcdb_identity_refresh_all();
+
khui_action_lock();
idcmd_refreshcycle++;
@@ -858,6 +864,18 @@ khm_refresh_identity_menus(void) {
} while(TRUE);
+ if (idlist != NULL && n_idents > 0) {
+ khui_enable_action(KHUI_MENU_RENEW_CRED, TRUE);
+ khui_enable_action(KHUI_MENU_DESTROY_CRED, TRUE);
+ khui_enable_action(KHUI_ACTION_RENEW_CRED, TRUE);
+ khui_enable_action(KHUI_ACTION_DESTROY_CRED, TRUE);
+ } else {
+ khui_enable_action(KHUI_MENU_RENEW_CRED, FALSE);
+ khui_enable_action(KHUI_MENU_DESTROY_CRED, FALSE);
+ khui_enable_action(KHUI_ACTION_RENEW_CRED, FALSE);
+ khui_enable_action(KHUI_ACTION_DESTROY_CRED, FALSE);
+ }
+
renew_def = khui_find_menu(KHUI_MENU_RENEW_CRED);
dest_def = khui_find_menu(KHUI_MENU_DESTROY_CRED);
#ifdef DEBUG
@@ -870,17 +888,18 @@ khm_refresh_identity_menus(void) {
khui_menu_remove_action(renew_def, 0);
t--;
}
- khui_menu_insert_action(renew_def, 0, KHUI_ACTION_RENEW_ALL, 0);
t = khui_menu_get_size(dest_def);
while(t) {
khui_menu_remove_action(dest_def, 0);
t--;
}
- khui_menu_insert_action(dest_def, 0, KHUI_ACTION_DESTROY_ALL, 0);
- if (idlist != NULL && n_idents > 0) {
+ if (idlist != NULL && n_idents > 1) {
+ khui_menu_insert_action(renew_def, 0, KHUI_ACTION_RENEW_ALL, 0);
khui_menu_insert_action(renew_def, 1, KHUI_MENU_SEP, 0);
+
+ khui_menu_insert_action(dest_def, 0, KHUI_ACTION_DESTROY_ALL, 0);
khui_menu_insert_action(dest_def, 1, KHUI_MENU_SEP, 0);
}
diff --git a/src/windows/identity/ui/mainwnd.c b/src/windows/identity/ui/mainwnd.c
index 128be08..76a3fde 100644
--- a/src/windows/identity/ui/mainwnd.c
+++ b/src/windows/identity/ui/mainwnd.c
@@ -387,11 +387,14 @@ khm_main_wnd_proc(HWND hwnd,
return SendMessage(khm_hwnd_main_cred, uMsg,
wParam, lParam);
+ case KHUI_ACTION_LAYOUT_RELOAD:
+ return SendMessage(khm_hwnd_main_cred, uMsg,
+ wParam, lParam);
+
case KHUI_ACTION_LAYOUT_ID:
case KHUI_ACTION_LAYOUT_TYPE:
case KHUI_ACTION_LAYOUT_LOC:
case KHUI_ACTION_LAYOUT_CUST:
- case KHUI_ACTION_LAYOUT_RELOAD:
khm_set_main_window_mode(KHM_MAIN_WND_NORMAL);
return SendMessage(khm_hwnd_main_cred, uMsg,
wParam, lParam);
@@ -1105,6 +1108,8 @@ khm_set_main_window_mode(int mode) {
khui_enable_action(KHUI_MENU_COLUMNS,
((mode == KHM_MAIN_WND_MINI)? FALSE : TRUE));
+ khui_refresh_actions();
+
khm_main_wnd_mode = mode;
if (khm_hwnd_main) {
khm_get_main_window_rect(&r);
diff --git a/src/windows/identity/uilib/action.c b/src/windows/identity/uilib/action.c
index 00902ee..a0295d3 100644
--- a/src/windows/identity/uilib/action.c
+++ b/src/windows/identity/uilib/action.c
@@ -53,8 +53,8 @@ khui_action_ref khui_menu_cred[] = {
MENU_ACTION(KHUI_ACTION_NEW_CRED),
MENU_SEP(),
MENU_SUBMENU(KHUI_MENU_RENEW_CRED),
- MENU_SUBMENU(KHUI_MENU_DESTROY_CRED),
MENU_ACTION(KHUI_ACTION_IMPORT),
+ MENU_SUBMENU(KHUI_MENU_DESTROY_CRED),
MENU_SEP(),
MENU_ACTION(KHUI_ACTION_SET_DEF_ID),
#if 0
@@ -110,7 +110,6 @@ khui_action_ref khui_menu_options[] = {
khui_action_ref khui_menu_help[] = {
MENU_ACTION(KHUI_ACTION_HELP_CTX),
MENU_SEP(),
- MENU_ACTION(KHUI_ACTION_HELP_CONTENTS),
MENU_ACTION(KHUI_ACTION_HELP_INDEX),
MENU_SEP(),
MENU_ACTION(KHUI_ACTION_HELP_ABOUT),
@@ -157,8 +156,14 @@ khui_action_ref khui_menu_ico_ctx_min[] = {
MENU_SEP(),
MENU_ACTION(KHUI_ACTION_NEW_CRED),
MENU_SUBMENU(KHUI_MENU_RENEW_CRED),
+ MENU_ACTION(KHUI_ACTION_IMPORT),
MENU_SUBMENU(KHUI_MENU_DESTROY_CRED),
MENU_SEP(),
+ MENU_ACTION(KHUI_ACTION_PASSWD_ID),
+ MENU_SEP(),
+ MENU_ACTION(KHUI_ACTION_HELP_CTX),
+ MENU_ACTION(KHUI_ACTION_HELP_ABOUT),
+ MENU_SEP(),
MENU_ACTION(KHUI_ACTION_EXIT),
MENU_END()
};
@@ -168,8 +173,14 @@ khui_action_ref khui_menu_ico_ctx_normal[] = {
MENU_SEP(),
MENU_ACTION(KHUI_ACTION_NEW_CRED),
MENU_SUBMENU(KHUI_MENU_RENEW_CRED),
+ MENU_ACTION(KHUI_ACTION_IMPORT),
MENU_SUBMENU(KHUI_MENU_DESTROY_CRED),
MENU_SEP(),
+ MENU_ACTION(KHUI_ACTION_PASSWD_ID),
+ MENU_SEP(),
+ MENU_ACTION(KHUI_ACTION_HELP_CTX),
+ MENU_ACTION(KHUI_ACTION_HELP_ABOUT),
+ MENU_SEP(),
MENU_ACTION(KHUI_ACTION_EXIT),
MENU_END()
};