aboutsummaryrefslogtreecommitdiff
path: root/generic
diff options
context:
space:
mode:
Diffstat (limited to 'generic')
-rw-r--r--generic/Window.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/generic/Window.c b/generic/Window.c
index a380026..063b446 100644
--- a/generic/Window.c
+++ b/generic/Window.c
@@ -63,6 +63,9 @@ typedef struct _WindowItemStruct {
static ZnAttrConfig wind_attrs[] = {
{ ZN_CONFIG_ANCHOR, "-anchor", NULL,
Tk_Offset(WindowItemStruct, anchor), 0, ZN_COORDS_FLAG, False },
+ { ZN_CONFIG_BOOL, "-composealpha", NULL,
+ Tk_Offset(WindowItemStruct, header.flags), COMPOSE_ALPHA_BIT,
+ ZN_DRAW_FLAG, False },
{ ZN_CONFIG_BOOL, "-composerotation", NULL,
Tk_Offset(WindowItemStruct, header.flags), COMPOSE_ROTATION_BIT,
ZN_COORDS_FLAG, False },
@@ -84,7 +87,7 @@ static ZnAttrConfig wind_attrs[] = {
{ ZN_CONFIG_BOOL, "-sensitive", NULL,
Tk_Offset(WindowItemStruct, header.flags), SENSITIVE_BIT,
ZN_REPICK_FLAG, False },
- { ZN_CONFIG_TAGS, "-tags", NULL,
+ { ZN_CONFIG_TAG_LIST, "-tags", NULL,
Tk_Offset(WindowItemStruct, header.tags), 0, 0, False },
{ ZN_CONFIG_BOOL, "-visible", NULL,
Tk_Offset(WindowItemStruct, header.flags), VISIBLE_BIT,
@@ -184,6 +187,7 @@ Init(Item item,
/* Init attributes */
SET(item->flags, VISIBLE_BIT);
SET(item->flags, SENSITIVE_BIT);
+ SET(item->flags, COMPOSE_ALPHA_BIT); /* N.A */
SET(item->flags, COMPOSE_ROTATION_BIT);
SET(item->flags, COMPOSE_SCALE_BIT);
item->priority = DEFAULT_WINDOW_PRIORITY; /* N.A */
@@ -411,10 +415,7 @@ ComputeCoordinates(Item item,
*/
static int
ToArea(Item item,
- ZnBBox *area,
- Tk_Uid tag_uid,
- int enclosed,
- ZnBool report)
+ ZnToArea ta)
{
WindowItem wind = (WindowItem) item;
ZnBBox box;
@@ -428,7 +429,7 @@ ToArea(Item item,
box.corner.x = box.orig.x + w;
box.corner.y = box.orig.y + h;
- return BBoxInBBox(&box, area);
+ return BBoxInBBox(&box, ta->area);
}
/*
@@ -514,16 +515,13 @@ IsSensitive(Item item,
*/
static double
Pick(Item item,
- ZnPoint *p,
- Item start_item,
- int aperture,
- Item *a_item,
- int *part)
+ ZnPick ps)
{
WindowItem wind = (WindowItem) item;
ZnBBox box;
ZnReal dist = 1e40;
-
+ ZnPoint *p = ps->point;
+
box.orig = wind->pos_dev;
if (wind->win != NULL) {
box.corner.x = box.orig.x + wind->real_width;
@@ -657,7 +655,6 @@ Coords(Item item,
*/
static ItemClassStruct WINDOW_ITEM_CLASS = {
sizeof(WindowItemStruct),
- False, /* has_fields */
0, /* num_parts */
True, /* has_anchors */
"window",