pidgin/gtkdocklet.c

changeset 32339
8c4f6c2f736b
parent 32325
f6980ed6044a
child 32341
6b2256808cad
equal deleted inserted replaced
32338:bfbce5185378 32339:8c4f6c2f736b
713 static void 713 static void
714 docklet_menu(void) 714 docklet_menu(void)
715 { 715 {
716 static GtkWidget *menu = NULL; 716 static GtkWidget *menu = NULL;
717 GtkWidget *menuitem; 717 GtkWidget *menuitem;
718 GtkMenuPositionFunc pos_func = gtk_status_icon_position_menu;
718 719
719 if (menu) { 720 if (menu) {
720 gtk_widget_destroy(menu); 721 gtk_widget_destroy(menu);
721 } 722 }
722 723
788 pidgin_new_item_from_stock(menu, _("_Quit"), GTK_STOCK_QUIT, G_CALLBACK(purple_core_quit), NULL, 0, 0, NULL); 789 pidgin_new_item_from_stock(menu, _("_Quit"), GTK_STOCK_QUIT, G_CALLBACK(purple_core_quit), NULL, 0, 0, NULL);
789 790
790 #ifdef _WIN32 791 #ifdef _WIN32
791 g_signal_connect(menu, "leave-notify-event", G_CALLBACK(docklet_menu_leave_enter), NULL); 792 g_signal_connect(menu, "leave-notify-event", G_CALLBACK(docklet_menu_leave_enter), NULL);
792 g_signal_connect(menu, "enter-notify-event", G_CALLBACK(docklet_menu_leave_enter), NULL); 793 g_signal_connect(menu, "enter-notify-event", G_CALLBACK(docklet_menu_leave_enter), NULL);
794 pos_func = NULL;
793 #endif 795 #endif
794 gtk_widget_show_all(menu); 796 gtk_widget_show_all(menu);
795 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, 797 gtk_menu_popup(GTK_MENU(menu), NULL, NULL,
796 gtk_status_icon_position_menu, 798 pos_func,
797 docklet, 0, gtk_get_current_event_time()); 799 docklet, 0, gtk_get_current_event_time());
798 } 800 }
799 801
800 static void 802 static void
801 pidgin_docklet_clicked(int button_type) 803 pidgin_docklet_clicked(int button_type)
1001 * time it was run. This should hopefully solve problems with the buddy 1003 * time it was run. This should hopefully solve problems with the buddy
1002 * list not properly starting hidden when Pidgin is started on login. 1004 * list not properly starting hidden when Pidgin is started on login.
1003 */ 1005 */
1004 if (!recreate) { 1006 if (!recreate) {
1005 pidgin_docklet_embedded(); 1007 pidgin_docklet_embedded();
1008 #ifdef _WIN32
1006 #if GTK_CHECK_VERSION(2,12,0) 1009 #if GTK_CHECK_VERSION(2,12,0)
1007 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/docklet/gtk/embedded")) { 1010 if (purple_prefs_get_bool(PIDGIN_PREFS_ROOT "/docklet/gtk/embedded")) {
1008 embed_timeout = purple_timeout_add_seconds(LONG_EMBED_TIMEOUT, docklet_gtk_embed_timeout_cb, NULL); 1011 embed_timeout = purple_timeout_add_seconds(LONG_EMBED_TIMEOUT, docklet_gtk_embed_timeout_cb, NULL);
1009 } else { 1012 } else {
1010 embed_timeout = purple_timeout_add_seconds(SHORT_EMBED_TIMEOUT, docklet_gtk_embed_timeout_cb, NULL); 1013 embed_timeout = purple_timeout_add_seconds(SHORT_EMBED_TIMEOUT, docklet_gtk_embed_timeout_cb, NULL);
1011 } 1014 }
1012 #else 1015 #else
1013 embed_timeout = purple_timeout_add_seconds(SHORT_EMBED_TIMEOUT, docklet_gtk_embed_timeout_cb, NULL); 1016 embed_timeout = purple_timeout_add_seconds(SHORT_EMBED_TIMEOUT, docklet_gtk_embed_timeout_cb, NULL);
1017 #endif
1014 #endif 1018 #endif
1015 } 1019 }
1016 1020
1017 purple_debug_info("docklet", "GTK+ created\n"); 1021 purple_debug_info("docklet", "GTK+ created\n");
1018 } 1022 }

mercurial