widget: Include box-shadow in the clip
This allows all widgets that implement clip to use box shadows.
This commit is contained in:
@ -1013,7 +1013,7 @@ _gtk_css_style_property_init_properties (void)
|
|||||||
gtk_css_style_property_register ("box-shadow",
|
gtk_css_style_property_register ("box-shadow",
|
||||||
GTK_CSS_PROPERTY_BOX_SHADOW,
|
GTK_CSS_PROPERTY_BOX_SHADOW,
|
||||||
G_TYPE_NONE,
|
G_TYPE_NONE,
|
||||||
GTK_STYLE_PROPERTY_ANIMATED | GTK_STYLE_PROPERTY_NO_RESIZE,
|
GTK_STYLE_PROPERTY_ANIMATED,
|
||||||
shadow_value_parse,
|
shadow_value_parse,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
#include "gtkclipboard.h"
|
#include "gtkclipboard.h"
|
||||||
#include "gtkcssstylepropertyprivate.h"
|
#include "gtkcssstylepropertyprivate.h"
|
||||||
#include "gtkcssnumbervalueprivate.h"
|
#include "gtkcssnumbervalueprivate.h"
|
||||||
|
#include "gtkcssshadowsvalueprivate.h"
|
||||||
#include "gtkintl.h"
|
#include "gtkintl.h"
|
||||||
#include "gtkmarshalers.h"
|
#include "gtkmarshalers.h"
|
||||||
#include "gtkselectionprivate.h"
|
#include "gtkselectionprivate.h"
|
||||||
@ -15447,10 +15448,22 @@ union_with_clip (GtkWidget *widget,
|
|||||||
void
|
void
|
||||||
_gtk_widget_set_simple_clip (GtkWidget *widget)
|
_gtk_widget_set_simple_clip (GtkWidget *widget)
|
||||||
{
|
{
|
||||||
|
GtkStyleContext *context;
|
||||||
GtkAllocation clip;
|
GtkAllocation clip;
|
||||||
|
GtkBorder extents;
|
||||||
|
|
||||||
|
context = gtk_widget_get_style_context (widget);
|
||||||
|
|
||||||
gtk_widget_get_allocation (widget, &clip);
|
gtk_widget_get_allocation (widget, &clip);
|
||||||
|
|
||||||
|
_gtk_css_shadows_value_get_extents (_gtk_style_context_peek_property (context,
|
||||||
|
GTK_CSS_PROPERTY_BOX_SHADOW),
|
||||||
|
&extents);
|
||||||
|
clip.x -= extents.left;
|
||||||
|
clip.y -= extents.top;
|
||||||
|
clip.width += extents.left + extents.right;
|
||||||
|
clip.height += extents.top + extents.bottom;
|
||||||
|
|
||||||
if (GTK_IS_CONTAINER (widget))
|
if (GTK_IS_CONTAINER (widget))
|
||||||
gtk_container_forall (GTK_CONTAINER (widget), union_with_clip, &clip);
|
gtk_container_forall (GTK_CONTAINER (widget), union_with_clip, &clip);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user