--- ./xfce-notify-window.orig.c 2011-07-01 00:41:58.000000000 +0400 +++ ./xfce-notify-window.c 2012-06-02 19:35:49.657086594 +0400 @@ -469,6 +469,9 @@ GList *children, *l; cairo_path_t *bg_path; + GdkColor *border_color = NULL; + gdouble border_width = DEFAULT_BORDER_WIDTH; + if(evt->count != 0) return FALSE; @@ -504,50 +507,52 @@ if(window->mouse_hover) { - GdkColor *border_color = NULL; - gdouble border_width = DEFAULT_BORDER_WIDTH; - gtk_widget_style_get(widget, "border-color", &border_color, "border-width", &border_width, NULL); - - cairo_set_operator(cr, CAIRO_OPERATOR_OVER); - if(border_color) - gdk_cairo_set_source_color(cr, border_color); - else - cairo_set_source_rgb(cr, 1.0, 1.0, 1.0); - cairo_set_line_width(cr, border_width); - - cairo_stroke(cr); - - /* draw a circle with an X in it */ - if(!window->close_btn_path) { - cairo_path_t *flat_path; - GdkFillRule fill_rule; - - cairo_arc(cr, widget->allocation.width - 12., 12., 7.5, 0., 2*M_PI); - window->close_btn_path = cairo_copy_path(cr); - - flat_path = cairo_copy_path_flat(cr); - fill_rule = (cairo_get_fill_rule(cr) == CAIRO_FILL_RULE_WINDING - ? GDK_WINDING_RULE : GDK_EVEN_ODD_RULE); - window->close_btn_region = xfce_gdk_region_from_cairo_flat_path(flat_path, - fill_rule); - cairo_path_destroy(flat_path); - } else - cairo_append_path(cr, window->close_btn_path); - cairo_set_line_width(cr, 1.5); - cairo_stroke(cr); - - cairo_move_to(cr, widget->allocation.width - 8., 8.); - cairo_line_to(cr, widget->allocation.width - 16., 16.); - cairo_stroke(cr); - cairo_move_to(cr, widget->allocation.width - 16., 8.); - cairo_line_to(cr, widget->allocation.width - 8., 16.); - cairo_stroke(cr); + } else { + gtk_widget_style_get(widget, + "border-width", &border_width, + NULL); } + /* draw notification border */ + cairo_set_operator(cr, CAIRO_OPERATOR_OVER); + if(border_color) + gdk_cairo_set_source_color(cr, border_color); + else + gdk_cairo_set_source_color(cr, &style->fg[GTK_STATE_NORMAL]); + cairo_set_line_width(cr, border_width); + + cairo_stroke(cr); + + /* draw a circle with an X in it */ + if(!window->close_btn_path) { + cairo_path_t *flat_path; + GdkFillRule fill_rule; + + cairo_arc(cr, widget->allocation.width - 12., 12., 7.5, 0., 2*M_PI); + window->close_btn_path = cairo_copy_path(cr); + + flat_path = cairo_copy_path_flat(cr); + fill_rule = (cairo_get_fill_rule(cr) == CAIRO_FILL_RULE_WINDING + ? GDK_WINDING_RULE : GDK_EVEN_ODD_RULE); + window->close_btn_region = xfce_gdk_region_from_cairo_flat_path(flat_path, + fill_rule); + cairo_path_destroy(flat_path); + } else + cairo_append_path(cr, window->close_btn_path); + cairo_set_line_width(cr, 1.5); + cairo_stroke(cr); + + cairo_move_to(cr, widget->allocation.width - 8., 8.); + cairo_line_to(cr, widget->allocation.width - 16., 16.); + cairo_stroke(cr); + cairo_move_to(cr, widget->allocation.width - 16., 8.); + cairo_line_to(cr, widget->allocation.width - 8., 16.); + cairo_stroke(cr); + cairo_destroy(cr); children = gtk_container_get_children(GTK_CONTAINER(widget));