Mercurial > ~mikael > mcabber > hg
comparison mcabber/src/commands.c @ 1410:0cb4361c85a7
Pressing enter when a group is selected will toggle the fold status (franky)
Patch from franky, suggestion by "annihilator" in the MUC room.
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sun, 13 Jan 2008 16:11:40 +0100 |
parents | d431cd75eb53 |
children | 366ef500c522 |
comparison
equal
deleted
inserted
replaced
1409:754626d32c54 | 1410:0cb4361c85a7 |
---|---|
440 if (scr_get_multimode()) { | 440 if (scr_get_multimode()) { |
441 scr_append_multiline(""); | 441 scr_append_multiline(""); |
442 return 0; | 442 return 0; |
443 } | 443 } |
444 if (current_buddy) { | 444 if (current_buddy) { |
445 // Enter chat mode | 445 if (buddy_gettype(BUDDATA(current_buddy)) & ROSTER_TYPE_GROUP) |
446 scr_set_chatmode(TRUE); | 446 do_group("toggle"); |
447 scr_ShowBuddyWindow(); | 447 else { |
448 // Enter chat mode | |
449 scr_set_chatmode(TRUE); | |
450 scr_ShowBuddyWindow(); | |
451 } | |
448 } | 452 } |
449 return 0; | 453 return 0; |
450 } | 454 } |
451 | 455 |
452 if (*line != COMMAND_CHAR) { | 456 if (*line != COMMAND_CHAR) { |
995 { | 999 { |
996 gpointer group = NULL; | 1000 gpointer group = NULL; |
997 guint leave_buddywindow; | 1001 guint leave_buddywindow; |
998 char **paramlst; | 1002 char **paramlst; |
999 char *subcmd; | 1003 char *subcmd; |
1000 enum { group_unfold = 0, group_fold, group_toggle } group_state = 0; | 1004 enum { group_toggle = -1, group_unfold = 0, group_fold = 1 } group_state = 0; |
1001 | 1005 |
1002 if (!*arg) { | 1006 if (!*arg) { |
1003 scr_LogPrint(LPRINT_NORMAL, "Missing parameter."); | 1007 scr_LogPrint(LPRINT_NORMAL, "Missing parameter."); |
1004 return; | 1008 return; |
1005 } | 1009 } |
1049 } | 1053 } |
1050 | 1054 |
1051 if (group_state != group_unfold && leave_buddywindow) | 1055 if (group_state != group_unfold && leave_buddywindow) |
1052 scr_RosterPrevGroup(); | 1056 scr_RosterPrevGroup(); |
1053 | 1057 |
1054 if (group_state == group_unfold) | 1058 buddy_hide_group(group, group_state); |
1055 buddy_setflags(group, ROSTER_FLAG_HIDE, FALSE); | |
1056 else if (group_state == group_fold) | |
1057 buddy_setflags(group, ROSTER_FLAG_HIDE, TRUE); | |
1058 else if (group_state == group_toggle) | |
1059 buddy_setflags(group, ROSTER_FLAG_HIDE, | |
1060 !(buddy_getflags(group) & ROSTER_FLAG_HIDE)); | |
1061 | 1059 |
1062 buddylist_build(); | 1060 buddylist_build(); |
1063 update_roster = TRUE; | 1061 update_roster = TRUE; |
1064 | 1062 |
1065 do_group_return: | 1063 do_group_return: |