Mercurial > pidgin
diff src/gtkblist.c @ 11709:cae2fb7e8594
[gaim-migrate @ 14000]
This is a patch from Casey Harkins to significantly overhaul the docklet plugin. I'm pretty happy about this because it enables us to remove a win32 GTK+ dependency on the core and all the prpls.
committer: Tailor Script <tailor@pidgin.im>
| author | Daniel Atallah <daniel.atallah@gmail.com> |
|---|---|
| date | Sat, 22 Oct 2005 01:18:08 +0000 |
| parents | 969fb599cc1b |
| children | 109ee3bfeac5 |
line wrap: on
line diff
--- a/src/gtkblist.c Sat Oct 22 01:03:18 2005 +0000 +++ b/src/gtkblist.c Sat Oct 22 01:18:08 2005 +0000 @@ -155,10 +155,7 @@ static gboolean gtk_blist_delete_cb(GtkWidget *w, GdkEventAny *event, gpointer data) { - if (docklet_count) - gaim_blist_set_visible(FALSE); - else - gaim_core_quit(); + gaim_core_quit(); /* we handle everything, event should not propogate further */ return TRUE; @@ -3157,7 +3154,7 @@ {"application/x-im-contact", 0, DRAG_BUDDY}, {"text/x-vcard", 0, DRAG_VCARD }}; if (gtkblist && gtkblist->window) { - if (gaim_prefs_get_bool("/gaim/gtk/blist/list_visible") || docklet_count == 0) + if (gaim_prefs_get_bool("/gaim/gtk/blist/list_visible")) gtk_widget_show(gtkblist->window); return; } @@ -3172,7 +3169,7 @@ gtk_widget_show(gtkblist->vbox); gtk_container_add(GTK_CONTAINER(gtkblist->window), gtkblist->vbox); - g_signal_connect(G_OBJECT(gtkblist->window), "delete_event", G_CALLBACK(gtk_blist_delete_cb), NULL); + g_signal_connect_after(G_OBJECT(gtkblist->window), "delete_event", G_CALLBACK(gtk_blist_delete_cb), NULL); g_signal_connect(G_OBJECT(gtkblist->window), "configure_event", G_CALLBACK(gtk_blist_configure_cb), NULL); g_signal_connect(G_OBJECT(gtkblist->window), "visibility_notify_event", G_CALLBACK(gtk_blist_visibility_cb), NULL); gtk_widget_add_events(gtkblist->window, GDK_VISIBILITY_NOTIFY_MASK); @@ -3308,7 +3305,7 @@ gaim_gtk_blist_update_plugin_actions(); /* OK... let's show this bad boy. */ - if (gaim_prefs_get_bool("/gaim/gtk/blist/list_visible") || docklet_count == 0) { + if (gaim_prefs_get_bool("/gaim/gtk/blist/list_visible")) { gaim_gtk_blist_refresh(list); gaim_gtk_blist_restore_position(); gtk_widget_show(gtkblist->window); @@ -3853,14 +3850,7 @@ gaim_gtk_blist_restore_position(); gtk_window_present(GTK_WINDOW(gtkblist->window)); } else { - if (!gaim_connections_get_all() || docklet_count) { -#ifdef _WIN32 - wgaim_systray_minimize(gtkblist->window); -#endif - gtk_widget_hide(gtkblist->window); - } else { - gtk_window_iconify(GTK_WINDOW(gtkblist->window)); - } + gtk_window_iconify(GTK_WINDOW(gtkblist->window)); } } @@ -4477,41 +4467,6 @@ _("Cancel"), NULL, NULL); } -void gaim_gtk_blist_docklet_toggle() { - /* Useful for the docklet plugin and also for the win32 tray icon*/ - /* This is called when one of those is clicked--it will show/hide the - buddy list/login window--depending on which is active */ - if (gtkblist && gtkblist->window) { - if (GTK_WIDGET_VISIBLE(gtkblist->window)) { - gaim_blist_set_visible(GAIM_WINDOW_ICONIFIED(gtkblist->window) || gaim_gtk_blist_obscured); - } else { -#if _WIN32 - wgaim_systray_maximize(gtkblist->window); -#endif - gaim_blist_set_visible(TRUE); - } - } else { - /* we're logging in or something... do nothing */ - /* or should I make the blist? */ - gaim_debug_warning("gtkblist", - "docklet_toggle called with gaim_connections_get_all() " - "but no blist!\n"); - } -} - -void gaim_gtk_blist_docklet_add() -{ - docklet_count++; -} - -void gaim_gtk_blist_docklet_remove() -{ - docklet_count--; - if (!docklet_count) { - gaim_blist_set_visible(TRUE); - } -} - static GaimBlistUiOps blist_ui_ops = { gaim_gtk_blist_new_list,
