aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornyamatongwe <devnull@localhost>2009-06-13 00:12:31 +0000
committernyamatongwe <devnull@localhost>2009-06-13 00:12:31 +0000
commitf83529ee83a074eab642f6e294b2443d1fb4dda5 (patch)
treedc585f5a5e391e0125d9998cdae644faf52b51bb
parent33e228945100aba33dabd40a8cbe77e621ba1bd3 (diff)
downloadscintilla-mirror-f83529ee83a074eab642f6e294b2443d1fb4dda5.tar.gz
Patch from Wingware to make width of autocompletion more
consistent by ensuring width of pixmap taken into account even when no pixmap yet displayed.
-rw-r--r--gtk/PlatGTK.cxx31
1 files changed, 26 insertions, 5 deletions
diff --git a/gtk/PlatGTK.cxx b/gtk/PlatGTK.cxx
index 588d067a2..82d0a9b99 100644
--- a/gtk/PlatGTK.cxx
+++ b/gtk/PlatGTK.cxx
@@ -1964,6 +1964,9 @@ class ListBoxX : public ListBox {
int current;
#endif
void *pixhash;
+#if GTK_MAJOR_VERSION >= 2
+ GtkCellRenderer* pixbuf_renderer;
+#endif
int lineHeight;
XPMSet xset;
bool unicodeMode;
@@ -1979,6 +1982,9 @@ public:
#if GTK_MAJOR_VERSION < 2
current = 0;
#endif
+#if GTK_MAJOR_VERSION >= 2
+ pixbuf_renderer = 0;
+#endif
}
virtual ~ListBoxX() {
if (pixhash) {
@@ -2115,12 +2121,13 @@ void ListBoxX::Create(Window &, int, Point, int, bool) {
gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_title(column, "Autocomplete");
- GtkCellRenderer *renderer = gtk_cell_renderer_pixbuf_new();
- gtk_tree_view_column_pack_start(column, renderer, FALSE);
- gtk_tree_view_column_add_attribute(column, renderer,
+ pixbuf_renderer = gtk_cell_renderer_pixbuf_new();
+ gtk_cell_renderer_set_fixed_size(pixbuf_renderer, 0, -1);
+ gtk_tree_view_column_pack_start(column, pixbuf_renderer, FALSE);
+ gtk_tree_view_column_add_attribute(column, pixbuf_renderer,
"pixbuf", PIXBUF_COLUMN);
-
- renderer = gtk_cell_renderer_text_new();
+
+ GtkCellRenderer* renderer = gtk_cell_renderer_text_new();
gtk_cell_renderer_text_set_fixed_height_from_font(GTK_CELL_RENDERER_TEXT(renderer), 1);
gtk_tree_view_column_pack_start(column, renderer, TRUE);
gtk_tree_view_column_add_attribute(column, renderer,
@@ -2222,6 +2229,12 @@ PRectangle ListBoxX::GetDesiredRect() {
}
int ListBoxX::CaretFromEdge() {
+#if GTK_MAJOR_VERSION >= 2
+ gint renderer_width, renderer_height;
+ gtk_cell_renderer_get_fixed_size(pixbuf_renderer, &renderer_width,
+ &renderer_height);
+ return 4 + renderer_width;
+#endif
return 4 + xset.GetWidth();
}
@@ -2308,6 +2321,14 @@ void ListBoxX::Append(char *s, int type) {
gtk_list_store_set(GTK_LIST_STORE(store), &iter,
PIXBUF_COLUMN, list_image->pixbuf,
TEXT_COLUMN, s, -1);
+
+ gint pixbuf_width = gdk_pixbuf_get_width(list_image->pixbuf);
+ gint renderer_height, renderer_width;
+ gtk_cell_renderer_get_fixed_size(pixbuf_renderer,
+ &renderer_width, &renderer_height);
+ if (pixbuf_width > renderer_width)
+ gtk_cell_renderer_set_fixed_size(pixbuf_renderer,
+ pixbuf_width, -1);
} else {
gtk_list_store_set(GTK_LIST_STORE(store), &iter,
TEXT_COLUMN, s, -1);