[gtk+/gtk-2-24] gtk: draw the progress only on the text area
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-24] gtk: draw the progress only on the text area
- Date: Tue, 16 Nov 2010 18:28:33 +0000 (UTC)
commit 95f588dc78ff5d78d70438afe1f9df3fc9fb20c0
Author: Michael Natterer <mitch gimp org>
Date: Tue Nov 16 19:25:45 2010 +0100
gtk: draw the progress only on the text area
so it doesn't extend under GtkSpinButton's buttons.
gtk/gtkentry.c | 60 +++++++++++++++++++------------------------------------
1 files changed, 21 insertions(+), 39 deletions(-)
---
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 8c83fe1..46b6d88 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -3340,54 +3340,36 @@ gtk_entry_draw_frame (GtkWidget *widget,
}
static void
-gtk_entry_get_progress_border (GtkWidget *widget,
- GtkBorder *progress_border)
-{
- GtkBorder *tmp_border;
-
- gtk_widget_style_get (widget, "progress-border", &tmp_border, NULL);
- if (tmp_border)
- {
- *progress_border = *tmp_border;
- gtk_border_free (tmp_border);
- }
- else
- {
- progress_border->left = widget->style->xthickness;
- progress_border->right = widget->style->xthickness;
- progress_border->top = widget->style->ythickness;
- progress_border->bottom = widget->style->ythickness;
- }
-}
-
-static void
get_progress_area (GtkWidget *widget,
- gint *x,
- gint *y,
- gint *width,
- gint *height)
+ gint *x,
+ gint *y,
+ gint *width,
+ gint *height)
{
GtkEntryPrivate *private = GTK_ENTRY_GET_PRIVATE (widget);
GtkEntry *entry = GTK_ENTRY (widget);
- GtkBorder progress_border;
+ GtkBorder *progress_border;
- gtk_entry_get_progress_border (widget, &progress_border);
+ get_text_area_size (entry, x, y, width, height);
- *x = progress_border.left;
- *y = progress_border.top;
-
- *width = gdk_window_get_width (widget->window);
- *height = gdk_window_get_height (widget->window);
+ if (!private->interior_focus)
+ {
+ *x -= private->focus_width;
+ *y -= private->focus_width;
+ *width += 2 * private->focus_width;
+ *height += 2 * private->focus_width;
+ }
- *width -= progress_border.left + progress_border.right;
- *height -= progress_border.top + progress_border.bottom;
+ gtk_widget_style_get (widget, "progress-border", &progress_border, NULL);
- if (gtk_widget_has_focus (widget) && !private->interior_focus)
+ if (progress_border)
{
- *x += private->focus_width;
- *y += private->focus_width;
- *width -= 2 * private->focus_width;
- *height -= 2 * private->focus_width;
+ *x += progress_border->left;
+ *y += progress_border->top;
+ *width -= progress_border->left + progress_border->right;
+ *height -= progress_border->top + progress_border->bottom;
+
+ gtk_border_free (progress_border);
}
if (private->progress_pulse_mode)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]