Alopex

Check-in [321eb79d01]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:gtk3 fix + clear rootwin name after reading
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | master
Files: files | file ages | folders
SHA3-256: 321eb79d01967a3aa53d436a60d799a20e7b00a366340593a26d1bf73b4c904c
User & Date: jesse@mccluresk9.com 2014-03-26 02:55:36
Context
2014-03-29
18:45
fixed typo in configurerequest which lead to incorrect window sizes check-in: 4575c6d08f user: jesse@mccluresk9.com tags: trunk, master
2014-03-26
02:55
gtk3 fix + clear rootwin name after reading check-in: 321eb79d01 user: jesse@mccluresk9.com tags: trunk, master
2014-03-22
20:39
typo in year check-in: 8cb8cf2ca6 user: jesse@mccluresk9.com tags: trunk, master
Changes

Added paper.docx.

cannot compute difference between binary files

Changes to src/xlib.c.

463
464
465
466
467
468
469
470
471
472


473
474
475
476
477
478
479


480
481
482
483

484
485
486
487
488
489
490
491

492
493
494
495

496
497
498
499
500
501
502
...
594
595
596
597
598
599
600
601



602
603
604
605
606
607
608
		if (b == 1) { c->x += dx; c->y += dy; }
		else if (b == 3) { c->w += dx; c->h += dy; }
	}
	XUngrabPointer(dpy, CurrentTime);
}

void configurerequest(XEvent *ev) {
fprintf(stderr,"CONFIGURE\n");
	XConfigureRequestEvent *e = &ev->xconfigurerequest;
	Client *c;


	if ( (c=wintoclient(e->window)) ) {
		if ( (e->value_mask & CWWidth) && (e->value_mask & CWHeight) ) {
			if ( (e->width == m->w) && (e->height == m->h) ) {
				c->flags |= WIN_FULL;
				tile();
			}
			else {


				if (e->value_mask & CWWidth) c->w = e->width;
				if (e->value_mask & CWHeight) c->w = e->height;
				// TODO x and y
			}

		}
	}
	if (!c || (c->flags & WIN_FLOAT) ) {
fprintf(stderr,"-- CONFIGURE\n");
if (e->window == root) return;
fprintf(stderr,">> CONFIGURE\n");
		XWindowChanges wc;
		wc.x=e->x; wc.y=e->y; wc.width=e->width; wc.height=e->height;

		wc.sibling = e->above; wc.stack_mode = e->detail;
		XConfigureWindow(dpy, e->window, e->value_mask, &wc);
		XFlush(dpy);
	}

}

void enternotify(XEvent *ev) {
	if (mons->next) {
		int x = ev->xcrossing.x_root;
		int y = ev->xcrossing.y_root;
		Monitor *M;
................................................................................

void propertynotify(XEvent *ev) {
	XPropertyEvent *e = &ev->xproperty;
	Client *c;
	if (e->window == root) {
		char *cmd;
		if (!XFetchName(dpy, root, &cmd)) return;
		if (strncmp("ALOPEX: ", cmd, 8) == 0) command(cmd + 8);



		if (cmd) XFree(cmd);
		return;
	}
	if ( !(c=wintoclient(e->window)) ) return;
	if (e->atom == XA_WM_NAME) get_name(c);
	else if (e->atom == XA_WM_HINTS) get_hints(c);
	else if (e->atom == XA_WM_CLASS) apply_rules(c);







<


>
>

|
|
|
<
|
|
>
>
|
|
<
|
>
|
<
<
<
|
<
<
<
>
|
|
<
<
>







 







|
>
>
>







463
464
465
466
467
468
469

470
471
472
473
474
475
476
477

478
479
480
481
482
483

484
485
486



487



488
489
490


491
492
493
494
495
496
497
498
...
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
		if (b == 1) { c->x += dx; c->y += dy; }
		else if (b == 3) { c->w += dx; c->h += dy; }
	}
	XUngrabPointer(dpy, CurrentTime);
}

void configurerequest(XEvent *ev) {

	XConfigureRequestEvent *e = &ev->xconfigurerequest;
	Client *c;
	XWindowChanges wc;
	wc.x=e->x; wc.y=e->y; wc.width=e->width; wc.height=e->height;
	if ( (c=wintoclient(e->window)) ) {
		if ( (e->value_mask & (CWWidth | CWHeight)) &&
				(e->width == m->w) && (e->height == m->h) ) {
			c->flags |= WIN_FULL;

		}
		else {
			if (e->value_mask & CWX) c->x = e->x;
			if (e->value_mask & CWY) c->x = e->y;
			if (e->value_mask & CWWidth) c->w = e->width;
			if (e->value_mask & CWHeight) c->w = e->height;

		}
		wc.x=c->x; wc.y=c->y; wc.width=c->w; wc.height=c->h;
	}



	if (e->window == root) return;



	wc.sibling = e->above;
	wc.stack_mode = e->detail;
	XConfigureWindow(dpy, e->window, e->value_mask, &wc);


	tile();
}

void enternotify(XEvent *ev) {
	if (mons->next) {
		int x = ev->xcrossing.x_root;
		int y = ev->xcrossing.y_root;
		Monitor *M;
................................................................................

void propertynotify(XEvent *ev) {
	XPropertyEvent *e = &ev->xproperty;
	Client *c;
	if (e->window == root) {
		char *cmd;
		if (!XFetchName(dpy, root, &cmd)) return;
		if (strncmp("ALOPEX: ", cmd, 8) == 0) {
			XStoreName(dpy, root, "");
			command(cmd + 8);
		}
		if (cmd) XFree(cmd);
		return;
	}
	if ( !(c=wintoclient(e->window)) ) return;
	if (e->atom == XA_WM_NAME) get_name(c);
	else if (e->atom == XA_WM_HINTS) get_hints(c);
	else if (e->atom == XA_WM_CLASS) apply_rules(c);