diff pidgin/gtkconv.c @ 29282:5c2bbeef2eb8

Patch from Gabriel Schulhof to correctly size the GtkIMHtml entry in the conversation and status box when the 'interior-focus' style is FALSE. Fixes #10675. committer: Elliott Sales de Andrade <qulogic@pidgin.im>
author Gabriel Schulhof <nix@go-nix.ca>
date Sat, 16 Jan 2010 23:14:41 +0000
parents 3a43e48c870e
children 31d9677b0c36 9c3e0f2e82ea
line wrap: on
line diff
--- a/pidgin/gtkconv.c	Sat Jan 16 01:10:45 2010 +0000
+++ b/pidgin/gtkconv.c	Sat Jan 16 23:14:41 2010 +0000
@@ -4652,6 +4652,8 @@
 	int max_height = total_height / 2;
 	int min_lines = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/conversations/minimum_entry_lines");
 	int min_height;
+	gboolean interior_focus;
+	int focus_width;
 
 	pad_top = gtk_text_view_get_pixels_above_lines(GTK_TEXT_VIEW(gtkconv->entry));
 	pad_bottom = gtk_text_view_get_pixels_below_lines(GTK_TEXT_VIEW(gtkconv->entry));
@@ -4678,6 +4680,13 @@
 	min_height = min_lines * (oneline.height + MAX(pad_inside, pad_top + pad_bottom));
 	height = CLAMP(height, MIN(min_height, max_height), max_height);
 
+	gtk_widget_style_get(gtkconv->entry,
+	                     "interior-focus", &interior_focus,
+	                     "focus-line-width", &focus_width,
+	                     NULL);
+	if (!interior_focus)
+		height += 2 * focus_width;
+
 	diff = height - gtkconv->entry->allocation.height;
 	if (ABS(diff) < oneline.height / 2)
 		return FALSE;