Alopex

Check-in [2fe58d9125]

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

Overview
Comment:stack bar windows properly
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | master
Files: files | file ages | folders
SHA3-256:2fe58d9125374f51cdf2843f6643f77fd3fe2a6251b96b25d3f4f780c5eda849
User & Date: jesse@mccluresk9.com 2014-03-20 18:07:36
Context
2014-03-20
20:37
converted shorthand letters to human readable "script" language check-in: 835dfddbe2 user: jesse@mccluresk9.com tags: trunk, master
18:07
stack bar windows properly check-in: 2fe58d9125 user: jesse@mccluresk9.com tags: trunk, master
2014-03-15
22:20
patching up monitor margins check-in: 0b518c1e05 user: jesse@mccluresk9.com tags: trunk, master
Changes

Changes to share/config.

1
2
3

4
5
6
7
8
9
10
!! Alopex resource database
!! By: Jesse McClure (c) 2014
!! License: CC-BY-SA


! including a specific theme file (rather than all three) will
!  slghtly reduce memory use.  By default all three are included
#include "/usr/share/alopex/themes"

!----- Theme name -----!
! Used to apply theme specific settings, defaults to icecap



>







1
2
3
4
5
6
7
8
9
10
11
!! Alopex resource database
!! By: Jesse McClure (c) 2014
!! License: CC-BY-SA
!!   http://creativecommons.org/licenses/by-sa/4.0/

! including a specific theme file (rather than all three) will
!  slghtly reduce memory use.  By default all three are included
#include "/usr/share/alopex/themes"

!----- Theme name -----!
! Used to apply theme specific settings, defaults to icecap

Changes to src/xlib.c.

116
117
118
119
120
121
122


123
124
125
126
127
128
129
...
156
157
158
159
160
161
162


163
164
165
166
167
168
169
...
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
	Pixmap pix = XCreatePixmap(dpy, root, maxX-minX, maxY-minY,
			DefaultDepth(dpy,scr));
	dest = cairo_xlib_surface_create(dpy, pix, DefaultVisual(dpy,scr),
			maxX-minX, maxY-minY);
	cairo_t *ctx, *rctx;
	rctx = cairo_create(dest);
	Monitor *M;


	for(i = 0; i < n; i++) {
		M = &mons[i];
		if (i < n - 1) M->next = &mons[i+1];
		M->gap = conf.gap;
		M->split = conf.split;
		M->container = calloc(ncounts, sizeof(Container));
		M->focus = mons[i].container;
................................................................................
			C->bar->h = conf.bar_opts & BAR_HEIGHT;
			C->bar->buf = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
					C->bar->w, C->bar->h);
			C->bar->ctx = cairo_create(C->bar->buf);
			cairo_set_font_face(C->bar->ctx, conf.font);
			cairo_set_font_size(C->bar->ctx, conf.font_size);
			C->win = XCreateSimpleWindow(dpy,root,0,0,M->w,C->bar->h,0,0,0);


			XSelectInput(dpy, C->win, SELECT_EVENTS);
			t = cairo_xlib_surface_create(dpy, C->win,
					DefaultVisual(dpy,scr), M->w, C->bar->h);
			C->ctx = cairo_create(t);
			cairo_surface_destroy(t);
			XMapWindow(dpy, C->win);
		}
................................................................................

int set_focus() {
	Client *cc, *c = winmarks[1];
	if (!c) return 1;
	Window win; int rev;
	/* raise window */
	if (c->flags & WIN_FLOAT) {
		//XRaiseWindow(dpy, c->win);
		/* work around for fullscreen SDL windows */
		XWindowChanges wc;
		wc.stack_mode = Above;
		wc.sibling = m->container->win;
		XConfigureWindow(dpy, c->win, CWSibling | CWStackMode, &wc);
		for (cc = clients; cc; cc = cc->next) {
			if (cc->tags & m->tags && (cc->flags & WIN_FLOAT)) {
				wc.sibling = cc->win;







>
>







 







>
>







 







<
<







116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
...
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
...
233
234
235
236
237
238
239


240
241
242
243
244
245
246
	Pixmap pix = XCreatePixmap(dpy, root, maxX-minX, maxY-minY,
			DefaultDepth(dpy,scr));
	dest = cairo_xlib_surface_create(dpy, pix, DefaultVisual(dpy,scr),
			maxX-minX, maxY-minY);
	cairo_t *ctx, *rctx;
	rctx = cairo_create(dest);
	Monitor *M;
	XWindowChanges wc;
	wc.stack_mode = Below;
	for(i = 0; i < n; i++) {
		M = &mons[i];
		if (i < n - 1) M->next = &mons[i+1];
		M->gap = conf.gap;
		M->split = conf.split;
		M->container = calloc(ncounts, sizeof(Container));
		M->focus = mons[i].container;
................................................................................
			C->bar->h = conf.bar_opts & BAR_HEIGHT;
			C->bar->buf = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
					C->bar->w, C->bar->h);
			C->bar->ctx = cairo_create(C->bar->buf);
			cairo_set_font_face(C->bar->ctx, conf.font);
			cairo_set_font_size(C->bar->ctx, conf.font_size);
			C->win = XCreateSimpleWindow(dpy,root,0,0,M->w,C->bar->h,0,0,0);
			if (j == 0) wc.sibling = C->win;
			else XConfigureWindow(dpy, C->win, CWSibling | CWStackMode, &wc);
			XSelectInput(dpy, C->win, SELECT_EVENTS);
			t = cairo_xlib_surface_create(dpy, C->win,
					DefaultVisual(dpy,scr), M->w, C->bar->h);
			C->ctx = cairo_create(t);
			cairo_surface_destroy(t);
			XMapWindow(dpy, C->win);
		}
................................................................................

int set_focus() {
	Client *cc, *c = winmarks[1];
	if (!c) return 1;
	Window win; int rev;
	/* raise window */
	if (c->flags & WIN_FLOAT) {


		XWindowChanges wc;
		wc.stack_mode = Above;
		wc.sibling = m->container->win;
		XConfigureWindow(dpy, c->win, CWSibling | CWStackMode, &wc);
		for (cc = clients; cc; cc = cc->next) {
			if (cc->tags & m->tags && (cc->flags & WIN_FLOAT)) {
				wc.sibling = cc->win;