{
/* make sure we get just the latest event */
XMotionEvent *ev = &e->xmotion;
- printf("BTN_MV(w: 0x%lx x: %d y: %d rx: %d ry: %d)\n", ev->window, ev->x, ev->y, ev->x_root, ev->y_root);
+// printf("BTN_MV(w: 0x%lx x: %d y: %d rx: %d ry: %d)\n", ev->window, ev->x, ev->y, ev->x_root, ev->y_root);
while (XCheckTypedWindowEvent(X.disp, ev->window, ev->type, e));
Mouse_Drag(ev);
static void XConfigRequest(XEvent* e)
{
XConfigureRequestEvent* ev = &(e->xconfigurerequest);
- printf("CONF(w: 0x%lx x: %d y: %d w: %d h: %d)\n", ev->window, ev->x, ev->y, ev->width, ev->height);
+// printf("CONF(w: 0x%lx x: %d y: %d w: %d h: %d)\n", ev->window, ev->x, ev->y, ev->width, ev->height);
XWindowChanges wc;
wc.x = ev->x;
wc.y = ev->y;
{
XClientMessageEvent* ev = &(e->xclient);
printf("CLIENT_MSG(w: 0x%lx a: '%s')\n", ev->window, XGetAtomName(X.disp, ev->message_type));
-// if (ev->message_type == _NET_ACTIVE_WINDOW)
-// {
-//// mons_activate(ev->window);
-// }
+ if (ev->message_type == _NET_ACTIVE_WINDOW)
+ {
+// mons_activate(ev->window);
+ }
+ else if (ev->message_type == _NET_WM_STATE)
+ {
+ printf(" %ld\n", ev->data.l[0]);
+ printf(" %s\n", XGetAtomName(X.disp, ev->data.l[1]));
+ EWMH_UpdateWindowStateFlags(
+ ev->window, ev->data.l[0], ev->data.l[1]);
+ }
}
static void XPropNotify(XEvent* e)
XExposeEvent* ev = &(e->xexpose);
if (ev->count == 0)
{
- printf("EXPOSE(w: 0x%lx)\n", ev->window);
+// printf("EXPOSE(w: 0x%lx)\n", ev->window);
Client* c = Client_Find(ev->window);
if (c)
{
/* initialize all the things */
Atoms_Init();
- EWMH_Init();
InitCursors();
InitFont();
Client_InitAll();
int EWMH_GetWindowTypeFlags(Window w);
int EWMH_GetWindowStateFlags(Window w);
void EWMH_SetWindowStateFlags(Window w, int flags);
+void EWMH_UpdateWindowStateFlags(Window w, int op, Atom prop);
//void EWMH_GetWindowStrut(Strut* strut);
int EWMH_GetWindowPid(Window w);
void EWMH_SetWindowFrameExtents(Window w, int left, int right, int top, int bottom);
int minheight = (shaded || !floating ? MIN_HEIGHT : 3*MIN_HEIGHT);
if (c->w < minheight) c->w = minheight;
if (c->h < minheight) c->h = minheight;
- printf("XMoveResize(0x%lx, %d, %d, %d, %d)\n", c->frame, c->x, c->y, c->w, c->h);
+// printf("XMoveResize(0x%lx, %d, %d, %d, %d)\n", c->frame, c->x, c->y, c->w, c->h);
XMoveResizeWindow(X.disp, c->frame, c->x, c->y, c->w, (shaded ? minheight : c->h));
if ( !(c->flags & F_SHADED) )
{
int child_h = c->h - FRAME_HEIGHT_SUM;
if (child_w < 1) c->w = 1;
if (child_h < 1) c->h = 1;
- printf("XResize(0x%lx, %d, %d)\n", c->win, c->w, c->h);
+// printf("XResize(0x%lx, %d, %d)\n", c->win, c->w, c->h);
XResizeWindow(X.disp, c->win, child_w, child_h);
}
Client_Place(c);
WriteFlagHint(w, _NET_WM_STATE, WindowStates, nelem(WindowStates), flags);
}
+void EWMH_UpdateWindowStateFlags(Window w, int op, Atom prop)
+{
+ (void)w, (void)op, (void)prop;
+}
+
+
//void EWMH_GetWindowStrut(Strut* strut)
//{
// // Read _NET_WM_STRUT_PARTIAL