summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--eel/eel-labeled-image.c82
1 files changed, 59 insertions, 23 deletions
diff --git a/eel/eel-labeled-image.c b/eel/eel-labeled-image.c
index d9ff49cd..a69f6295 100644
--- a/eel/eel-labeled-image.c
+++ b/eel/eel-labeled-image.c
@@ -375,10 +375,67 @@ static int
#if GTK_CHECK_VERSION (3, 0, 0)
eel_labeled_image_draw (GtkWidget *widget,
cairo_t *cr)
+{
+ EelLabeledImage *labeled_image;
+ EelIRect label_bounds;
+ GtkStyle *style;
+ GdkWindow *window;
+
+ g_assert (EEL_IS_LABELED_IMAGE (widget));
+ g_assert (gtk_widget_get_realized (widget));
+
+ labeled_image = EEL_LABELED_IMAGE (widget);
+
+ style = gtk_widget_get_style (widget);
+ window = gtk_widget_get_window (widget);
+ if (gtk_widget_get_state (widget) == GTK_STATE_SELECTED ||
+ gtk_widget_get_state (widget) == GTK_STATE_ACTIVE)
+ {
+ label_bounds = eel_labeled_image_get_label_bounds (EEL_LABELED_IMAGE (widget));
+
+ gtk_paint_flat_box (style,
+ cr,
+ gtk_widget_get_state (widget),
+ GTK_SHADOW_NONE,
+ widget,
+ "eel-labeled-image",
+ label_bounds.x0, label_bounds.y0,
+ label_bounds.x1 - label_bounds.x0,
+ label_bounds.y1 - label_bounds.y0);
+ }
+
+ if (labeled_image_show_label (labeled_image))
+ {
+ eel_gtk_container_child_expose_event (GTK_CONTAINER (widget),
+ labeled_image->details->label,
+ cr);
+ }
+
+ if (labeled_image_show_image (labeled_image))
+ {
+ eel_gtk_container_child_expose_event (GTK_CONTAINER (widget),
+ labeled_image->details->image,
+ cr);
+ }
+
+ if (gtk_widget_has_focus (widget))
+ {
+ label_bounds = eel_labeled_image_get_image_bounds (EEL_LABELED_IMAGE (widget));
+ gtk_paint_focus (style,
+ cr,
+ GTK_STATE_NORMAL,
+ widget,
+ "eel-focusable-labeled-image",
+ label_bounds.x0, label_bounds.y0,
+ label_bounds.x1 - label_bounds.x0,
+ label_bounds.y1 - label_bounds.y0);
+ }
+
+ return FALSE;
+}
#else
eel_labeled_image_expose_event (GtkWidget *widget,
GdkEventExpose *event)
-#endif
{
EelLabeledImage *labeled_image;
EelIRect label_bounds;
@@ -387,9 +444,7 @@ eel_labeled_image_expose_event (GtkWidget *widget,
g_assert (EEL_IS_LABELED_IMAGE (widget));
g_assert (gtk_widget_get_realized (widget));
-#if !GTK_CHECK_VERSION (3, 0, 0)
g_assert (event != NULL);
-#endif
labeled_image = EEL_LABELED_IMAGE (widget);
@@ -401,16 +456,10 @@ eel_labeled_image_expose_event (GtkWidget *widget,
label_bounds = eel_labeled_image_get_label_bounds (EEL_LABELED_IMAGE (widget));
gtk_paint_flat_box (style,
-#if GTK_CHECK_VERSION (3, 0, 0)
- cr,
-#else
window,
-#endif
gtk_widget_get_state (widget),
GTK_SHADOW_NONE,
-#if !GTK_CHECK_VERSION (3, 0, 0)
&event->area,
-#endif
widget,
"eel-labeled-image",
label_bounds.x0, label_bounds.y0,
@@ -422,37 +471,23 @@ eel_labeled_image_expose_event (GtkWidget *widget,
{
eel_gtk_container_child_expose_event (GTK_CONTAINER (widget),
labeled_image->details->label,
-#if GTK_CHECK_VERSION (3, 0, 0)
- cr);
-#else
event);
-#endif
}
if (labeled_image_show_image (labeled_image))
{
eel_gtk_container_child_expose_event (GTK_CONTAINER (widget),
labeled_image->details->image,
-#if GTK_CHECK_VERSION (3, 0, 0)
- cr);
-#else
event);
-#endif
}
if (gtk_widget_has_focus (widget))
{
label_bounds = eel_labeled_image_get_image_bounds (EEL_LABELED_IMAGE (widget));
gtk_paint_focus (style,
-#if GTK_CHECK_VERSION (3, 0, 0)
- cr,
-#else
window,
-#endif
GTK_STATE_NORMAL,
-#if !GTK_CHECK_VERSION (3, 0, 0)
&event->area,
-#endif
widget,
"eel-focusable-labeled-image",
label_bounds.x0, label_bounds.y0,
@@ -462,6 +497,7 @@ eel_labeled_image_expose_event (GtkWidget *widget,
return FALSE;
}
+#endif
static void
eel_labeled_image_map (GtkWidget *widget)