aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimo.cecchi@collabora.co.uk>2009-08-01 16:33:18 +0800
committerCosimo Cecchi <cosimo.cecchi@collabora.co.uk>2009-08-01 16:33:18 +0800
commit8dcbfe163b293dda9bc0481e846db3bdd4e0ea98 (patch)
treeccd09bc3f224492e9d8c360c0b903e11f8b593ab /libempathy-gtk
parent3e8f25168aadd741ecc0fe8da4d1847eece5ff83 (diff)
parentc62744a26535b8778e6053e5d7c544ca9ccc1e5f (diff)
downloadgsoc2013-empathy-8dcbfe163b293dda9bc0481e846db3bdd4e0ea98.tar
gsoc2013-empathy-8dcbfe163b293dda9bc0481e846db3bdd4e0ea98.tar.gz
gsoc2013-empathy-8dcbfe163b293dda9bc0481e846db3bdd4e0ea98.tar.bz2
gsoc2013-empathy-8dcbfe163b293dda9bc0481e846db3bdd4e0ea98.tar.lz
gsoc2013-empathy-8dcbfe163b293dda9bc0481e846db3bdd4e0ea98.tar.xz
gsoc2013-empathy-8dcbfe163b293dda9bc0481e846db3bdd4e0ea98.tar.zst
gsoc2013-empathy-8dcbfe163b293dda9bc0481e846db3bdd4e0ea98.zip
Merge branch 'master' into mc5
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/empathy-conf.h1
-rw-r--r--libempathy-gtk/empathy-contact-dialogs.c3
-rw-r--r--libempathy-gtk/empathy-contact-list-store.c5
-rw-r--r--libempathy-gtk/empathy-contact-widget.c4
-rw-r--r--libempathy-gtk/empathy-theme-adium.c84
-rw-r--r--libempathy-gtk/empathy-ui-utils.c4
6 files changed, 58 insertions, 43 deletions
diff --git a/libempathy-gtk/empathy-conf.h b/libempathy-gtk/empathy-conf.h
index 937a4bf9c..2383a7edf 100644
--- a/libempathy-gtk/empathy-conf.h
+++ b/libempathy-gtk/empathy-conf.h
@@ -68,6 +68,7 @@ struct _EmpathyConfClass {
#define EMPATHY_PREFS_CHAT_SPELL_CHECKER_ENABLED EMPATHY_PREFS_PATH "/conversation/spell_checker_enabled"
#define EMPATHY_PREFS_CHAT_NICK_COMPLETION_CHAR EMPATHY_PREFS_PATH "/conversation/nick_completion_char"
#define EMPATHY_PREFS_CHAT_AVATAR_IN_ICON EMPATHY_PREFS_PATH "/conversation/avatar_in_icon"
+#define EMPATHY_PREFS_CHAT_WEBKIT_DEVELOPER_TOOLS EMPATHY_PREFS_PATH "/conversation/enable_webkit_developer_tools"
#define EMPATHY_PREFS_UI_SEPARATE_CHAT_WINDOWS EMPATHY_PREFS_PATH "/ui/separate_chat_windows"
#define EMPATHY_PREFS_UI_MAIN_WINDOW_HIDDEN EMPATHY_PREFS_PATH "/ui/main_window_hidden"
#define EMPATHY_PREFS_UI_AVATAR_DIRECTORY EMPATHY_PREFS_PATH "/ui/avatar_directory"
diff --git a/libempathy-gtk/empathy-contact-dialogs.c b/libempathy-gtk/empathy-contact-dialogs.c
index 725011c0b..ad466da50 100644
--- a/libempathy-gtk/empathy-contact-dialogs.c
+++ b/libempathy-gtk/empathy-contact-dialogs.c
@@ -342,7 +342,8 @@ can_add_contact_to_account (EmpathyAccount *account,
}
contact_manager = empathy_contact_manager_dup_singleton ();
- result = empathy_contact_manager_get_flags_for_connection (contact_manager, connection) & EMPATHY_CONTACT_LIST_CAN_ADD;
+ result = empathy_contact_manager_get_flags_for_connection (
+ contact_manager, connection) & EMPATHY_CONTACT_LIST_CAN_ADD;
g_object_unref (contact_manager);
return result;
diff --git a/libempathy-gtk/empathy-contact-list-store.c b/libempathy-gtk/empathy-contact-list-store.c
index a4c1d7ab9..ea386e14a 100644
--- a/libempathy-gtk/empathy-contact-list-store.c
+++ b/libempathy-gtk/empathy-contact-list-store.c
@@ -858,7 +858,7 @@ contact_list_store_add_contact (EmpathyContactListStore *store,
GtkTreeIter iter;
GList *groups = NULL, *l;
TpConnection *connection;
- EmpathyContactListFlags flags;
+ EmpathyContactListFlags flags = 0;
priv = GET_PRIV (store);
@@ -875,10 +875,7 @@ contact_list_store_add_contact (EmpathyContactListStore *store,
if (EMPATHY_IS_CONTACT_MANAGER (priv->list)) {
flags = empathy_contact_manager_get_flags_for_connection (
EMPATHY_CONTACT_MANAGER (priv->list), connection);
- } else {
- flags = 0;
}
-
/* If no groups just add it at the top level. */
if (!groups) {
gtk_tree_store_append (GTK_TREE_STORE (store), &iter, NULL);
diff --git a/libempathy-gtk/empathy-contact-widget.c b/libempathy-gtk/empathy-contact-widget.c
index a9a673c43..5b2e2de91 100644
--- a/libempathy-gtk/empathy-contact-widget.c
+++ b/libempathy-gtk/empathy-contact-widget.c
@@ -596,6 +596,10 @@ contact_widget_contact_setup (EmpathyContactWidget *information)
{
/* Setup label_status as a KludgeLabel */
information->label_status = empathy_kludge_label_new ("");
+ gtk_label_set_line_wrap_mode (GTK_LABEL (information->label_status),
+ PANGO_WRAP_WORD_CHAR);
+ gtk_label_set_line_wrap (GTK_LABEL (information->label_status),
+ TRUE);
gtk_box_pack_start (GTK_BOX (information->hbox_presence),
information->label_status, TRUE, TRUE, 0);
gtk_widget_show (information->label_status);
diff --git a/libempathy-gtk/empathy-theme-adium.c b/libempathy-gtk/empathy-theme-adium.c
index e04771597..2889aa304 100644
--- a/libempathy-gtk/empathy-theme-adium.c
+++ b/libempathy-gtk/empathy-theme-adium.c
@@ -106,8 +106,11 @@ theme_adium_update_enable_webkit_developer_tools (EmpathyThemeAdium *theme)
WebKitWebView *web_view = WEBKIT_WEB_VIEW (theme);
gboolean enable_webkit_developer_tools;
- if (empathy_conf_get_bool (empathy_conf_get (), "/apps/empathy/conversation/enable_webkit_developer_tools", &enable_webkit_developer_tools) == FALSE)
+ if (!empathy_conf_get_bool (empathy_conf_get (),
+ EMPATHY_PREFS_CHAT_WEBKIT_DEVELOPER_TOOLS,
+ &enable_webkit_developer_tools)) {
return;
+ }
g_object_set (G_OBJECT (webkit_web_view_get_settings (web_view)),
"enable-developer-extras",
@@ -881,29 +884,22 @@ theme_adium_dispose (GObject *object)
static gboolean
theme_adium_inspector_show_window_cb (WebKitWebInspector *inspector,
- gpointer user_data)
+ EmpathyThemeAdium *theme)
{
- EmpathyThemeAdium *theme = user_data;
EmpathyThemeAdiumPriv *priv = GET_PRIV (theme);
- gtk_widget_show_all (priv->inspector_window);
+ if (priv->inspector_window) {
+ gtk_widget_show_all (priv->inspector_window);
+ }
return TRUE;
}
static gboolean
theme_adium_inspector_close_window_cb (WebKitWebInspector *inspector,
- gpointer user_data)
+ EmpathyThemeAdium *theme)
{
- EmpathyThemeAdium *theme = user_data;
- EmpathyThemeAdiumPriv *priv;
-
- /* We may be called too late - when the theme has already been
- * destroyed */
- if (!theme)
- return FALSE;
-
- priv = GET_PRIV (theme);
+ EmpathyThemeAdiumPriv *priv = GET_PRIV (theme);
if (priv->inspector_window) {
gtk_widget_hide (priv->inspector_window);
@@ -914,27 +910,36 @@ theme_adium_inspector_close_window_cb (WebKitWebInspector *inspector,
static WebKitWebView *
theme_adium_inspect_web_view_cb (WebKitWebInspector *inspector,
- WebKitWebView *web_view,
- gpointer data)
+ WebKitWebView *web_view,
+ EmpathyThemeAdium *theme)
{
- EmpathyThemeAdiumPriv *priv = GET_PRIV (EMPATHY_THEME_ADIUM (web_view));
+ EmpathyThemeAdiumPriv *priv = GET_PRIV (theme);
GtkWidget *scrolled_window;
GtkWidget *inspector_web_view;
if (!priv->inspector_window) {
+ /* Create main window */
priv->inspector_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (priv->inspector_window),
800, 600);
-
g_signal_connect (priv->inspector_window, "delete-event",
G_CALLBACK (gtk_widget_hide_on_delete), NULL);
+ /* Pack a scrolled window */
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_container_add (GTK_CONTAINER (priv->inspector_window), scrolled_window);
-
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ gtk_container_add (GTK_CONTAINER (priv->inspector_window),
+ scrolled_window);
+ gtk_widget_show (scrolled_window);
+
+ /* Pack a webview in the scrolled window. That webview will be
+ * used to render the inspector tool. */
inspector_web_view = webkit_web_view_new ();
- gtk_container_add (GTK_CONTAINER (scrolled_window), inspector_web_view);
+ gtk_container_add (GTK_CONTAINER (scrolled_window),
+ inspector_web_view);
+ gtk_widget_show (scrolled_window);
return WEBKIT_WEB_VIEW (inspector_web_view);
}
@@ -949,35 +954,42 @@ theme_adium_constructed (GObject *object)
gchar *basedir_uri;
const gchar *font_family = NULL;
gint font_size = 0;
+ WebKitWebView *webkit_view = WEBKIT_WEB_VIEW (object);
WebKitWebSettings *webkit_settings;
+ WebKitWebInspector *webkit_inspector;
/* Set default settings */
font_family = tp_asv_get_string (priv->data->info, "DefaultFontFamily");
font_size = tp_asv_get_int32 (priv->data->info, "DefaultFontSize", NULL);
- webkit_settings = webkit_web_settings_new ();
+ webkit_settings = webkit_web_view_get_settings (webkit_view);
if (font_family) {
- g_object_set (G_OBJECT (webkit_settings), "default-font-family", font_family, NULL);
+ g_object_set (webkit_settings,
+ "default-font-family", font_family,
+ NULL);
}
if (font_size) {
- g_object_set (G_OBJECT (webkit_settings), "default-font-size", font_size, NULL);
+ g_object_set (webkit_settings,
+ "default-font-size", font_size,
+ NULL);
}
- g_signal_connect (webkit_web_view_get_inspector (WEBKIT_WEB_VIEW (object)), "inspect-web-view",
- G_CALLBACK (theme_adium_inspect_web_view_cb), NULL);
-
- g_signal_connect (webkit_web_view_get_inspector (WEBKIT_WEB_VIEW (object)), "show-window",
- G_CALLBACK (theme_adium_inspector_show_window_cb), object);
-
- g_signal_connect (webkit_web_view_get_inspector (WEBKIT_WEB_VIEW (object)), "close-window",
- G_CALLBACK (theme_adium_inspector_close_window_cb), NULL);
+ /* Setup webkit inspector */
+ webkit_inspector = webkit_web_view_get_inspector (webkit_view);
+ g_signal_connect (webkit_inspector, "inspect-web-view",
+ G_CALLBACK (theme_adium_inspect_web_view_cb),
+ object);
+ g_signal_connect (webkit_inspector, "show-window",
+ G_CALLBACK (theme_adium_inspector_show_window_cb),
+ object);
+ g_signal_connect (webkit_inspector, "close-window",
+ G_CALLBACK (theme_adium_inspector_close_window_cb),
+ object);
/* Load template */
basedir_uri = g_strconcat ("file://", priv->data->basedir, NULL);
webkit_web_view_load_html_string (WEBKIT_WEB_VIEW (object),
priv->data->template_html,
basedir_uri);
-
- g_object_unref (webkit_settings);
g_free (basedir_uri);
}
@@ -1067,7 +1079,7 @@ empathy_theme_adium_init (EmpathyThemeAdium *theme)
priv->notify_enable_webkit_developer_tools_id =
empathy_conf_notify_add (empathy_conf_get (),
- "/apps/empathy/conversation/enable_webkit_developer_tools",
+ EMPATHY_PREFS_CHAT_WEBKIT_DEVELOPER_TOOLS,
theme_adium_notify_enable_webkit_developer_tools_cb,
theme);
diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c
index b697b4d0b..3dcefdcfb 100644
--- a/libempathy-gtk/empathy-ui-utils.c
+++ b/libempathy-gtk/empathy-ui-utils.c
@@ -1351,7 +1351,7 @@ empathy_url_show (GtkWidget *parent,
gchar *real_url;
GError *error = NULL;
- g_return_if_fail (GTK_IS_WIDGET (parent));
+ g_return_if_fail (parent == NULL || GTK_IS_WIDGET (parent));
g_return_if_fail (url != NULL);
real_url = fixup_url (url);
@@ -1359,7 +1359,7 @@ empathy_url_show (GtkWidget *parent,
url = real_url;
}
- gtk_show_uri (gtk_widget_get_screen (parent), url,
+ gtk_show_uri (parent ? gtk_widget_get_screen (parent) : NULL, url,
gtk_get_current_event_time (), &error);
if (error) {