[gtk+] 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: draw the progress only on the text area
- Date: Thu, 18 Nov 2010 00:07:34 +0000 (UTC)
commit 3ec8daa66c1a4e67ef8be8b9e85045bfe52993ff
Author: Michael Natterer <mitch gimp org>
Date: Thu Nov 18 01:02:57 2010 +0100
gtk: draw the progress only on the text area
so it doesn't extend under GtkSpinButton's buttons.
gtk/gtkentry.c | 64 ++++++++++++++++++-------------------------------------
1 files changed, 21 insertions(+), 43 deletions(-)
---
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 8c39e11..d177ba2 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -3394,58 +3394,36 @@ gtk_entry_draw_frame (GtkWidget *widget,
}
static void
-gtk_entry_get_progress_border (GtkWidget *widget,
- GtkBorder *progress_border)
-{
- GtkBorder *tmp_border;
- GtkStyle *style;
-
- gtk_widget_style_get (widget, "progress-border", &tmp_border, NULL);
- if (tmp_border)
- {
- *progress_border = *tmp_border;
- gtk_border_free (tmp_border);
- }
- else
- {
- style = gtk_widget_get_style (widget);
-
- progress_border->left = style->xthickness;
- progress_border->right = style->xthickness;
- progress_border->top = style->ythickness;
- progress_border->bottom = 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;
- gint frame_width, frame_height;
+ GtkBorder *progress_border;
- get_frame_size (entry, NULL, NULL, &frame_width, &frame_height);
- 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;
+ if (!private->interior_focus)
+ {
+ *x -= private->focus_width;
+ *y -= private->focus_width;
+ *width += 2 * private->focus_width;
+ *height += 2 * private->focus_width;
+ }
- *width = frame_width
- - progress_border.left - progress_border.right;
- *height = frame_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]