[gtk+] tearoffmenuitem: remove is_drawable() check
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] tearoffmenuitem: remove is_drawable() check
- Date: Sun, 26 Sep 2010 13:38:18 +0000 (UTC)
commit ee15f5aab120b9af3a2a23db31359f9a1104b702
Author: Benjamin Otte <otte redhat com>
Date: Tue Sep 14 13:22:29 2010 +0200
tearoffmenuitem: remove is_drawable() check
gtk/gtktearoffmenuitem.c | 175 ++++++++++++++++++++++------------------------
1 files changed, 85 insertions(+), 90 deletions(-)
---
diff --git a/gtk/gtktearoffmenuitem.c b/gtk/gtktearoffmenuitem.c
index c019c12..ce1ab37 100644
--- a/gtk/gtktearoffmenuitem.c
+++ b/gtk/gtktearoffmenuitem.c
@@ -127,100 +127,95 @@ gtk_tearoff_menu_item_draw (GtkWidget *widget,
GtkWidget *parent;
GdkWindow *window;
- if (gtk_widget_is_drawable (widget))
+ menu_item = GTK_MENU_ITEM (widget);
+ style = gtk_widget_get_style (widget);
+ window = gtk_widget_get_window (widget);
+ direction = gtk_widget_get_direction (widget);
+ state = gtk_widget_get_state (widget);
+
+ border_width = gtk_container_get_border_width (GTK_CONTAINER (menu_item));
+ x = border_width;
+ y = border_width;
+ width = gtk_widget_get_allocated_width (widget) - border_width * 2;
+ height = gtk_widget_get_allocated_height (widget) - border_width * 2;
+ right_max = x + width;
+
+ if (state == GTK_STATE_PRELIGHT)
{
- menu_item = GTK_MENU_ITEM (widget);
-
- style = gtk_widget_get_style (widget);
- window = gtk_widget_get_window (widget);
- direction = gtk_widget_get_direction (widget);
-
- border_width = gtk_container_get_border_width (GTK_CONTAINER (menu_item));
- x = border_width;
- y = border_width;
- width = gtk_widget_get_allocated_width (widget) - border_width * 2;
- height = gtk_widget_get_allocated_height (widget) - border_width * 2;
- right_max = x + width;
+ gint selected_shadow_type;
+
+ gtk_widget_style_get (widget,
+ "selected-shadow-type", &selected_shadow_type,
+ NULL);
+ gtk_cairo_paint_box (style,
+ cr,
+ GTK_STATE_PRELIGHT,
+ selected_shadow_type,
+ widget, "menuitem",
+ x, y, width, height);
+ }
- state = gtk_widget_get_state (widget);
+ parent = gtk_widget_get_parent (widget);
+ if (GTK_IS_MENU (parent) && GTK_MENU (parent)->torn_off)
+ {
+ gint arrow_x;
if (state == GTK_STATE_PRELIGHT)
- {
- gint selected_shadow_type;
-
- gtk_widget_style_get (widget,
- "selected-shadow-type", &selected_shadow_type,
- NULL);
- gtk_cairo_paint_box (style,
- cr,
- GTK_STATE_PRELIGHT,
- selected_shadow_type,
- widget, "menuitem",
- x, y, width, height);
- }
-
- parent = gtk_widget_get_parent (widget);
- if (GTK_IS_MENU (parent) && GTK_MENU (parent)->torn_off)
- {
- gint arrow_x;
-
- if (state == GTK_STATE_PRELIGHT)
- shadow_type = GTK_SHADOW_IN;
- else
- shadow_type = GTK_SHADOW_OUT;
-
- if (menu_item->toggle_size > ARROW_SIZE)
- {
- if (direction == GTK_TEXT_DIR_LTR) {
- arrow_x = x + (menu_item->toggle_size - ARROW_SIZE)/2;
- arrow_type = GTK_ARROW_LEFT;
- }
- else {
- arrow_x = x + width - menu_item->toggle_size + (menu_item->toggle_size - ARROW_SIZE)/2;
- arrow_type = GTK_ARROW_RIGHT;
- }
- x += menu_item->toggle_size + BORDER_SPACING;
- }
- else
- {
- if (direction == GTK_TEXT_DIR_LTR) {
- arrow_x = ARROW_SIZE / 2;
- arrow_type = GTK_ARROW_LEFT;
- }
- else {
- arrow_x = x + width - 2 * ARROW_SIZE + ARROW_SIZE / 2;
- arrow_type = GTK_ARROW_RIGHT;
- }
- x += 2 * ARROW_SIZE;
- }
-
-
- gtk_cairo_paint_arrow (style, cr,
- state, shadow_type,
- widget, "tearoffmenuitem",
- arrow_type, FALSE,
- arrow_x, y + height / 2 - 5,
- ARROW_SIZE, ARROW_SIZE);
- }
-
- while (x < right_max)
- {
- gint x1, x2;
-
- if (direction == GTK_TEXT_DIR_LTR) {
- x1 = x;
- x2 = MIN (x + TEAR_LENGTH, right_max);
- }
- else {
- x1 = right_max - x;
- x2 = MAX (right_max - x - TEAR_LENGTH, 0);
- }
-
- gtk_cairo_paint_hline (style, cr, GTK_STATE_NORMAL,
- widget, "tearoffmenuitem",
- x1, x2, y + (height - style->ythickness) / 2);
- x += 2 * TEAR_LENGTH;
- }
+ shadow_type = GTK_SHADOW_IN;
+ else
+ shadow_type = GTK_SHADOW_OUT;
+
+ if (menu_item->toggle_size > ARROW_SIZE)
+ {
+ if (direction == GTK_TEXT_DIR_LTR) {
+ arrow_x = x + (menu_item->toggle_size - ARROW_SIZE)/2;
+ arrow_type = GTK_ARROW_LEFT;
+ }
+ else {
+ arrow_x = x + width - menu_item->toggle_size + (menu_item->toggle_size - ARROW_SIZE)/2;
+ arrow_type = GTK_ARROW_RIGHT;
+ }
+ x += menu_item->toggle_size + BORDER_SPACING;
+ }
+ else
+ {
+ if (direction == GTK_TEXT_DIR_LTR) {
+ arrow_x = ARROW_SIZE / 2;
+ arrow_type = GTK_ARROW_LEFT;
+ }
+ else {
+ arrow_x = x + width - 2 * ARROW_SIZE + ARROW_SIZE / 2;
+ arrow_type = GTK_ARROW_RIGHT;
+ }
+ x += 2 * ARROW_SIZE;
+ }
+
+
+ gtk_cairo_paint_arrow (style, cr,
+ state, shadow_type,
+ widget, "tearoffmenuitem",
+ arrow_type, FALSE,
+ arrow_x, y + height / 2 - 5,
+ ARROW_SIZE, ARROW_SIZE);
+ }
+
+ while (x < right_max)
+ {
+ gint x1, x2;
+
+ if (direction == GTK_TEXT_DIR_LTR) {
+ x1 = x;
+ x2 = MIN (x + TEAR_LENGTH, right_max);
+ }
+ else {
+ x1 = right_max - x;
+ x2 = MAX (right_max - x - TEAR_LENGTH, 0);
+ }
+
+ gtk_cairo_paint_hline (style, cr, GTK_STATE_NORMAL,
+ widget, "tearoffmenuitem",
+ x1, x2, y + (height - style->ythickness) / 2);
+ x += 2 * TEAR_LENGTH;
}
return FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]