Introduction
Introduction Statistics Contact Development Disclaimer Help
tadded configure(), but this doesn't really fix those frking broken SDL apps - …
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit b4d53bf194f9f9214b6c79d397d723ba53663b4b
parent 67bc08d1b938842d27d976da9bbbc210b1f860b7
Author: arg@mmvi <unknown>
Date: Tue, 26 Sep 2006 07:40:19 +0200
added configure(), but this doesn't really fix those frking broken SDL apps
Diffstat:
M client.c | 18 ++++++++++++++++++
M dwm.h | 1 +
M event.c | 21 ++++++++-------------
3 files changed, 27 insertions(+), 13 deletions(-)
---
diff --git a/client.c b/client.c
t@@ -81,6 +81,23 @@ ban(Client *c) {
}
void
+configure(Client *c) {
+ XEvent synev;
+
+ synev.type = ConfigureNotify;
+ synev.xconfigure.display = dpy;
+ synev.xconfigure.event = c->win;
+ synev.xconfigure.window = c->win;
+ synev.xconfigure.x = c->x;
+ synev.xconfigure.y = c->y;
+ synev.xconfigure.width = c->w;
+ synev.xconfigure.height = c->h;
+ synev.xconfigure.border_width = c->border;
+ synev.xconfigure.above = None;
+ XSendEvent(dpy, c->win, True, NoEventMask, &synev);
+}
+
+void
focus(Client *c) {
Client *old;
t@@ -299,6 +316,7 @@ resize(Client *c, Bool sizehints, Corner sticky) {
else
wc.border_width = 1;
XConfigureWindow(dpy, c->win, CWX | CWY | CWWidth | CWHeight | CWBorde…
+ configure(c);
XSync(dpy, False);
}
diff --git a/dwm.h b/dwm.h
t@@ -109,6 +109,7 @@ extern Window root, barwin;
/* client.c */
extern void ban(Client *c); /* ban c from screen */
+extern void configure(Client *c); /* send synthetic configure e…
extern void focus(Client *c); /* focus c, c may be NULL…
extern Client *getclient(Window w); /* return client of w */
extern Client *getctitle(Window w); /* return client of title w…
diff --git a/event.c b/event.c
t@@ -1,3 +1,4 @@
+#include <stdio.h>
/*
* (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
* See LICENSE file for license details.
t@@ -38,6 +39,7 @@ movemouse(Client *c) {
XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev);
switch (ev.type) {
case ButtonRelease:
+ resize(c, True, TopLeft);
XUngrabPointer(dpy, CurrentTime);
return;
case Expose:
t@@ -71,6 +73,7 @@ resizemouse(Client *c) {
XMaskEvent(dpy, MOUSEMASK | ExposureMask, &ev);
switch(ev.type) {
case ButtonRelease:
+ resize(c, True, TopLeft);
XUngrabPointer(dpy, CurrentTime);
return;
case Expose:
t@@ -151,6 +154,7 @@ configurerequest(XEvent *e) {
XEvent synev;
XWindowChanges wc;
+ fputs("configurerequest\n", stderr);
if((c = getclient(ev->window))) {
c->ismax = False;
gravitate(c, True);
t@@ -172,19 +176,8 @@ configurerequest(XEvent *e) {
newmask = ev->value_mask & (~(CWSibling | CWStackMode | CWBord…
if(newmask)
XConfigureWindow(dpy, c->win, newmask, &wc);
- else {
- synev.type = ConfigureNotify;
- synev.xconfigure.display = dpy;
- synev.xconfigure.event = c->win;
- synev.xconfigure.window = c->win;
- synev.xconfigure.x = c->x;
- synev.xconfigure.y = c->y;
- synev.xconfigure.width = c->w;
- synev.xconfigure.height = c->h;
- synev.xconfigure.border_width = c->border;
- synev.xconfigure.above = None;
- XSendEvent(dpy, c->win, True, NoEventMask, &synev);
- }
+ else
+ configure(c);
XSync(dpy, False);
if(c->isfloat)
resize(c, False, TopLeft);
t@@ -218,6 +211,7 @@ enternotify(XEvent *e) {
Client *c;
XCrossingEvent *ev = &e->xcrossing;
+ fputs("enternotify\n", stderr);
if(ev->mode != NotifyNormal || ev->detail == NotifyInferior)
return;
t@@ -305,6 +299,7 @@ propertynotify(XEvent *e) {
Window trans;
XPropertyEvent *ev = &e->xproperty;
+ fputs("propertynotify\n", stderr);
if(ev->state == PropertyDelete)
return; /* ignore */
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.