From 4da4ae80e489b477ec9913317a209f9ad8f9256a Mon Sep 17 00:00:00 2001 From: Bryson Steck Date: Sat, 12 Nov 2022 17:54:15 -0700 Subject: removed unwanted patches --- dwm.c | 206 ++++-------------------------------------------------------------- 1 file changed, 10 insertions(+), 196 deletions(-) (limited to 'dwm.c') diff --git a/dwm.c b/dwm.c index faf8d9a..30db5af 100644 --- a/dwm.c +++ b/dwm.c @@ -64,7 +64,7 @@ enum { NetSupported, NetWMName, NetWMState, NetWMCheck, NetWMFullscreen, NetActiveWindow, NetWMWindowType, NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */ enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */ -enum { ClkTagBar, ClkTabBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, +enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, ClkRootWin, ClkLast }; /* clicks */ typedef union { @@ -112,15 +112,12 @@ typedef struct { void (*arrange)(Monitor *); } Layout; -#define MAXTABS 50 - struct Monitor { char ltsymbol[16]; float mfact; int nmaster; int num; int by; /* bar geometry */ - int ty; /* tab bar geometry */ int mx, my, mw, mh; /* screen size */ int wx, wy, ww, wh; /* window area */ int gappx; /* gaps between windows */ @@ -129,15 +126,11 @@ struct Monitor { unsigned int tagset[2]; int showbar; int topbar; - int toptab; Client *clients; Client *sel; Client *stack; Monitor *next; Window barwin; - Window tabwin; - int ntabs; - int tab_widths[MAXTABS]; const Layout *lt[2]; }; @@ -162,7 +155,6 @@ static void checkotherwm(void); static void cleanup(void); static void cleanupmon(Monitor *mon); static void clientmessage(XEvent *e); -static void col(Monitor *); static void configure(Client *c); static void configurenotify(XEvent *e); static void configurerequest(XEvent *e); @@ -175,8 +167,6 @@ static void drawbar(Monitor *m); static void drawbars(void); static void enternotify(XEvent *e); static void expose(XEvent *e); -static void drawtab(Monitor *m); -static void drawtabs(void); static void focus(Client *c); static void focusin(XEvent *e); static void focusmon(const Arg *arg); @@ -254,7 +244,6 @@ static char stext[256]; static int screen; static int sw, sh; /* X display screen geometry width, height */ static int bh, blw = 0; /* bar geometry */ -static int th = 0; /* tab bar geometry */ static int lrpad; /* sum of left and right padding for text */ static int (*xerrorxlib)(Display *, XErrorEvent *); static unsigned int numlockmask = 0; @@ -412,9 +401,8 @@ arrange(Monitor *m) } void -arrangemon(Monitor *m) { - updatebarpos(m); - XMoveResizeWindow(dpy, m->tabwin, m->wx, m->ty, m->ww, th); +arrangemon(Monitor *m) +{ strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, sizeof m->ltsymbol); if (m->lt[m->sellt]->arrange) m->lt[m->sellt]->arrange(m); @@ -470,24 +458,7 @@ buttonpress(XEvent *e) click = ClkStatusText; else click = ClkWinTitle; - } - if(ev->window == selmon->tabwin) { - i = 0; x = 0; - for(c = selmon->clients; c; c = c->next){ - if(!ISVISIBLE(c)) continue; - x += selmon->tab_widths[i]; - if (ev->x > x) - ++i; - else - break; - if(i >= m->ntabs) break; - } - if(c) { - click = ClkTabBar; - arg.ui = i; - } - } - else if((c = wintoclient(ev->window))) { + } else if ((c = wintoclient(ev->window))) { focus(c); restack(selmon); XAllowEvents(dpy, ReplayPointer, CurrentTime); @@ -495,9 +466,8 @@ buttonpress(XEvent *e) } for (i = 0; i < LENGTH(buttons); i++) if (click == buttons[i].click && buttons[i].func && buttons[i].button == ev->button - && CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state)){ - buttons[i].func(((click == ClkTagBar || click == ClkTabBar) && buttons[i].arg.i == 0) ? &arg : &buttons[i].arg); - } + && CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state)) + buttons[i].func(click == ClkTagBar && buttons[i].arg.i == 0 ? &arg : &buttons[i].arg); } void @@ -552,8 +522,6 @@ cleanupmon(Monitor *mon) } XUnmapWindow(dpy, mon->barwin); XDestroyWindow(dpy, mon->barwin); - XUnmapWindow(dpy, mon->tabwin); - XDestroyWindow(dpy, mon->tabwin); free(mon); } @@ -804,105 +772,6 @@ drawbars(void) drawbar(m); } -void -drawtabs(void) { - Monitor *m; - - for(m = mons; m; m = m->next) - drawtab(m); -} - -static int -cmpint(const void *p1, const void *p2) { - /* The actual arguments to this function are "pointers to - pointers to char", but strcmp(3) arguments are "pointers - to char", hence the following cast plus dereference */ - return *((int*) p1) > * (int*) p2; -} - - -void -drawtab(Monitor *m) { - Client *c; - int i; - int itag = -1; - char view_info[50]; - int view_info_w = 0; - int sorted_label_widths[MAXTABS]; - int tot_width; - int maxsize = bh; - int x = 0; - int w = 0; - - //view_info: indicate the tag which is displayed in the view - for(i = 0; i < LENGTH(tags); ++i){ - if((selmon->tagset[selmon->seltags] >> i) & 1) { - if(itag >=0){ //more than one tag selected - itag = -1; - break; - } - itag = i; - } - } - - if(0 <= itag && itag < LENGTH(tags)){ - snprintf(view_info, sizeof view_info, "[%s]", tags[itag]); - } else { - strncpy(view_info, "[...]", sizeof view_info); - } - view_info[sizeof(view_info) - 1 ] = 0; - view_info_w = TEXTW(view_info); - tot_width = view_info_w; - - /* Calculates number of labels and their width */ - m->ntabs = 0; - for(c = m->clients; c; c = c->next){ - if(!ISVISIBLE(c)) continue; - m->tab_widths[m->ntabs] = TEXTW(c->name); - tot_width += m->tab_widths[m->ntabs]; - ++m->ntabs; - if(m->ntabs >= MAXTABS) break; - } - - if(tot_width > m->ww){ //not enough space to display the labels, they need to be truncated - memcpy(sorted_label_widths, m->tab_widths, sizeof(int) * m->ntabs); - qsort(sorted_label_widths, m->ntabs, sizeof(int), cmpint); - tot_width = view_info_w; - for(i = 0; i < m->ntabs; ++i){ - if(tot_width + (m->ntabs - i) * sorted_label_widths[i] > m->ww) - break; - tot_width += sorted_label_widths[i]; - } - maxsize = (m->ww - tot_width) / (m->ntabs - i); - } else{ - maxsize = m->ww; - } - i = 0; - for(c = m->clients; c; c = c->next){ - if(!ISVISIBLE(c)) continue; - if(i >= m->ntabs) break; - if(m->tab_widths[i] > maxsize) m->tab_widths[i] = maxsize; - w = m->tab_widths[i]; - drw_setscheme(drw, scheme[(c == m->sel) ? SchemeSel : SchemeNorm]); - drw_text(drw, x, 0, w, th, 0, c->name, 0); - x += w; - ++i; - } - - drw_setscheme(drw, scheme[SchemeNorm]); - - /* cleans interspace between window names and current viewed tag label */ - w = m->ww - view_info_w - x; - drw_text(drw, x, 0, w, th, 0, "", 0); - - /* view info */ - x += w; - w = view_info_w; - drw_text(drw, x, 0, w, th, 0, view_info, 0); - - drw_map(drw, m->tabwin, 0, 0, m->ww, th); -} - void enternotify(XEvent *e) { @@ -928,10 +797,8 @@ expose(XEvent *e) Monitor *m; XExposeEvent *ev = &e->xexpose; - if(ev->count == 0 && (m = wintomon(ev->window))){ + if (ev->count == 0 && (m = wintomon(ev->window))) drawbar(m); - drawtab(m); - } } void @@ -957,7 +824,6 @@ focus(Client *c) } selmon->sel = c; drawbars(); - drawtabs(); } /* there are some broken focus acquiring clients needing extra handling */ @@ -1391,14 +1257,12 @@ propertynotify(XEvent *e) case XA_WM_HINTS: updatewmhints(c); drawbars(); - drawtabs(); break; } if (ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMName]) { updatetitle(c); if (c == c->mon->sel) drawbar(c->mon); - drawtab(c->mon); } if (ev->atom == netatom[NetWMWindowType]) updatewindowtype(c); @@ -1513,7 +1377,6 @@ restack(Monitor *m) XWindowChanges wc; drawbar(m); - drawtab(m); if (!m->sel) return; if (m->sel->isfloating || !m->lt[m->sellt]->arrange) @@ -1718,7 +1581,6 @@ setup(void) die("no fonts could be loaded."); lrpad = drw->fonts->h; bh = drw->fonts->h + 2; - th = bh; updategeom(); /* init atoms */ utf8string = XInternAtom(dpy, "UTF8_STRING", False); @@ -1843,32 +1705,6 @@ tagmon(const Arg *arg) sendmon(selmon->sel, dirtomon(arg->i)); } -void -col(Monitor *m) -{ - unsigned int i, n, h, w, x, y, mw; - Client *c; - - for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++); - if (n == 0) - return; - - if (n > m->nmaster) - mw = m->nmaster ? m->ww * m->mfact : 0; - else - mw = m->ww; - for (i = x = y = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) - if (i < m->nmaster) { - w = (mw - x) / (MIN(n, m->nmaster) - i); - resize(c, x + m->wx, m->wy, w - (2 * c->bw), m->wh - (2 * c->bw), 0); - x += WIDTH(c); - } else { - h = (m->wh - y) / (n - i); - resize(c, x + m->wx, m->wy + y, m->ww - x - (2 * c->bw), h - (2 * c->bw), 0); - y += HEIGHT(c); - } -} - void tile(Monitor *m) { @@ -2015,11 +1851,6 @@ updatebars(void) CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa); XDefineCursor(dpy, m->barwin, cursor[CurNormal]->cursor); XMapRaised(dpy, m->barwin); - m->tabwin = XCreateWindow(dpy, root, m->wx, m->ty, m->ww, th, 0, DefaultDepth(dpy, screen), - CopyFromParent, DefaultVisual(dpy, screen), - CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa); - XDefineCursor(dpy, m->tabwin, cursor[CurNormal]->cursor); - XMapRaised(dpy, m->tabwin); XSetClassHint(dpy, m->barwin, &ch); } } @@ -2027,32 +1858,15 @@ updatebars(void) void updatebarpos(Monitor *m) { - Client *c; - int nvis = 0; - m->wy = m->my; m->wh = m->mh; if (m->showbar) { m->wh -= bh; m->by = m->topbar ? m->wy : m->wy + m->wh; - if ( m->topbar ) - m->wy += bh; + m->wy = m->topbar ? m->wy + bh : m->wy; } else { m->by = -bh; -} - - for(c = m->clients; c; c = c->next) { - if(ISVISIBLE(c)) ++nvis; - } - - if((nvis > 1) && (m->lt[m->sellt]->arrange == monocle)) { - m->wh -= th; - m->ty = m->toptab ? m->wy : m->wy + m->wh; - if ( m->toptab ) - m->wy += th; - } else { - m->ty = -th; - } + } } void @@ -2290,7 +2104,7 @@ wintomon(Window w) if (w == root && getrootptr(&x, &y)) return recttomon(x, y, 1, 1); for (m = mons; m; m = m->next) - if (w == m->barwin || w == m->tabwin) + if (w == m->barwin) return m; if ((c = wintoclient(w))) return c->mon; -- cgit v1.2.3