summaryrefslogtreecommitdiff
path: root/gtk/gtklistitem.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2000-12-04 16:11:51 +0000
committerHavoc Pennington <hp@src.gnome.org>2000-12-04 16:11:51 +0000
commit9cca191b6adda9c3e7a509769cb0442a84ac2794 (patch)
treebda4fbef13284b0c6485be43915661eb2eeb25be /gtk/gtklistitem.c
parent15c81f52d39865d2780f46a43ff906af539fe4c8 (diff)
downloadgtk+-9cca191b6adda9c3e7a509769cb0442a84ac2794.tar.gz
Fix bugs Alex found:
2000-12-04 Havoc Pennington <hp@redhat.com> Fix bugs Alex found: * gtk/gtktooltips.c (gtk_tooltips_force_window): nuke connection to "draw" * gtk/gtkdnd.c (gtk_drag_highlight): nuke connection to "draw" * gtk/gtkcolorsel.c (palette_new): nuke connection to "draw" * gtk/gtklistitem.c (gtk_list_item_expose): Put the old _draw() implementation in here, apparently the expose() implementation was dead code.
Diffstat (limited to 'gtk/gtklistitem.c')
-rw-r--r--gtk/gtklistitem.c43
1 files changed, 30 insertions, 13 deletions
diff --git a/gtk/gtklistitem.c b/gtk/gtklistitem.c
index 3e40c0f8cf..9ca79f5383 100644
--- a/gtk/gtklistitem.c
+++ b/gtk/gtklistitem.c
@@ -482,36 +482,53 @@ gtk_list_item_expose (GtkWidget *widget,
GdkEventExpose *event)
{
GtkBin *bin;
- GdkEventExpose child_event;
g_return_val_if_fail (widget != NULL, FALSE);
- g_return_val_if_fail (GTK_IS_LIST_ITEM (widget), FALSE);
- g_return_val_if_fail (event != NULL, FALSE);
if (GTK_WIDGET_DRAWABLE (widget))
{
bin = GTK_BIN (widget);
- if (!GTK_WIDGET_IS_SENSITIVE (widget))
- gdk_window_set_background (widget->window, &widget->style->bg[GTK_STATE_INSENSITIVE]);
- else if (widget->state == GTK_STATE_NORMAL)
- gdk_window_set_background (widget->window, &widget->style->base[GTK_STATE_NORMAL]);
+ if (widget->state == GTK_STATE_NORMAL)
+ {
+ gdk_window_set_back_pixmap (widget->window, NULL, TRUE);
+ gdk_window_clear_area (widget->window, event->area.x, event->area.y,
+ event->area.width, event->area.height);
+ }
else
- gdk_window_set_background (widget->window, &widget->style->bg[widget->state]);
-
- gdk_window_clear_area (widget->window, event->area.x, event->area.y,
- event->area.width, event->area.height);
+ {
+ gtk_paint_flat_box (widget->style, widget->window,
+ widget->state, GTK_SHADOW_ETCHED_OUT,
+ &event->area, widget, "listitem",
+ 0, 0, -1, -1);
+ }
if (bin->child)
{
+ GdkEventExpose child_event;
+
child_event = *event;
if (GTK_WIDGET_NO_WINDOW (bin->child) &&
gtk_widget_intersect (bin->child, &event->area, &child_event.area))
gtk_widget_event (bin->child, (GdkEvent*) &child_event);
}
-
- gtk_widget_draw_focus (widget);
+
+ if (GTK_WIDGET_HAS_FOCUS (widget))
+ {
+ if (GTK_IS_LIST (widget->parent) && GTK_LIST (widget->parent)->add_mode)
+ gtk_paint_focus (widget->style, widget->window,
+ NULL, widget, "add-mode",
+ 0, 0,
+ widget->allocation.width - 1,
+ widget->allocation.height - 1);
+ else
+ gtk_paint_focus (widget->style, widget->window,
+ NULL, widget, NULL,
+ 0, 0,
+ widget->allocation.width - 1,
+ widget->allocation.height - 1);
+ }
}
return FALSE;