pidgin/gtkmain.c

changeset 33926
0c11d752fbe4
parent 33890
4a1b14508788
child 33929
014800693d22
equal deleted inserted replaced
33925:e5b703bc9f03 33926:0c11d752fbe4
427 gboolean opt_si = TRUE; /* Check for single instance? */ 427 gboolean opt_si = TRUE; /* Check for single instance? */
428 char *opt_config_dir_arg = NULL; 428 char *opt_config_dir_arg = NULL;
429 char *opt_login_arg = NULL; 429 char *opt_login_arg = NULL;
430 char *opt_session_arg = NULL; 430 char *opt_session_arg = NULL;
431 char *search_path; 431 char *search_path;
432 GtkCssProvider *provider;
433 GdkScreen *screen;
432 GList *accounts; 434 GList *accounts;
433 #ifdef HAVE_SIGNAL_H 435 #ifdef HAVE_SIGNAL_H
434 int sig_indx; /* for setting up signal catching */ 436 int sig_indx; /* for setting up signal catching */
435 sigset_t sigset; 437 sigset_t sigset;
436 char errmsg[BUFSIZ]; 438 char errmsg[BUFSIZ];
438 GIOStatus signal_status; 440 GIOStatus signal_status;
439 guint signal_channel_watcher; 441 guint signal_channel_watcher;
440 #ifndef DEBUG 442 #ifndef DEBUG
441 char *segfault_message_tmp; 443 char *segfault_message_tmp;
442 #endif 444 #endif
445 #endif
446 #if defined(HAVE_SIGNAL_H) || GTK_CHECK_VERSION(3,0,0)
443 GError *error; 447 GError *error;
444 #endif 448 #endif
445 int opt; 449 int opt;
446 gboolean gui_check; 450 gboolean gui_check;
447 gboolean debug_enabled; 451 gboolean debug_enabled;
688 * Fire up this baby. 692 * Fire up this baby.
689 */ 693 */
690 694
691 purple_debug_set_enabled(debug_enabled); 695 purple_debug_set_enabled(debug_enabled);
692 696
697 #if !GTK_CHECK_VERSION(3,0,0)
693 search_path = g_build_filename(purple_user_dir(), "gtkrc-2.0", NULL); 698 search_path = g_build_filename(purple_user_dir(), "gtkrc-2.0", NULL);
694 gtk_rc_add_default_file(search_path); 699 gtk_rc_add_default_file(search_path);
695 g_free(search_path); 700 g_free(search_path);
701 #endif
696 702
697 gui_check = gtk_init_check(&argc, &argv); 703 gui_check = gtk_init_check(&argc, &argv);
698 if (!gui_check) { 704 if (!gui_check) {
699 char *display = gdk_get_display(); 705 char *display = gdk_get_display();
700 706
706 g_free(segfault_message); 712 g_free(segfault_message);
707 #endif 713 #endif
708 714
709 return 1; 715 return 1;
710 } 716 }
717
718 #if GTK_CHECK_VERSION(3,0,0)
719 search_path = g_build_filename(purple_user_dir(), "gtk-3.0.css", NULL);
720
721 error = NULL;
722 provider = gtk_css_provider_new();
723 gui_check = gtk_css_provider_load_from_path(provider, search_path, &error);
724
725 if (gui_check && !error) {
726 screen = gdk_screen_get_default();
727 gtk_style_context_add_provider_for_screen(screen,
728 GTK_STYLE_PROVIDER(provider),
729 GTK_STYLE_PROVIDER_PRIORITY_USER);
730 } else {
731 purple_debug_error("gtk", "Unable to load custom gtk-3.0.css: %s\n",
732 error ? error->message : "(unknown error)");
733 }
734
735 g_free(search_path);
736 #endif
711 737
712 g_set_application_name(PIDGIN_NAME); 738 g_set_application_name(PIDGIN_NAME);
713 739
714 #ifdef _WIN32 740 #ifdef _WIN32
715 winpidgin_init(hint); 741 winpidgin_init(hint);

mercurial