# HG changeset patch # User Mikael Berthe # Date 1200237100 -3600 # Node ID 0cb4361c85a770ebee03b4f1744e874e8fcf8ae8 # Parent 754626d32c5476e5f6a16ebf0d1d0806f8d04f44 Pressing enter when a group is selected will toggle the fold status (franky) Patch from franky, suggestion by "annihilator" in the MUC room. diff -r 754626d32c54 -r 0cb4361c85a7 mcabber/src/commands.c --- a/mcabber/src/commands.c Sun Jan 13 12:00:54 2008 +0100 +++ b/mcabber/src/commands.c Sun Jan 13 16:11:40 2008 +0100 @@ -442,9 +442,13 @@ return 0; } if (current_buddy) { - // Enter chat mode - scr_set_chatmode(TRUE); - scr_ShowBuddyWindow(); + if (buddy_gettype(BUDDATA(current_buddy)) & ROSTER_TYPE_GROUP) + do_group("toggle"); + else { + // Enter chat mode + scr_set_chatmode(TRUE); + scr_ShowBuddyWindow(); + } } return 0; } @@ -997,7 +1001,7 @@ guint leave_buddywindow; char **paramlst; char *subcmd; - enum { group_unfold = 0, group_fold, group_toggle } group_state = 0; + enum { group_toggle = -1, group_unfold = 0, group_fold = 1 } group_state = 0; if (!*arg) { scr_LogPrint(LPRINT_NORMAL, "Missing parameter."); @@ -1051,13 +1055,7 @@ if (group_state != group_unfold && leave_buddywindow) scr_RosterPrevGroup(); - if (group_state == group_unfold) - buddy_setflags(group, ROSTER_FLAG_HIDE, FALSE); - else if (group_state == group_fold) - buddy_setflags(group, ROSTER_FLAG_HIDE, TRUE); - else if (group_state == group_toggle) - buddy_setflags(group, ROSTER_FLAG_HIDE, - !(buddy_getflags(group) & ROSTER_FLAG_HIDE)); + buddy_hide_group(group, group_state); buddylist_build(); update_roster = TRUE;