Mercurial > pidgin.yaz
comparison src/buddy.c @ 4476:62c1e5e656d0
[gaim-migrate @ 4751]
gaim_conversation_new() now takes an aim_user parameter. This should fix
the new placement grouping bugs, as the default "user" (account)
selected was the first account in the list of connections. There may be
side-effects, especially with perl plugins, but I'm not sure. Please report
anything odd that you see as a result of this.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Thu, 30 Jan 2003 18:45:50 +0000 |
parents | e73c4e8e2d03 |
children | 3196d9044a45 |
comparison
equal
deleted
inserted
replaced
4475:1f3241831734 | 4476:62c1e5e656d0 |
---|---|
438 { | 438 { |
439 struct gaim_conversation *c; | 439 struct gaim_conversation *c; |
440 | 440 |
441 c = gaim_find_conversation(b->name); | 441 c = gaim_find_conversation(b->name); |
442 | 442 |
443 if (c != NULL) | |
444 gaim_window_show(gaim_conversation_get_window(c)); | |
445 else | |
446 c = gaim_conversation_new(GAIM_CONV_IM, b->user, b->name); | |
447 } | |
448 | |
449 void pressed_im(GtkWidget *widget, struct buddy_show *b) | |
450 { | |
451 struct gaim_conversation *c; | |
452 | |
453 c = gaim_find_conversation(b->name); | |
454 | |
443 if (c != NULL) { | 455 if (c != NULL) { |
444 gaim_window_show(gaim_conversation_get_window(c)); | 456 gaim_window_show(gaim_conversation_get_window(c)); |
445 } else { | 457 } else { |
446 c = gaim_conversation_new(GAIM_CONV_IM, b->name); | 458 struct aim_user *user; |
447 | 459 |
448 gaim_conversation_set_user(c, b->user); | 460 user = ((struct gaim_connection *)b->connlist->data)->user; |
449 } | 461 c = gaim_conversation_new(GAIM_CONV_IM, user, b->name); |
450 } | |
451 | |
452 void pressed_im(GtkWidget *widget, struct buddy_show *b) | |
453 { | |
454 struct gaim_conversation *c; | |
455 | |
456 c = gaim_find_conversation(b->name); | |
457 | |
458 if (c != NULL) { | |
459 gaim_window_show(gaim_conversation_get_window(c)); | |
460 } else { | |
461 struct gaim_connection *gc; | |
462 | |
463 gc = (struct gaim_connection *)b->connlist->data; | |
464 c = gaim_conversation_new(GAIM_CONV_IM, b->name); | |
465 | |
466 gaim_conversation_set_user(c, gc->user); | |
467 } | 462 } |
468 } | 463 } |
469 | 464 |
470 void pressed_log(GtkWidget *widget, char *name) | 465 void pressed_log(GtkWidget *widget, char *name) |
471 { | 466 { |
498 | 493 |
499 static int handle_click_buddy(GtkWidget *widget, GdkEventButton *event, struct buddy_show *b) | 494 static int handle_click_buddy(GtkWidget *widget, GdkEventButton *event, struct buddy_show *b) |
500 { | 495 { |
501 if (!b->connlist) | 496 if (!b->connlist) |
502 return FALSE; | 497 return FALSE; |
498 | |
503 if (event->type == GDK_2BUTTON_PRESS && event->button == 1) { | 499 if (event->type == GDK_2BUTTON_PRESS && event->button == 1) { |
504 struct gaim_conversation *c; | 500 struct gaim_conversation *c; |
505 struct gaim_connection *gc; | 501 struct aim_user *user; |
502 | |
503 user = ((struct gaim_connection *)b->connlist->data)->user; | |
506 | 504 |
507 c = gaim_find_conversation(b->name); | 505 c = gaim_find_conversation(b->name); |
508 | 506 |
509 if (c != NULL) { | 507 if (c != NULL) { |
510 struct gaim_window *win = gaim_conversation_get_window(c); | 508 struct gaim_window *win = gaim_conversation_get_window(c); |
511 size_t index = gaim_conversation_get_index(c); | 509 size_t index = gaim_conversation_get_index(c); |
512 | 510 |
513 gaim_window_switch_conversation(win, index); | 511 gaim_window_switch_conversation(win, index); |
514 gaim_window_show(win); | 512 gaim_window_show(win); |
513 | |
514 gaim_conversation_set_user(c, user); | |
515 } | 515 } |
516 else | 516 else |
517 c = gaim_conversation_new(GAIM_CONV_IM, b->name); | 517 c = gaim_conversation_new(GAIM_CONV_IM, user, b->name); |
518 | |
519 gc = (struct gaim_connection *)b->connlist->data; | |
520 gaim_conversation_set_user(c, gc->user); | |
521 | 518 |
522 gaim_window_switch_conversation(gaim_conversation_get_window(c), | 519 gaim_window_switch_conversation(gaim_conversation_get_window(c), |
523 gaim_conversation_get_index(c)); | 520 gaim_conversation_get_index(c)); |
521 | |
522 gaim_window_raise(gaim_conversation_get_window(c)); | |
524 | 523 |
525 /* XXX-GTK gtk_widget_grab_focus(c->entry); */ | 524 /* XXX-GTK gtk_widget_grab_focus(c->entry); */ |
526 } else if (event->type == GDK_BUTTON_PRESS && event->button == 3) { | 525 } else if (event->type == GDK_BUTTON_PRESS && event->button == 3) { |
527 static GtkWidget *menu = NULL; | 526 static GtkWidget *menu = NULL; |
528 static GList *mo_top = NULL; | 527 static GList *mo_top = NULL; |
1290 return; | 1289 return; |
1291 } | 1290 } |
1292 if (!b->name) | 1291 if (!b->name) |
1293 return; | 1292 return; |
1294 | 1293 |
1294 user = ((struct gaim_connection *)b->connlist->data)->user; | |
1295 | |
1295 c = gaim_find_conversation(b->name); | 1296 c = gaim_find_conversation(b->name); |
1296 | 1297 |
1297 if (c == NULL) | 1298 if (c == NULL) |
1298 c = gaim_conversation_new(GAIM_CONV_IM, b->name); | 1299 c = gaim_conversation_new(GAIM_CONV_IM, user, b->name); |
1299 else | 1300 else { |
1301 gaim_conversation_set_user(c, user); | |
1300 gaim_window_raise(gaim_conversation_get_window(c)); | 1302 gaim_window_raise(gaim_conversation_get_window(c)); |
1301 | 1303 } |
1302 user = ((struct gaim_connection *)b->connlist->data)->user; | |
1303 gaim_conversation_set_user(c, user); | |
1304 } | 1304 } |
1305 | 1305 |
1306 static void info_callback(GtkWidget *widget, GtkTree *tree) | 1306 static void info_callback(GtkWidget *widget, GtkTree *tree) |
1307 { | 1307 { |
1308 GList *i; | 1308 GList *i; |
1396 if (!g_strcasecmp(who, normalize (b->name))) { /* find someone to pounce */ | 1396 if (!g_strcasecmp(who, normalize (b->name))) { /* find someone to pounce */ |
1397 if (b->options & OPT_POUNCE_POPUP) { | 1397 if (b->options & OPT_POUNCE_POPUP) { |
1398 c = gaim_find_conversation(name); | 1398 c = gaim_find_conversation(name); |
1399 | 1399 |
1400 if (c == NULL) | 1400 if (c == NULL) |
1401 c = gaim_conversation_new(GAIM_CONV_IM, name); | 1401 c = gaim_conversation_new(GAIM_CONV_IM, u, name); |
1402 | 1402 else |
1403 gaim_conversation_set_user(c, u); | 1403 gaim_conversation_set_user(c, u); |
1404 } | 1404 } |
1405 if (b->options & OPT_POUNCE_NOTIFY) { | 1405 if (b->options & OPT_POUNCE_NOTIFY) { |
1406 char tmp[1024]; | 1406 char tmp[1024]; |
1407 | 1407 |
1408 /* I know the line below is really ugly. I only did it this way | 1408 /* I know the line below is really ugly. I only did it this way |
1419 if (b->options & OPT_POUNCE_SEND_IM) { | 1419 if (b->options & OPT_POUNCE_SEND_IM) { |
1420 if (strlen(b->message) > 0) { | 1420 if (strlen(b->message) > 0) { |
1421 c = gaim_find_conversation(name); | 1421 c = gaim_find_conversation(name); |
1422 | 1422 |
1423 if (c == NULL) | 1423 if (c == NULL) |
1424 c = gaim_conversation_new(GAIM_CONV_IM, name); | 1424 c = gaim_conversation_new(GAIM_CONV_IM, u, name); |
1425 | 1425 else |
1426 gaim_conversation_set_user(c, u); | 1426 gaim_conversation_set_user(c, u); |
1427 | 1427 |
1428 gaim_conversation_write(c, NULL, b->message, -1, | 1428 gaim_conversation_write(c, NULL, b->message, -1, |
1429 WFLAG_SEND, time(NULL)); | 1429 WFLAG_SEND, time(NULL)); |
1430 | 1430 |
1431 serv_send_im(u->gc, name, b->message, -1, 0); | 1431 serv_send_im(u->gc, name, b->message, -1, 0); |