add an obscured flag that tracks if the frame is at all obscured

This commit is contained in:
Dana Jansens 2003-08-20 23:01:56 +00:00
parent 888df2e10c
commit a09984bbc0
3 changed files with 10 additions and 1 deletions

View file

@ -621,6 +621,9 @@ static void event_handle_client(ObClient *client, XEvent *e)
ObFrameContext con;
switch (e->type) {
case VisibilityNotify:
client->frame->obscured = e->xvisibility.state != VisibilityUnobscured;
break;
case ButtonPress:
case ButtonRelease:
/* Wheel buttons don't draw because they are an instant click, so it

View file

@ -8,7 +8,8 @@
#define PLATE_EVENTMASK (SubstructureRedirectMask | ButtonPressMask)
#define FRAME_EVENTMASK (EnterWindowMask | LeaveWindowMask | \
ButtonPressMask | ButtonReleaseMask)
ButtonPressMask | ButtonReleaseMask | \
VisibilityChangeMask)
#define ELEMENT_EVENTMASK (ButtonPressMask | ButtonReleaseMask | \
ButtonMotionMask | ExposureMask | \
EnterWindowMask | LeaveWindowMask)
@ -36,6 +37,7 @@ ObFrame *frame_new()
self = g_new(ObFrame, 1);
self->visible = FALSE;
self->obscured = TRUE;
self->decorations = 0;
/* create all of the decor windows */

View file

@ -54,6 +54,10 @@ struct _ObFrame
Strut size;
Rect area;
gboolean visible;
/*! Whether the window is obscured at all or fully visible. */
gboolean obscured;
guint decorations;
Window title;