2006-08-15 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkentryprivate.h:
+ * gtk/gtkentry.c (_gtk_entry_effective_inner_border): Export
+ privately. Adjust all callers.
+
+ * gtk/gtkspinbutton.c (gtk_spin_button_size_request): Use it
+ here to get the actual inner border. (#349429, Benjamin Berg)
+
* gtk/gtkfilechooserentry.c (struct _GtkFileChooserEntry): Don't
store GSource pointers, but ids.
(gtk_file_chooser_entry_dispose): Remove idles.
2006-08-15 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkentryprivate.h:
+ * gtk/gtkentry.c (_gtk_entry_effective_inner_border): Export
+ privately. Adjust all callers.
+
+ * gtk/gtkspinbutton.c (gtk_spin_button_size_request): Use it
+ here to get the actual inner border. (#349429, Benjamin Berg)
+
* gtk/gtkfilechooserentry.c (struct _GtkFileChooserEntry): Don't
store GSource pointers, but ids.
(gtk_file_chooser_entry_dispose): Remove idles.
gint *y,
gint *width,
gint *height);
-static void get_inner_border (GtkEntry *entry,
- GtkBorder *border);
/* Completion */
static gint gtk_entry_completion_timeout (gpointer data);
entry->descent = pango_font_metrics_get_descent (metrics);
_gtk_entry_get_borders (entry, &xborder, &yborder);
- get_inner_border (entry, &inner_border);
+ _gtk_entry_effective_inner_border (entry, &inner_border);
if (entry->width_chars < 0)
requisition->width = MIN_ENTRY_WIDTH + xborder * 2 + inner_border.left + inner_border.right;
}
}
-static void
-get_inner_border (GtkEntry *entry,
- GtkBorder *border)
+void
+_gtk_entry_effective_inner_border (GtkEntry *entry,
+ GtkBorder *border)
{
GtkBorder *tmp_border;
layout = gtk_entry_ensure_layout (entry, TRUE);
get_text_area_size (entry, NULL, NULL, &area_width, &area_height);
- get_inner_border (entry, &inner_border);
+ _gtk_entry_effective_inner_border (entry, &inner_border);
area_height = PANGO_SCALE * (area_height - inner_border.top - inner_border.bottom);
text_color = &widget->style->text [GTK_STATE_ACTIVE];
}
- get_inner_border (entry, &inner_border);
+ _gtk_entry_effective_inner_border (entry, &inner_border);
for (i = 0; i < n_ranges; ++i)
cairo_rectangle (cr,
gint x1 = 0;
gint x2 = 0;
- get_inner_border (entry, &inner_border);
+ _gtk_entry_effective_inner_border (entry, &inner_border);
xoffset = inner_border.left - entry->scroll_offset;
if (!GTK_WIDGET_REALIZED (entry))
return;
- get_inner_border (entry, &inner_border);
+ _gtk_entry_effective_inner_border (entry, &inner_border);
gdk_drawable_get_size (entry->text_area, &text_area_width, NULL);
text_area_width -= inner_border.left + inner_border.right;
gtk_widget_size_request (entry->popup_menu, &menu_req);
gdk_drawable_get_size (entry->text_area, NULL, &height);
gtk_entry_get_cursor_locations (entry, CURSOR_STANDARD, &strong_x, NULL);
- get_inner_border (entry, &inner_border);
+ _gtk_entry_effective_inner_border (entry, &inner_border);
*x += inner_border.left + strong_x - entry->scroll_offset;
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
#include "gdk/gdkkeysyms.h"
#include "gtkbindings.h"
#include "gtkspinbutton.h"
+#include "gtkentryprivate.h"
#include "gtkmain.h"
#include "gtkmarshalers.h"
#include "gtksettings.h"
gboolean interior_focus;
gint focus_width;
gint xborder, yborder;
+ GtkBorder inner_border;
gtk_widget_style_get (widget,
"interior-focus", &interior_focus,
width = MAX (width, w);
_gtk_entry_get_borders (entry, &xborder, &yborder);
-
- xborder += 2; /* INNER_BORDER */
+ _gtk_entry_effective_inner_border (entry, &inner_border);
- requisition->width = width + xborder * 2;
+ requisition->width = width + xborder * 2 + inner_border.left + inner_border.right;
}
requisition->width += arrow_size + 2 * widget->style->xthickness;