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: