mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-16 13:40:31 +00:00
widget: Include box-shadow in the clip
This allows all widgets that implement clip to use box shadows.
This commit is contained in:
parent
0cd63faee2
commit
f5b1e75d93
@ -1013,7 +1013,7 @@ _gtk_css_style_property_init_properties (void)
|
||||
gtk_css_style_property_register ("box-shadow",
|
||||
GTK_CSS_PROPERTY_BOX_SHADOW,
|
||||
G_TYPE_NONE,
|
||||
GTK_STYLE_PROPERTY_ANIMATED | GTK_STYLE_PROPERTY_NO_RESIZE,
|
||||
GTK_STYLE_PROPERTY_ANIMATED,
|
||||
shadow_value_parse,
|
||||
NULL,
|
||||
NULL,
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include "gtkclipboard.h"
|
||||
#include "gtkcssstylepropertyprivate.h"
|
||||
#include "gtkcssnumbervalueprivate.h"
|
||||
#include "gtkcssshadowsvalueprivate.h"
|
||||
#include "gtkintl.h"
|
||||
#include "gtkmarshalers.h"
|
||||
#include "gtkselectionprivate.h"
|
||||
@ -15447,10 +15448,22 @@ union_with_clip (GtkWidget *widget,
|
||||
void
|
||||
_gtk_widget_set_simple_clip (GtkWidget *widget)
|
||||
{
|
||||
GtkStyleContext *context;
|
||||
GtkAllocation clip;
|
||||
GtkBorder extents;
|
||||
|
||||
context = gtk_widget_get_style_context (widget);
|
||||
|
||||
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))
|
||||
gtk_container_forall (GTK_CONTAINER (widget), union_with_clip, &clip);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user