diff --git a/.gitignore b/.gitignore index 879b07e..197070b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,7 @@ -wmx-6pl1.tar.gz -wmx-defaults.tar.gz +wmx-defaults-1.tar.gz +wmx-7.tar.gz +/wmx-7.tar.gz +/wmx-defaults-1.tar.gz +/wmx-defaults-2.tar.gz +/wmx-8.tar.gz +/wmx-defaults-3.tar.gz diff --git a/Xclients.wmx.sh b/Xclients.wmx.sh old mode 100755 new mode 100644 diff --git a/background.xpm b/background.xpm index 377bdf7..cc36fa1 100644 --- a/background.xpm +++ b/background.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char *background[] = { +static const char *background[] = { /* width height num_colors chars_per_pixel */ " 80 80 27 1", /* colors */ diff --git a/sources b/sources index 185bab4..b43253b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -212297d70acef90bbc9dac254de39cb8 wmx-6pl1.tar.gz -2cf73db613197fcc27304f71e188eb19 wmx-defaults.tar.gz +52a0e31b9a77e227eb6dc732f7941f15 wmx-8.tar.gz +d5d5e760039fce77133abff54ce97cc1 wmx-defaults-3.tar.gz diff --git a/wmx-6pl1-64b.patch b/wmx-6pl1-64b.patch deleted file mode 100644 index 7a81e60..0000000 --- a/wmx-6pl1-64b.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- wmx-6pl1/Client.C.64b 2006-02-16 11:07:31.909626084 -0600 -+++ wmx-6pl1/Client.C 2006-02-16 11:08:02.499956573 -0600 -@@ -663,7 +663,7 @@ - } - - --int Client::getAtomProperty(Atom a, Atom type) -+size_t Client::getAtomProperty(Atom a, Atom type) - { - char **p, *x; - if (getProperty_aux(display(), m_window, a, type, 1L, -@@ -673,7 +673,7 @@ - - x = *p; - XFree((void *)p); -- return (int)x; -+ return (size_t)x; - } - - ---- wmx-6pl1/Client.h.64b 2006-02-16 11:07:37.465322869 -0600 -+++ wmx-6pl1/Client.h 2006-02-16 11:08:19.883007902 -0600 -@@ -184,7 +184,7 @@ - WindowManager *const m_windowManager; - - char *getProperty(Atom); -- int getAtomProperty(Atom, Atom); -+ size_t getAtomProperty(Atom, Atom); - int getIntegerProperty(Atom); - - // accessors diff --git a/wmx-6pl1-cfgbug.patch b/wmx-6pl1-cfgbug.patch deleted file mode 100644 index 2ed40a6..0000000 --- a/wmx-6pl1-cfgbug.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -NarU5 wmx-6pl1.orig/Config.C wmx-6pl1/Config.C ---- wmx-6pl1.orig/Config.C 2006-06-04 14:23:33.000000000 -0400 -+++ wmx-6pl1/Config.C 2006-06-04 14:25:03.000000000 -0400 -@@ -149,13 +149,25 @@ - if (OPTION("off")) m_impl->rightBt = 0; - else if (OPTION("circulate")) m_impl->rightBt = 1; - else if (OPTION("lower")) m_impl->rightBt = 2; - else if (OPTION("toggleheight")) m_impl->rightBt = 4; - -- if (OPTION("tabfg:")) strncpy(m_impl->tabfg, s, COLOR_LEN); -- if (OPTION("tabbg:")) strncpy(m_impl->tabbg, s, COLOR_LEN); -- if (OPTION("framebg:")) strncpy(m_impl->framebg, s, COLOR_LEN); -+ if (OPTION("tabfg:")) { -+ strncpy(m_impl->tabfg, s, COLOR_LEN); -+ m_impl->tabfg[COLOR_LEN-1] = '\0'; // prevent unterminated string -+ s += strlen(m_impl->tabfg); // avoid error message below -+ } -+ if (OPTION("tabbg:")) { -+ strncpy(m_impl->tabbg, s, COLOR_LEN); -+ m_impl->tabbg[COLOR_LEN-1] = '\0'; -+ s += strlen(m_impl->tabbg); -+ } -+ if (OPTION("framebg:")) { -+ strncpy(m_impl->framebg, s, COLOR_LEN); -+ m_impl->framebg[COLOR_LEN-1] = '\0'; -+ s += strlen(m_impl->framebg); -+ } - - if (*s != '\0') { - fprintf(stderr, "\nwmx: Dynamic configuration error: " - "`%s' @ position %d", s, string - s); - } diff --git a/wmx-6pl1-cvs20060602.patch b/wmx-6pl1-cvs20060602.patch deleted file mode 100644 index ee2cf1b..0000000 --- a/wmx-6pl1-cvs20060602.patch +++ /dev/null @@ -1,1629 +0,0 @@ -diff -NarU5 wmx-6pl1/Border.C wmx-cvs-2006-06-02/Border.C ---- wmx-6pl1/Border.C 2001-04-04 05:02:34.000000000 -0400 -+++ wmx-cvs-2006-06-02/Border.C 2003-08-14 08:54:22.000000000 -0400 -@@ -84,13 +84,15 @@ - if (!m_parent) fprintf(stderr,"wmx: zero parent in Border::~Border\n"); - else { - XDestroyWindow(display(), m_tab); - XDestroyWindow(display(), m_button); - XDestroyWindow(display(), m_parent); -- -- // bad window if its parent has already gone: - XDestroyWindow(display(), m_resize); -+ -+ if (m_feedback) { -+ XDestroyWindow(display(), m_feedback); -+ } - } - } - - if (m_label) free(m_label); - } -@@ -748,15 +750,14 @@ - rl.append(rl.item(rl.count()-2)); - rl.remove(rl.count()-3); - } - - int final = rl.count(); -- rl.append(rl.item(final-1)); -- rl.item(final).x -= 1; -- rl.item(final).y += rl.item(final).height; -- rl.item(final).width += 1; -- rl.item(final).height = h - rl.item(final).height + 2; -+ rl.append(rl.item(final-1).x - 1, -+ rl.item(final-1).y + rl.item(final-1).height, -+ rl.item(final-1).width + 1, -+ h - rl.item(final-1).height + 2); - - XShapeCombineRectangles(display(), m_parent, ShapeBounding, - 0, 0, rl.xrectangles(), rl.count(), - visible ? ShapeUnion : ShapeSubtract, YXSorted); - rl.remove_all(); -diff -NarU5 wmx-6pl1/Buttons.C wmx-cvs-2006-06-02/Buttons.C ---- wmx-6pl1/Buttons.C 2001-04-24 04:56:39.000000000 -0400 -+++ wmx-cvs-2006-06-02/Buttons.C 2003-08-14 09:07:12.000000000 -0400 -@@ -16,18 +16,18 @@ - enum {Vertical, Maximum, Horizontal}; - setScreenFromPointer(); - Client *c = windowToClient(e->window); - - #if CONFIG_GNOME_BUTTON_COMPLIANCE == False -- if (e->button == Button3 && m_channelChangeTime == 0) { -- if (dConfig.rightCirculate()) -+ if (e->button == CONFIG_CIRCULATE_BUTTON && m_channelChangeTime == 0) { -+ if (DynamicConfig::config.rightCirculate()) - circulate(e->window == e->root); -- else if (dConfig.rightLower()) -+ else if (DynamicConfig::config.rightLower()) - { - if (e->window != e->root && c) c->lower(); - } -- else if (dConfig.rightToggleHeight()) -+ else if (DynamicConfig::config.rightToggleHeight()) - { - if (e->window != e->root && c) { - if (c->isFullHeight()) { - c->unmaximise(Vertical); - } else { -@@ -37,73 +37,73 @@ - } - return; - } - #endif - -- if (e->button == Button4 && CONFIG_CHANNEL_SURF) { -+ if (e->button == CONFIG_NEXTCHANNEL_BUTTON && CONFIG_CHANNEL_SURF) { - // wheel "up" - increase channel - flipChannel(False, False, True, c); - return ; -- } else if (e->button == Button5 && CONFIG_CHANNEL_SURF) { -+ } else if (e->button == CONFIG_PREVCHANNEL_BUTTON && CONFIG_CHANNEL_SURF) { - // wheel "down" - decrease channel - flipChannel(False, True, True, c); - return ; - } - - if (e->window == e->root) { - - #if CONFIG_GNOME_BUTTON_COMPLIANCE != False -- if ((e->button == Button1 || e->button == Button3) -+ if ((e->button == CONFIG_CLIENTMENU_BUTTON || e->button == CONFIG_CIRCULATE_BUTTON) - && m_channelChangeTime == 0) { - - XUngrabPointer(m_display, CurrentTime); - XSendEvent(m_display, gnome_win, False, SubstructureNotifyMask, ev); - return; - } - -- if (e->button == Button2 && m_channelChangeTime == 0) { -+ if (e->button == CONFIG_COMMANDMENU_BUTTON && m_channelChangeTime == 0) { - ClientMenu menu(this, (XEvent *)e); - return; - } - #endif - -- if (e->button == Button1 && m_channelChangeTime == 0) { -+ if (e->button == CONFIG_CLIENTMENU_BUTTON && m_channelChangeTime == 0) { - ClientMenu menu(this, (XEvent *)e); - - } else if (e->x > DisplayWidth(display(), screen()) - - CONFIG_CHANNEL_CLICK_SIZE && - e->y < CONFIG_CHANNEL_CLICK_SIZE) { - -- if (e->button == Button2) { -+ if (e->button == CONFIG_COMMANDMENU_BUTTON) { - #if CONFIG_USE_CHANNEL_MENU - ChannelMenu(this, (XEvent *)e); - #else - if (m_channelChangeTime == 0) flipChannel(True, False, False, 0); - else flipChannel(False, False, False, 0); - -- } else if (e->button == Button1 && m_channelChangeTime != 0) { -+ } else if (e->button == CONFIG_CLIENTMENU_BUTTON && m_channelChangeTime != 0) { - - flipChannel(False, True, False, 0); - #endif - } - -- } else if (e->button == Button2 && m_channelChangeTime == 0) { -- dConfig.scan(); -+ } else if (e->button == CONFIG_COMMANDMENU_BUTTON && m_channelChangeTime == 0) { -+ DynamicConfig::config.scan(); - CommandMenu menu(this, (XEvent *)e); - } - - } else if (c) { - -- if (e->button == Button2 && CONFIG_CHANNEL_SURF) { -+ if (e->button == CONFIG_COMMANDMENU_BUTTON && CONFIG_CHANNEL_SURF) { - #if CONFIG_USE_CHANNEL_MENU - ChannelMenu menu(this, (XEvent *)e); - #else - if (m_channelChangeTime == 0) flipChannel(True, False, False, 0); - else flipChannel(False, False, False, c); - #endif - return; -- } else if (e->button == Button1 && m_channelChangeTime != 0) { -+ } else if (e->button == CONFIG_CLIENTMENU_BUTTON && m_channelChangeTime != 0) { - // allow left-button to push down a channel --cc 19991001 - flipChannel(False, True, False, c); - return; - } - -@@ -230,11 +230,11 @@ - - if (ev->state & m_altModMask) { - - if (!m_altPressed) { - // oops! bug -- fprintf(stderr, "wmx: Alt key record in inconsistent state\n"); -+// fprintf(stderr, "wmx: Alt key record in inconsistent state\n"); - m_altPressed = True; - m_altStateRetained = False; - // fprintf(stderr, "state is %ld, mask is %ld\n", - // (long)ev->state, (long)m_altModMask); - } -@@ -252,15 +252,15 @@ - // when adding a key it must be added in both places - - switch (key) { - - case CONFIG_FLIP_DOWN_KEY: -- flipChannel(False, True, False, 0); -+ flipChannel(False, True, True, 0); - break; - - case CONFIG_FLIP_UP_KEY: -- flipChannel(False, False, False, 0); -+ flipChannel(False, False, True, 0); - break; - - case CONFIG_CIRCULATE_KEY: - circulate(False); - break; -@@ -463,19 +463,23 @@ - - Boolean wasTop = windowManager()->isTop(this); - - mapRaised(); - -- if (e->button == Button1) { -+ if (e->button == CONFIG_CLIENTMENU_BUTTON) { - if (m_border->hasWindow(e->window)) { -- - m_border->eventButton(e); -+ } else { -+ e->x += m_border->xIndent(); -+ e->y += m_border->yIndent(); -+ move(e); - } - } - -- if (CONFIG_RAISELOWER_ON_CLICK && wasTop && !doSomething) -+ if (CONFIG_RAISELOWER_ON_CLICK && wasTop && !m_doSomething) { - lower(); -+ } - - if (!isNormal() || isActive() || e->send_event) return; - activate(); - } - -@@ -560,11 +564,11 @@ - - XEvent event; - Boolean found; - struct timeval sleepval; - -- doSomething = False; -+ m_doSomething = False; - while (!done) { - - found = False; - - while (XCheckMaskEvent(display(), DragMask | ExposureMask, &event)) { -@@ -572,11 +576,11 @@ - if (event.type != MotionNotify) break; - } - - if (!found) { - sleepval.tv_sec = 0; -- sleepval.tv_usec = 50000; -+ sleepval.tv_usec = 1000; - select(0, 0, 0, 0, &sleepval); - continue; - } - - switch (event.type) { -@@ -591,17 +595,17 @@ - break; - - case ButtonPress: - // don't like this - XUngrabPointer(display(), event.xbutton.time); -- doSomething = False; -+ m_doSomething = False; - done = True; - break; - - case ButtonRelease: - -- if (!nobuttons(&event.xbutton)) doSomething = False; -+ if (!nobuttons(&event.xbutton)) m_doSomething = False; - - m_windowManager->releaseGrab(&event.xbutton); - done = True; - break; - -@@ -610,11 +614,11 @@ - int nx = event.xbutton.x - e->x; - int ny = event.xbutton.y - e->y; - - if (nx != x || ny != y) { - -- if (doSomething) { // so x,y have sensible values already -+ if (m_doSomething) { // so x,y have sensible values already - - // bumping! - - if (nx < x && nx <= 0 && nx > -CONFIG_BUMP_DISTANCE) nx = 0; - if (ny < y && ny <= 0 && ny > -CONFIG_BUMP_DISTANCE) ny = 0; -@@ -630,19 +634,19 @@ - x = nx; - y = ny; - - geometry.update(x, y); - m_border->moveTo(x + xi, y + yi); -- doSomething = True; -+ m_doSomething = True; - } - break; - } - } - - geometry.remove(); - -- if (doSomething) { -+ if (m_doSomething) { - m_x = x + xi; - m_y = y + yi; - } - - if (CONFIG_CLICK_TO_FOCUS) activate(); -@@ -710,11 +714,11 @@ - XEvent event; - Boolean found; - Boolean done = False; - struct timeval sleepval; - -- doSomething = False; -+ m_doSomething = False; - while (!done) { - - found = False; - - while (XCheckMaskEvent(display(), DragMask | ExposureMask, &event)) { -@@ -722,11 +726,11 @@ - if (event.type != MotionNotify) break; - } - - if (!found) { - sleepval.tv_sec = 0; -- sleepval.tv_usec = 50000; -+ sleepval.tv_usec = 10000; - select(0, 0, 0, 0, &sleepval); - continue; - } - - switch (event.type) { -@@ -766,38 +770,38 @@ - if (h == prevH && w == prevW) break; - m_border->configure(m_x, m_y, w, h, CWWidth | CWHeight, 0); - if (CONFIG_RESIZE_UPDATE) - XResizeWindow(display(), m_window, w, h); - geometry.update(dw, dh); -- doSomething = True; -+ m_doSomething = True; - - } else if (vertical) { - prevH = h; h = y - m_y; - fixResizeDimensions(w, h, dw, dh); - if (h == prevH) break; - m_border->configure(m_x, m_y, w, h, CWHeight, 0); - if (CONFIG_RESIZE_UPDATE) - XResizeWindow(display(), m_window, w, h); - geometry.update(dw, dh); -- doSomething = True; -+ m_doSomething = True; - - } else { - prevW = w; w = x - m_x; - fixResizeDimensions(w, h, dw, dh); - if (w == prevW) break; - m_border->configure(m_x, m_y, w, h, CWWidth, 0); - if (CONFIG_RESIZE_UPDATE) - XResizeWindow(display(), m_window, w, h); - geometry.update(dw, dh); -- doSomething = True; -+ m_doSomething = True; - } - - break; - } - } - -- if (doSomething) { -+ if (m_doSomething) { - - geometry.remove(); - - if (vertical && horizontal) { - m_w = x - m_x; -diff -NarU5 wmx-6pl1/Buttons.C.rej wmx-cvs-2006-06-02/Buttons.C.rej ---- wmx-6pl1/Buttons.C.rej 2001-04-24 04:58:31.000000000 -0400 -+++ wmx-cvs-2006-06-02/Buttons.C.rej 1969-12-31 19:00:00.000000000 -0500 -@@ -1,75 +0,0 @@ --*************** --*** 173,179 **** -- m_altStateRetained = False; -- } -- --! #ifdef CONFIG_WANT_SUNKEYS -- #ifdef CONFIG_QUICKRAISE_KEY -- if (key == CONFIG_QUICKRAISE_KEY && c) { -- ----- 173,179 ---- -- m_altStateRetained = False; -- } -- --! #if CONFIG_WANT_SUNKEYS -- #ifdef CONFIG_QUICKRAISE_KEY -- if (key == CONFIG_QUICKRAISE_KEY && c) { -- --*************** --*** 184,202 **** -- } -- -- } else --! #endif CONFIG_QUICKRAISE_KEY -- #ifdef CONFIG_QUICKHIDE_KEY -- if (key == CONFIG_QUICKHIDE_KEY && c) { -- c->hide(); -- -- } else --! #endif CONFIG_QUICKHIDE_KEY -- #ifdef CONFIG_QUICKCLOSE_KEY -- if (key == CONFIG_QUICKCLOSE_KEY && c) { -- c->kill(); -- -- } else --! #endif CONFIG_QUICKCLOSE_KEY -- #ifdef CONFIG_QUICKHEIGHT_KEY -- if (key == CONFIG_QUICKHEIGHT_KEY && c) { -- ----- 184,202 ---- -- } -- -- } else --! #endif // CONFIG_QUICKRAISE_KEY -- #ifdef CONFIG_QUICKHIDE_KEY -- if (key == CONFIG_QUICKHIDE_KEY && c) { -- c->hide(); -- -- } else --! #endif // CONFIG_QUICKHIDE_KEY -- #ifdef CONFIG_QUICKCLOSE_KEY -- if (key == CONFIG_QUICKCLOSE_KEY && c) { -- c->kill(); -- -- } else --! #endif // CONFIG_QUICKCLOSE_KEY -- #ifdef CONFIG_QUICKHEIGHT_KEY -- if (key == CONFIG_QUICKHEIGHT_KEY && c) { -- --*************** --*** 207,213 **** -- } -- -- } else --! #endif //CONFIG_QUICKHEIGHT_KEY -- #if CONFIG_WANT_SUNPOWERKEY -- if (key == SunXK_PowerSwitch) { -- pid_t pid = fork(); ----- 207,213 ---- -- } -- -- } else --! #endif // CONFIG_QUICKHEIGHT_KEY -- #if CONFIG_WANT_SUNPOWERKEY -- if (key == SunXK_PowerSwitch) { -- pid_t pid = fork(); -diff -NarU5 wmx-6pl1/Channel.C wmx-cvs-2006-06-02/Channel.C ---- wmx-6pl1/Channel.C 2001-04-24 04:58:31.000000000 -0400 -+++ wmx-cvs-2006-06-02/Channel.C 2003-08-17 09:56:59.000000000 -0400 -@@ -42,13 +42,14 @@ - XSetWindowAttributes wa; - wa.background_pixel = nearest.pixel; - wa.override_redirect = True; - - m_channelWindow[sc] = XCreateWindow -- (display(), mroot(sc), 0, 0, 1, 1, 0, CopyFromParent, CopyFromParent, -+ (display(), mroot(sc), -+ 0, 0, 1, 1, 0, CopyFromParent, CopyFromParent, - CopyFromParent, CWOverrideRedirect | CWBackPixel, &wa); -- } -+ } - } - - - int nextChannel; - -@@ -66,11 +67,11 @@ - XRectangle r; - Boolean first = True; - char number[7]; - sprintf(number, "%d", nextChannel); - -- for (i = 0; i < strlen(number); ++i) { -+ for (i = 0; i < (int)strlen(number); ++i) { - for (y = 0; y < 7; ++y) { - for (x = 0; x < 5; ++x) { - if (numerals[number[i]-'0'][y][x] != ' ') { - /* - r.x = i * 110 + x * 20; r.y = y * 20; -@@ -109,15 +110,15 @@ - - if (!statusOnly) { - - ClientList considering; - -- for (i = m_orderedClients.count()-1; i >= 0; --i) { -+ for (i = (int)m_orderedClients.count()-1; i >= 0; --i) { - considering.append(m_orderedClients.item(i)); - } - -- for (i = 0; i < considering.count(); ++i) { -+ for (i = 0; i < (int)considering.count(); ++i) { - if (considering.item(i) == push || considering.item(i)->isSticky() - #if CONFIG_USE_WINDOW_GROUPS - || (push && - push->hasWindow(considering.item(i)->groupParent())) - #endif -diff -NarU5 wmx-6pl1/Channel.C.orig wmx-cvs-2006-06-02/Channel.C.orig ---- wmx-6pl1/Channel.C.orig 2000-05-24 11:46:14.000000000 -0400 -+++ wmx-cvs-2006-06-02/Channel.C.orig 1969-12-31 19:00:00.000000000 -0500 -@@ -1,220 +0,0 @@ -- --#include "Manager.h" --#include "Client.h" --#include -- --static char *numerals[10][7] = { -- { " ### ", "# #", "# ##", "# # #", "## #", "# #", " ### " }, -- { " # ", " ## ", " # ", " # ", " # ", " # ", " ### " }, -- { " ### ", "# #", " #", " ## ", " # ", "# ", "#####" }, -- { "#####", " # ", " # ", " ### ", " #", " #", "#### " }, -- { " # ", " ## ", " # # ", "# # ", "#####", " # ", " # " }, -- { "#####", "# ", "#### ", " #", " #", " #", "#### " }, -- { " ## ", " # ", "# ", "#### ", "# #", "# #", " ### " }, -- { "#####", " #", " # ", " # ", " # ", " # ", " # " }, -- { " ### ", "# #", "# #", " ### ", "# #", "# #", " ### " }, -- { " ### ", "# #", "# #", " ####", " #", " # ", " ## " } --}; -- -- --void WindowManager::flipChannel(Boolean statusOnly, Boolean flipDown, -- Boolean quickFlip, Client *push) --{ -- int x, y, i, sc; -- if (!CONFIG_CHANNEL_SURF) return; -- -- for(sc = 0; sc < screensTotal(); sc++) -- { -- if (!m_channelWindow[sc]) { -- -- XColor nearest, ideal; -- -- if (!XAllocNamedColor(display(), DefaultColormap(display(), sc), -- CONFIG_CHANNEL_NUMBER, &nearest, &ideal)) { -- -- if (!XAllocNamedColor(display(), DefaultColormap(display(), sc), -- "black", &nearest, &ideal)) { -- -- fatal("Couldn't allocate green or black"); -- } -- } -- -- XSetWindowAttributes wa; -- wa.background_pixel = nearest.pixel; -- wa.override_redirect = True; -- -- m_channelWindow[sc] = XCreateWindow -- (display(), mroot(sc), 0, 0, 1, 1, 0, CopyFromParent, CopyFromParent, -- CopyFromParent, CWOverrideRedirect | CWBackPixel, &wa); -- } -- } -- -- -- int nextChannel; -- -- if (statusOnly) nextChannel = m_currentChannel; -- else { -- if (!flipDown) { -- nextChannel = m_currentChannel + 1; -- if (nextChannel > m_channels) nextChannel = 1; -- } else { -- nextChannel = m_currentChannel - 1; -- if (nextChannel < 1) nextChannel = m_channels; -- } -- } -- -- XRectangle r; -- Boolean first = True; -- char number[7]; -- sprintf(number, "%d", nextChannel); -- -- for (i = 0; i < strlen(number); ++i) { -- for (y = 0; y < 7; ++y) { -- for (x = 0; x < 5; ++x) { -- if (numerals[number[i]-'0'][y][x] != ' ') { --/* -- r.x = i * 110 + x * 20; r.y = y * 20; -- r.width = r.height = 20; -- */ -- r.x = 10 + (i * 6 + x) * CONFIG_CHANNEL_NUMBER_SIZE; -- r.y = y * CONFIG_CHANNEL_NUMBER_SIZE; -- r.width = r.height = CONFIG_CHANNEL_NUMBER_SIZE; -- for(sc = 0; sc < screensTotal(); sc++) -- { -- XShapeCombineRectangles -- (display(), m_channelWindow[sc], ShapeBounding, -- 0, 0, &r, 1, first ? ShapeSet : ShapeUnion, -- YXBanded); -- } -- first = False; -- } -- } -- } -- } -- -- for(sc = 0; sc < screensTotal(); sc++) -- { --/* -- XMoveResizeWindow(display(), m_channelWindow[sc], -- DisplayWidth(display(), sc) - 30 - -- 110 * strlen(number), 30, 500, 160); -- */ -- -- XMoveResizeWindow(display(), m_channelWindow[sc], -- DisplayWidth(display(), sc) - 30 - -- (5 * CONFIG_CHANNEL_NUMBER_SIZE + 10) * -- strlen(number), 30, 500, 160); -- XMapRaised(display(), m_channelWindow[sc]); -- } -- -- if (!statusOnly) { -- -- ClientList considering; -- -- for (i = m_orderedClients.count()-1; i >= 0; --i) { -- considering.append(m_orderedClients.item(i)); -- } -- -- for (i = 0; i < considering.count(); ++i) { -- if (considering.item(i) == push || considering.item(i)->isSticky() --#ifdef CONFIG_USE_WINDOW_GROUPS -- || (push && -- push->hasWindow(considering.item(i)->groupParent())) --#endif -- ) { -- considering.item(i)->setChannel(nextChannel); -- } else { -- considering.item(i)->flipChannel(True, nextChannel); -- } -- } -- -- considering.remove_all(); -- } -- -- m_currentChannel = nextChannel; -- m_channelChangeTime = timestamp(True) + -- (quickFlip ? CONFIG_QUICK_FLIP_DELAY : CONFIG_FLIP_DELAY); -- --#if CONFIG_GNOME_COMPLIANCE != False -- gnomeUpdateChannelList(); --#endif --} -- -- --void WindowManager::instateChannel() --{ -- int i; -- m_channelChangeTime = 0; -- for(i = 0; i < screensTotal(); i++) -- { -- XUnmapWindow(display(), m_channelWindow[i]); -- } -- -- ClientList considering; -- -- for (i = m_orderedClients.count()-1; i >= 0; --i) { -- considering.append(m_orderedClients.item(i)); -- } -- -- for (i = 0; i < considering.count(); ++i) { -- considering.item(i)->flipChannel(False, m_currentChannel); -- if (considering.item(i)->channel() == m_channels && -- !considering.item(i)->isSticky()) createNewChannel(); -- } -- -- if (m_activeClient && m_activeClient->channel() != channel()) { -- m_activeClient = 0; -- } -- -- checkChannel(m_channels-1); --} -- -- --void WindowManager::checkChannel(int ch) --{ -- if (m_channels <= 2 || ch < m_channels - 1) return; -- -- for (int i = m_orderedClients.count()-1; i >= 0; --i) { -- if (m_orderedClients.item(i)->channel() == ch) return; -- } -- -- --m_channels; -- --#if CONFIG_GNOME_COMPLIANCE != False -- gnomeUpdateChannelList(); --#endif -- -- if (m_currentChannel > m_channels) m_currentChannel = m_channels; -- -- checkChannel(ch - 1); --} -- -- --void WindowManager::createNewChannel() --{ -- ++m_channels; --#if CONFIG_GNOME_COMPLIANCE != False -- gnomeUpdateChannelList(); --#endif -- --} -- --void WindowManager::gotoChannel(int channel, Client *push) --{ -- if (channel == m_currentChannel) { -- flipChannel(True, False, False, 0); -- return; -- } -- -- if (channel > 0 && channel <= m_channels) { -- -- while (m_currentChannel != channel) { -- if (m_channels < channel) { -- flipChannel(False, False, True, push); -- } else { -- flipChannel(False, True, True, push); -- } -- XSync(display(), False); -- } -- } --} -diff -NarU5 wmx-6pl1/Client.C wmx-cvs-2006-06-02/Client.C ---- wmx-6pl1/Client.C 2000-05-12 03:40:20.000000000 -0400 -+++ wmx-cvs-2006-06-02/Client.C 2003-08-12 10:50:47.000000000 -0400 -@@ -73,11 +73,11 @@ - } - - - Client::~Client() - { -- // empty -+ delete m_border; - } - - - Boolean Client::hasWindow(Window w) - { -@@ -107,13 +107,10 @@ - windowManager()->skipInRevert(this, m_revert); - - if (isHidden()) unhide(False); - windowManager()->removeFromOrderedList(this); - -- delete m_border; -- m_window = None; -- - if (isActive()) { - if (CONFIG_CLICK_TO_FOCUS) { - if (m_revert) { - windowManager()->setActiveClient(m_revert); - m_revert->activate(); -@@ -121,10 +118,12 @@ - } else { - windowManager()->setActiveClient(0); - } - } - -+ m_window = None; -+ - if (m_colormapWinCount > 0) { - XFree((char *)m_colormapWindows); - free((char *)m_windowColormaps); // not allocated through X - } - -@@ -212,10 +211,15 @@ - }; - - XGrabKey(display(), XKeysymToKeycode(display(), CONFIG_ALT_KEY), - 0, m_window, True, GrabModeAsync, GrabModeAsync); - -+ // for dragging windows from anywhere with Alt pressed -+ XGrabButton(display(), Button1, -+ m_windowManager->altModMask(), m_window, False, 0, -+ GrabModeAsync, GrabModeSync, None, None); -+ - for (i = 0; i < sizeof(keys)/sizeof(keys[0]); ++i) { - keycode = XKeysymToKeycode(display(), keys[i]); - if (keycode) { - XGrabKey(display(), keycode, - m_windowManager->altModMask()|LockMask|Mod2Mask, -@@ -513,15 +517,17 @@ - if (isActive()) { - decorate(True); - if (CONFIG_AUTO_RAISE || CONFIG_RAISE_ON_FOCUS) mapRaised(); - return; - } -- -+/*!!! - if (activeClient()) { - activeClient()->deactivate(); - // & some other-screen business - } -+*/ -+ windowManager()->setActiveClient(this); // deactivates any other - - XUngrabButton(display(), AnyButton, AnyModifier, parent()); - - XSetInputFocus(display(), m_window, RevertToPointerRoot, - windowManager()->timestamp(False)); -@@ -536,11 +542,11 @@ - windowManager()->skipInRevert(this, m_revert); - - m_revert = activeClient(); - while (m_revert && !m_revert->isNormal()) m_revert = m_revert->revertTo(); - -- windowManager()->setActiveClient(this); -+//!!! windowManager()->setActiveClient(this); - decorate(True); - - installColormap(); // new! - } - -@@ -1213,10 +1219,13 @@ - if (CONFIG_MAD_FEEDBACK) { - removeFeedback(isNormal()); // mostly it won't be there anyway, but... - } - - if (!isNormal()) return; -+ if (activeClient() == this) { -+ windowManager()->setActiveClient(0); -+ } - m_unmappedForChannel = True; - XUnmapWindow(display(), m_window); - withdraw(False); - return; - -diff -NarU5 wmx-6pl1/Client.h wmx-cvs-2006-06-02/Client.h ---- wmx-6pl1/Client.h 2001-04-24 04:58:31.000000000 -0400 -+++ wmx-cvs-2006-06-02/Client.h 2003-08-12 10:49:35.000000000 -0400 -@@ -136,11 +136,11 @@ - int m_w; - int m_h; - int m_bw; - Window m_wroot; - int m_screen; -- Boolean doSomething; // Become true if move() or resize() made -+ Boolean m_doSomething; // Become true if move() or resize() made - // effect to this client. - - int m_channel; - Boolean m_unmappedForChannel; - Boolean m_sticky; -diff -NarU5 wmx-6pl1/Config.C wmx-cvs-2006-06-02/Config.C ---- wmx-6pl1/Config.C 2000-03-02 08:56:35.000000000 -0500 -+++ wmx-cvs-2006-06-02/Config.C 2003-08-14 09:07:12.000000000 -0400 -@@ -5,11 +5,14 @@ - #include - #include - #include - #include - --DynamicConfig DynamicConfig::dynamicConfig; -+// 32 is enough to fit even "light goldenrod yellow" comfortably -+#define COLOR_LEN 32 -+ -+DynamicConfig DynamicConfig::config; - - struct DynamicConfigImpl - { - char options[1000]; // Old options-string - char path[1000]; // Path to Options-Link -@@ -19,10 +22,13 @@ - char menu; // 0 = no unmapped, 1 = everything - char feedback; // 0 = no , 1 = yes - int feeddelay; - char disable; // 0 = New Window option, 1 = no New - char rightBt; // 0 = disable, 1 = circulate, 2 = lower, 4 = height -+ char tabfg[COLOR_LEN]; // black -+ char tabbg[COLOR_LEN]; // gray80 -+ char framebg[COLOR_LEN]; // gray95 - }; - - DynamicConfig::DynamicConfig() : m_impl(new DynamicConfigImpl) - { - strcpy(m_impl->options, ""); -@@ -55,10 +61,13 @@ - m_impl->menu = 1; // 0 = no unmapped, 1 = everything - m_impl->feedback = 1; // 0 = no , 1 = yes - m_impl->feeddelay = 300; - m_impl->disable = 0; // 0 = allow New window, 1 = don't - m_impl->rightBt = 1; // 0 = disable, 1 = circulate, 2 = lower -+ strcpy(m_impl->tabfg, "black"); -+ strcpy(m_impl->tabbg, "gray80"); -+ strcpy(m_impl->framebg, "gray95"); - - scan(1); - } - - DynamicConfig::~DynamicConfig() -@@ -76,10 +85,13 @@ - int DynamicConfig::feedbackDelay() { return m_impl->feeddelay; } - char DynamicConfig::disableNew() { return m_impl->disable & 1; } - char DynamicConfig::rightCirculate() { return m_impl->rightBt & 1; } - char DynamicConfig::rightLower() { return m_impl->rightBt & 2; } - char DynamicConfig::rightToggleHeight() { return m_impl->rightBt & 4; } -+char *DynamicConfig::tabForeground() { return m_impl->tabfg; } -+char *DynamicConfig::tabBackground() { return m_impl->tabbg; } -+char *DynamicConfig::frameBackground() { return m_impl->framebg; } - - void DynamicConfig::scan(char startup) - { - char temp[1000]; - memset(temp, 0, 1000); -@@ -137,16 +149,20 @@ - if (OPTION("off")) m_impl->rightBt = 0; - else if (OPTION("circulate")) m_impl->rightBt = 1; - else if (OPTION("lower")) m_impl->rightBt = 2; - else if (OPTION("toggleheight")) m_impl->rightBt = 4; - -+ if (OPTION("tabfg:")) strncpy(m_impl->tabfg, s, COLOR_LEN); -+ if (OPTION("tabbg:")) strncpy(m_impl->tabbg, s, COLOR_LEN); -+ if (OPTION("framebg:")) strncpy(m_impl->framebg, s, COLOR_LEN); -+ - if (*s != '\0') { - fprintf(stderr, "\nwmx: Dynamic configuration error: " - "`%s' @ position %d", s, string - s); - } - -- } while (s = strtok(NULL, "/")); -+ } while ((s = strtok(NULL, "/"))); - - fprintf(stderr, "\n"); - - #undef OPTION - } -diff -NarU5 wmx-6pl1/config.cache wmx-cvs-2006-06-02/config.cache ---- wmx-6pl1/config.cache 2001-04-23 08:09:21.000000000 -0400 -+++ wmx-cvs-2006-06-02/config.cache 1969-12-31 19:00:00.000000000 -0500 -@@ -1,26 +0,0 @@ --# This file is a shell script that caches the results of configure --# tests run on this system so they can be shared between configure --# scripts and configure runs. It is not useful on other systems. --# If it contains results you don't want to keep, you may remove or edit it. --# --# By default, configure uses ./config.cache as the cache file, --# creating it if it does not exist already. You can give configure --# the --cache-file=FILE option to use a different cache file; that is --# what configure does when it calls configure scripts in --# subdirectories, so they share the cache. --# Giving --cache-file=/dev/null disables caching, for debugging configure. --# config.status only pays attention to the cache file if you give it the --# --recheck option to rerun configure. --# --ac_cv_have_x=${ac_cv_have_x='have_x=yes ac_x_includes=/usr/X11R6/include ac_x_libraries=/usr/X11R6/lib'} --ac_cv_lib_X11_XOpenDisplay=${ac_cv_lib_X11_XOpenDisplay='yes'} --ac_cv_lib_Xext_XShapeQueryExtension=${ac_cv_lib_Xext_XShapeQueryExtension='yes'} --ac_cv_lib_Xpm_XpmCreatePixmapFromData=${ac_cv_lib_Xpm_XpmCreatePixmapFromData='yes'} --ac_cv_path_TWM=${ac_cv_path_TWM='/usr/X11R6/bin/twm'} --ac_cv_prog_CXX=${ac_cv_prog_CXX='c++'} --ac_cv_prog_CXXCPP=${ac_cv_prog_CXXCPP='c++ -E'} --ac_cv_prog_cxx_cross=${ac_cv_prog_cxx_cross='no'} --ac_cv_prog_cxx_g=${ac_cv_prog_cxx_g='yes'} --ac_cv_prog_cxx_works=${ac_cv_prog_cxx_works='yes'} --ac_cv_prog_gxx=${ac_cv_prog_gxx='yes'} --ac_cv_prog_make_make_set=${ac_cv_prog_make_make_set='yes'} -diff -NarU5 wmx-6pl1/Config.h wmx-cvs-2006-06-02/Config.h ---- wmx-6pl1/Config.h 2001-04-23 11:48:31.000000000 -0400 -+++ wmx-cvs-2006-06-02/Config.h 2003-08-14 09:07:12.000000000 -0400 -@@ -49,41 +49,42 @@ - int feedbackDelay(); - char disableNew(); - char rightCirculate(); - char rightLower(); - char rightToggleHeight(); -+ char *tabForeground(); -+ char *tabBackground(); -+ char *frameBackground(); - -- static DynamicConfig dynamicConfig; -+ static DynamicConfig config; - - private: - DynamicConfigImpl *m_impl; - void update(char *); - }; - --static DynamicConfig &dConfig = DynamicConfig::dynamicConfig; -- - - // ================================================= - // Section I. Straightforward operational parameters - // ================================================= - - // List visible as well as hidden clients on the root menu? (Visible - // ones will be towards the bottom of the menu, flush-right.) --#define CONFIG_EVERYTHING_ON_ROOT_MENU (dConfig.fullMenu()) -+#define CONFIG_EVERYTHING_ON_ROOT_MENU (DynamicConfig::config.fullMenu()) - - // Spawn a temporary new shell between the wm and each new process? - #define CONFIG_EXEC_USING_SHELL False - - // What to run to get a new window (from the "New" menu option) - #define CONFIG_NEW_WINDOW_LABEL "New" --//#define CONFIG_NEW_WINDOW_COMMAND "xterm" --#define CONFIG_NEW_WINDOW_COMMAND "/home/chris/.wmx/terminal" -+#define CONFIG_NEW_WINDOW_COMMAND "xterm" -+//#define CONFIG_NEW_WINDOW_COMMAND "/home/ccannam/.wmx/terminal" - #define CONFIG_NEW_WINDOW_COMMAND_OPTIONS 0 - // or, for example, - //#define CONFIG_NEW_WINDOW_COMMAND_OPTIONS "-ls","-sb","-sl","1024",0 - // alternatively, --#define CONFIG_DISABLE_NEW_WINDOW_COMMAND (dConfig.disableNew()) -+#define CONFIG_DISABLE_NEW_WINDOW_COMMAND (DynamicConfig::config.disableNew()) - - // Area where [exit wmx] is added (0 -> everywhere -# -> px from other side) - #define CONFIG_EXIT_CLICK_SIZE_X 0 - #define CONFIG_EXIT_CLICK_SIZE_Y -3 - -@@ -101,24 +102,24 @@ - // You can't have CLICK_TO_FOCUS without RAISE_ON_FOCUS, but the other - // combinations should be okay. If you set AUTO_RAISE you must leave - // the other two False; you'll then get focus-follows, auto-raise, and - // a delay on auto-raise as configured in the DELAY settings below. - --#define CONFIG_CLICK_TO_FOCUS (dConfig.clickFocus()) --#define CONFIG_RAISE_ON_FOCUS (dConfig.raiseFocus()) --#define CONFIG_AUTO_RAISE (dConfig.autoRaiseFocus()) -+#define CONFIG_CLICK_TO_FOCUS (DynamicConfig::config.clickFocus()) -+#define CONFIG_RAISE_ON_FOCUS (DynamicConfig::config.raiseFocus()) -+#define CONFIG_AUTO_RAISE (DynamicConfig::config.autoRaiseFocus()) - - // Delays when using AUTO_RAISE focus method - // - // In theory these only apply when using AUTO_RAISE, not when just - // using RAISE_ON_FOCUS without CLICK_TO_FOCUS. First of these is the - // usual delay before raising; second is the delay after the pointer - // has stopped moving (only when over simple X windows such as xvt). - --#define CONFIG_AUTO_RAISE_DELAY (dConfig.raiseDelay()) -+#define CONFIG_AUTO_RAISE_DELAY (DynamicConfig::config.raiseDelay()) - #define CONFIG_POINTER_STOPPED_DELAY 80 --#define CONFIG_DESTROY_WINDOW_DELAY 1000 -+#define CONFIG_DESTROY_WINDOW_DELAY 600 - - // Number of pixels off the screen you have to push a window - // before the manager notices the window is off-screen (the higher - // the value, the easier it is to place windows at the screen edges) - -@@ -171,17 +172,17 @@ - // ======================== - // Section II. Key bindings - // ======================== - - // Allow keyboard control? --#define CONFIG_USE_KEYBOARD (dConfig.useKeyboard()) -+#define CONFIG_USE_KEYBOARD (DynamicConfig::config.useKeyboard()) - - // This is the key for wm controls: e.g. Alt/Left and Alt/Right to - // flip channels, and Alt/Tab to switch windows. (On my 105-key - // PC keyboard, Meta_L corresponds to the left Windows key.) - --#define CONFIG_ALT_KEY XK_Meta_L -+#define CONFIG_ALT_KEY XK_Super_L - - // And these define the rest of the keyboard controls, when the above - // modifier is pressed; they're keysyms as defined in - // and - -@@ -232,10 +233,21 @@ - #define CONFIG_QUICKRAISE_ALSO_LOWERS True - #define CONFIG_SUNPOWER_EXEC "/usr/openwin/bin/sys-suspend" - #define CONFIG_SUNPOWER_OPTIONS "-x","-h",0 - #define CONFIG_SUNPOWER_SHIFTOPTIONS "-x","-n",0 - -+// Mouse Configuration -+// Use this section to remap your mouse button actions. -+// Button1 = LMB, Button2 = MMB, Button3 = RMB -+// Button4 = WheelUp, Button5 = WheelDown -+ -+#define CONFIG_CLIENTMENU_BUTTON Button1 -+#define CONFIG_COMMANDMENU_BUTTON Button2 -+#define CONFIG_CIRCULATE_BUTTON Button3 -+#define CONFIG_PREVCHANNEL_BUTTON Button5 -+#define CONFIG_NEXTCHANNEL_BUTTON Button4 -+ - - // ============================== - // Section III. Colours and fonts - // ============================== - -@@ -261,14 +273,12 @@ - #if I18N - #define CONFIG_NICE_FONT "-*-lucida-bold-r-*-*-14-*-75-75-*-*-*-*,-*-*-medium-r-*-*-14-*-75-75-*-*-*-*" - #define CONFIG_NICE_MENU_FONT "-*-lucida-medium-r-*-*-14-*-75-75-*-*-*-*,-*-*-medium-r-*-*-14-*-75-75-*-*-*-*" - #define CONFIG_NASTY_FONT "fixed,-*-*-*-*-*-*-14-*-75-75-*-*-*-*" - #else --//#define CONFIG_NICE_FONT "-*-lucida-bold-r-*-*-14-*-75-75-*-*-*-*" --//#define CONFIG_NICE_MENU_FONT "-*-lucida-medium-r-*-*-14-*-75-75-*-*-*-*" --#define CONFIG_NICE_FONT "-*-verdana-medium-r-*-*-12-*-*-*-*-*-*-*" --#define CONFIG_NICE_MENU_FONT "-*-verdana-medium-r-*-*-12-*-*-*-*-*-*-*" -+#define CONFIG_NICE_FONT "-*-lucida-bold-r-*-*-14-*-75-75-*-*-*-*" -+#define CONFIG_NICE_MENU_FONT "-*-lucida-medium-r-*-*-14-*-75-75-*-*-*-*" - #define CONFIG_NASTY_FONT "fixed" - #endif - - // If USE_PLAIN_X_CURSORS is True, wmx will use cursors from the - // standard X cursor font; otherwise it will install its own. You may -@@ -280,19 +290,19 @@ - - // Colours for window decorations. The BORDERS one is for the - // one-pixel border around the edge of each piece of decoration, not - // for the whole decoration - --#define CONFIG_TAB_FOREGROUND "black" --#define CONFIG_TAB_BACKGROUND "gray80" --#define CONFIG_FRAME_BACKGROUND "gray95" --#define CONFIG_BUTTON_BACKGROUND "gray95" -+#define CONFIG_TAB_FOREGROUND (DynamicConfig::config.tabForeground()) -+#define CONFIG_TAB_BACKGROUND (DynamicConfig::config.tabBackground()) -+#define CONFIG_FRAME_BACKGROUND (DynamicConfig::config.frameBackground()) -+#define CONFIG_BUTTON_BACKGROUND (DynamicConfig::config.frameBackground()) - #define CONFIG_BORDERS "black" - #define CONFIG_CHANNEL_NUMBER "green" - --#define CONFIG_MENU_FOREGROUND "black" --#define CONFIG_MENU_BACKGROUND "gray80" -+#define CONFIG_MENU_FOREGROUND (DynamicConfig::config.tabForeground()) -+#define CONFIG_MENU_BACKGROUND (DynamicConfig::config.tabBackground()) - #define CONFIG_MENU_BORDERS "black" - - // Pixel width for the bit of frame to the left of the window and the - // sum of the two bits at the top - -@@ -339,12 +349,12 @@ - // post the entire window contents instead; if it's negative, the - // contents will never be posted. Experiment with these -- if your - // machine is fast and you're really hyper, you might even like a - // delay of 0ms. - --#define CONFIG_MAD_FEEDBACK (dConfig.useFeedback()) --#define CONFIG_FEEDBACK_DELAY (dConfig.feedbackDelay()) -+#define CONFIG_MAD_FEEDBACK (DynamicConfig::config.useFeedback()) -+#define CONFIG_FEEDBACK_DELAY (DynamicConfig::config.feedbackDelay()) - - // Groups are fun. you can bind a bunch of windows to a number key - // and when you press CONFIG_ALT_KEY_MASK and the number key - // all the windows of that group are raised. - -diff -NarU5 wmx-6pl1/config.log wmx-cvs-2006-06-02/config.log ---- wmx-6pl1/config.log 2001-04-24 04:58:56.000000000 -0400 -+++ wmx-cvs-2006-06-02/config.log 1969-12-31 19:00:00.000000000 -0500 -@@ -1,17 +0,0 @@ --This file contains any messages produced by compilers while --running configure, to aid debugging if configure makes a mistake. -- --configure:529: checking whether make sets ${MAKE} --configure:560: checking for c++ --configure:592: checking whether the C++ compiler (c++ ) works --configure:608: c++ -o conftest conftest.C 1>&5 --configure:634: checking whether the C++ compiler (c++ ) is a cross-compiler --configure:639: checking whether we are using GNU C++ --configure:667: checking whether c++ accepts -g --configure:707: checking how to run the C++ preprocessor --configure:754: checking for X --configure:997: checking for XOpenDisplay in -lX11 --configure:1048: checking for XShapeQueryExtension in -lXext --configure:1099: checking for XpmCreatePixmapFromData in -lXpm --configure:1154: checking for twm --configure:1193: checking whether you're still watching -diff -NarU5 wmx-6pl1/config.status wmx-cvs-2006-06-02/config.status ---- wmx-6pl1/config.status 2001-04-24 04:58:56.000000000 -0400 -+++ wmx-cvs-2006-06-02/config.status 1969-12-31 19:00:00.000000000 -0500 -@@ -1,153 +0,0 @@ --#! /bin/sh --# Generated automatically by configure. --# Run this file to recreate the current configuration. --# This directory was configured as follows, --# on host amanita: --# --# ./configure --# --# Compiler output produced by configure, useful for debugging --# configure, is in ./config.log if it exists. -- --ac_cs_usage="Usage: ./config.status [--recheck] [--version] [--help]" --for ac_option --do -- case "$ac_option" in -- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) -- echo "running ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion" -- exec ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion ;; -- -version | --version | --versio | --versi | --vers | --ver | --ve | --v) -- echo "./config.status generated by autoconf version 2.13" -- exit 0 ;; -- -help | --help | --hel | --he | --h) -- echo "$ac_cs_usage"; exit 0 ;; -- *) echo "$ac_cs_usage"; exit 1 ;; -- esac --done -- --ac_given_srcdir=. -- --trap 'rm -fr Makefile conftest*; exit 1' 1 2 15 -- --# Protect against being on the right side of a sed subst in config.status. --sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\&%]/\\&/g; -- s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF --/^[ ]*VPATH[ ]*=[^:]*$/d -- --s%@SHELL@%/bin/sh%g --s%@CFLAGS@%%g --s%@CPPFLAGS@%%g --s%@CXXFLAGS@%-g -O2 -I/usr/X11R6/include%g --s%@FFLAGS@%%g --s%@DEFS@% -DHAVE_LIBX11=1 -DHAVE_LIBXEXT=1 -DHAVE_LIBXPM=1 %g --s%@LDFLAGS@% -L/usr/X11R6/lib%g --s%@LIBS@%-lXpm -lXext -lX11 %g --s%@exec_prefix@%${prefix}%g --s%@prefix@%/usr/X11R6%g --s%@program_transform_name@%s,x,x,%g --s%@bindir@%${exec_prefix}/bin%g --s%@sbindir@%${exec_prefix}/sbin%g --s%@libexecdir@%${exec_prefix}/libexec%g --s%@datadir@%${prefix}/share%g --s%@sysconfdir@%${prefix}/etc%g --s%@sharedstatedir@%${prefix}/com%g --s%@localstatedir@%${prefix}/var%g --s%@libdir@%${exec_prefix}/lib%g --s%@includedir@%${prefix}/include%g --s%@oldincludedir@%/usr/include%g --s%@infodir@%${prefix}/info%g --s%@mandir@%${prefix}/man%g --s%@SET_MAKE@%%g --s%@CXX@%c++%g --s%@CXXCPP@%c++ -E%g --s%@TWM@%/usr/X11R6/bin/twm%g -- --CEOF -- --# Split the substitutions into bite-sized pieces for seds with --# small command number limits, like on Digital OSF/1 and HP-UX. --ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. --ac_file=1 # Number of current file. --ac_beg=1 # First line for current file. --ac_end=$ac_max_sed_cmds # Line after last line for current file. --ac_more_lines=: --ac_sed_cmds="" --while $ac_more_lines; do -- if test $ac_beg -gt 1; then -- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file -- else -- sed "${ac_end}q" conftest.subs > conftest.s$ac_file -- fi -- if test ! -s conftest.s$ac_file; then -- ac_more_lines=false -- rm -f conftest.s$ac_file -- else -- if test -z "$ac_sed_cmds"; then -- ac_sed_cmds="sed -f conftest.s$ac_file" -- else -- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" -- fi -- ac_file=`expr $ac_file + 1` -- ac_beg=$ac_end -- ac_end=`expr $ac_end + $ac_max_sed_cmds` -- fi --done --if test -z "$ac_sed_cmds"; then -- ac_sed_cmds=cat --fi -- --CONFIG_FILES=${CONFIG_FILES-"Makefile"} --for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then -- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". -- case "$ac_file" in -- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` -- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; -- *) ac_file_in="${ac_file}.in" ;; -- esac -- -- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. -- -- # Remove last slash and all that follows it. Not all systems have dirname. -- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` -- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then -- # The file is in a subdirectory. -- test ! -d "$ac_dir" && mkdir "$ac_dir" -- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" -- # A "../" for each directory in $ac_dir_suffix. -- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` -- else -- ac_dir_suffix= ac_dots= -- fi -- -- case "$ac_given_srcdir" in -- .) srcdir=. -- if test -z "$ac_dots"; then top_srcdir=. -- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; -- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; -- *) # Relative path. -- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" -- top_srcdir="$ac_dots$ac_given_srcdir" ;; -- esac -- -- -- echo creating "$ac_file" -- rm -f "$ac_file" -- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." -- case "$ac_file" in -- *Makefile*) ac_comsub="1i\\ --# $configure_input" ;; -- *) ac_comsub= ;; -- esac -- -- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` -- sed -e "$ac_comsub --s%@configure_input@%$configure_input%g --s%@srcdir@%$srcdir%g --s%@top_srcdir@%$top_srcdir%g --" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file --fi; done --rm -f conftest.s* -- -- -- --exit 0 -diff -NarU5 wmx-6pl1/CVS/Entries wmx-cvs-2006-06-02/CVS/Entries ---- wmx-6pl1/CVS/Entries 1969-12-31 19:00:00.000000000 -0500 -+++ wmx-cvs-2006-06-02/CVS/Entries 2006-06-02 10:50:25.000000000 -0400 -@@ -0,0 +1,29 @@ -+/ANNOYING-BUGS/1.1/Tue Aug 12 13:24:10 2003// -+/Border.C/1.9/Thu Aug 14 12:54:22 2003// -+/Border.h/1.4/Tue Aug 12 13:11:19 2003// -+/Buttons.C/1.14/Thu Aug 14 13:07:12 2003// -+/Channel.C/1.11/Sun Aug 17 13:56:59 2003// -+/Client.C/1.11/Tue Aug 12 14:50:47 2003// -+/Client.h/1.9/Tue Aug 12 14:49:35 2003// -+/Config.C/1.4/Thu Aug 14 13:07:12 2003// -+/Config.h/1.15/Thu Aug 14 13:07:12 2003// -+/Cursors.h/1.1/Tue Aug 12 12:55:17 2003// -+/Events.C/1.9/Thu Aug 14 13:07:12 2003// -+/General.h/1.4/Tue Aug 12 13:11:19 2003// -+/Main.C/1.2/Tue Aug 12 13:07:39 2003// -+/Makefile.in/1.1/Tue Aug 12 13:11:19 2003// -+/Manager.C/1.13/Thu Aug 14 13:07:12 2003// -+/Manager.h/1.13/Tue Aug 12 14:50:47 2003// -+/Menu.C/1.11/Thu Aug 14 13:07:12 2003// -+/Menu.h/1.7/Tue Aug 12 13:16:28 2003// -+/README/1.8/Tue Aug 12 13:21:33 2003// -+/README.contrib/1.1/Tue Aug 12 13:07:39 2003// -+/Rotated.C/1.4/Tue Aug 12 13:16:28 2003// -+/Rotated.h/1.4/Tue Aug 12 13:16:28 2003// -+/Session.C/1.1/Tue Aug 12 13:07:39 2003// -+/UPDATES/1.3/Tue Aug 12 14:49:35 2003// -+/background.xpm/1.2/Tue Aug 12 13:17:29 2003// -+/configure/1.1/Tue Aug 12 13:11:19 2003// -+/configure.in/1.1/Tue Aug 12 13:11:19 2003// -+/listmacro.h/1.1/Tue Aug 12 13:07:39 2003// -+D -diff -NarU5 wmx-6pl1/CVS/Repository wmx-cvs-2006-06-02/CVS/Repository ---- wmx-6pl1/CVS/Repository 1969-12-31 19:00:00.000000000 -0500 -+++ wmx-cvs-2006-06-02/CVS/Repository 2006-06-02 10:50:25.000000000 -0400 -@@ -0,0 +1 @@ -+wmx -diff -NarU5 wmx-6pl1/CVS/Root wmx-cvs-2006-06-02/CVS/Root ---- wmx-6pl1/CVS/Root 1969-12-31 19:00:00.000000000 -0500 -+++ wmx-cvs-2006-06-02/CVS/Root 2006-06-02 10:50:25.000000000 -0400 -@@ -0,0 +1 @@ -+:pserver:anonymous@wm2.cvs.sourceforge.net:/cvsroot/wm2 -diff -NarU5 wmx-6pl1/Events.C wmx-cvs-2006-06-02/Events.C ---- wmx-6pl1/Events.C 2001-08-31 04:02:49.000000000 -0400 -+++ wmx-cvs-2006-06-02/Events.C 2003-08-14 09:07:12.000000000 -0400 -@@ -244,11 +244,11 @@ - - void WindowManager::checkDelaysForFocus() - { - if (!CONFIG_AUTO_RAISE) return; - -- int t = timestamp(True); -+ Time t = timestamp(True); - - if (m_focusPointerMoved) { // only raise when pointer stops - - if (t < m_focusTimestamp || - t - m_focusTimestamp > CONFIG_POINTER_STOPPED_DELAY) { -@@ -262,11 +262,11 @@ - } else m_focusPointerNowStill = True; // until proven false - } - } else { - - if (t < m_focusTimestamp || -- t - m_focusTimestamp > CONFIG_AUTO_RAISE_DELAY) { -+ t - m_focusTimestamp > (Time)CONFIG_AUTO_RAISE_DELAY) { - - m_focusCandidate->focusIfAppropriate(True); - - // if (m_focusCandidate->isNormal()) m_focusCandidate->mapRaised(); - // stopConsideringFocus(); -diff -NarU5 wmx-6pl1/Makefile wmx-cvs-2006-06-02/Makefile ---- wmx-6pl1/Makefile 2001-04-24 04:58:56.000000000 -0400 -+++ wmx-cvs-2006-06-02/Makefile 1969-12-31 19:00:00.000000000 -0500 -@@ -1,69 +0,0 @@ --# Generated automatically from Makefile.in by configure. -- --CCC=c++ --prefix=/usr/X11R6 --exec_prefix=${prefix} -- --# If you're not using background pixmaps, remove -lXpm from the LIBS. --# If your X libraries are somewhere other than /usr/X11/lib, give their --# location here. --#LIBS = -L/usr/X11/lib -lXpm -lXext -lX11 -lXmu -lSM -lICE -lm --LIBS=-lXpm -lXext -lX11 --LDFLAGS= -L/usr/X11R6/lib -- -- --# If your X includes are not in /usr/include/X11, add their location --# as a -I option here (excluding the X11 bit). If you're using I18N --# and Xlocale, please add -DX_LOCALE. --#CFLAGS = -g -O2 -I/usr/include -I/usr/openwin/include --CXXFLAGS=-g -O2 -I/usr/X11R6/include -- --OBJECTS = Border.o Buttons.o Channel.o Client.o Config.o Events.o Main.o Manager.o Menu.o Rotated.o Session.o -- --.C.o: -- $(CCC) -c $(CXXFLAGS) $< -- --all: wmx -- --wmx: $(OBJECTS) -- test -f wmx && mv -f wmx wmx.old || true -- $(CCC) -o wmx $(OBJECTS) $(LDFLAGS) $(LIBS) -- --depend: -- -awk '{print;} /^# DO NOT DELETE/{exit}' Makefile>Makefile.dep -- test -s Makefile.dep -- mv Makefile.dep Makefile;g++ -MM $(CXXFLAGS) *.C>>Makefile -- --clean: -- rm -f *.o core -- --distclean: clean -- rm -f wmx wmx.old *~ *.bak *.org *.orig config.* Makefile -- --install: -- -mv -f ${exec_prefix}/bin/wmx ${exec_prefix}/bin/wmx.old -- cp wmx ${exec_prefix}/bin/wmx -- -chmod 0755 ${exec_prefix}/bin/wmx -- -chown root:wheel ${exec_prefix}/bin/wmx -- -rm -f ${exec_prefix}/bin/wmx.old -- --# DO NOT DELETE -- make depend depends on it --Border.o: Border.C Border.h General.h Config.h Rotated.h Client.h \ -- Manager.h listmacro.h background.xpm --Buttons.o: Buttons.C Manager.h General.h Config.h listmacro.h Client.h \ -- Border.h Rotated.h Menu.h --Channel.o: Channel.C Manager.h General.h Config.h listmacro.h Client.h \ -- Border.h Rotated.h --Client.o: Client.C Manager.h General.h Config.h listmacro.h Client.h \ -- Border.h Rotated.h --Config.o: Config.C Config.h --Events.o: Events.C Manager.h General.h Config.h listmacro.h Client.h \ -- Border.h Rotated.h --Main.o: Main.C Manager.h General.h Config.h listmacro.h Client.h \ -- Border.h Rotated.h --Manager.o: Manager.C Manager.h General.h Config.h listmacro.h Menu.h \ -- Client.h Border.h Rotated.h Cursors.h --Menu.o: Menu.C Menu.h General.h Config.h Manager.h listmacro.h \ -- Client.h Border.h Rotated.h --Rotated.o: Rotated.C Config.h Rotated.h --Session.o: Session.C Manager.h General.h Config.h listmacro.h -diff -NarU5 wmx-6pl1/Manager.C wmx-cvs-2006-06-02/Manager.C ---- wmx-6pl1/Manager.C 2001-04-23 05:10:42.000000000 -0400 -+++ wmx-cvs-2006-06-02/Manager.C 2003-08-14 09:07:12.000000000 -0400 -@@ -53,18 +53,19 @@ - m_altModMask(0) // later - { - char *home = getenv("HOME"); - char *wmxdir = getenv("WMXDIR"); - -- fprintf(stderr, "\nwmx: Copyright (c) 1996-2001 Chris Cannam." -- " Sixth release, April 2001\n" -+ fprintf(stderr, "\nwmx: Copyright (c) 1996-2003 Chris Cannam." -+ " Not a release\n" - " Parts derived from 9wm Copyright (c) 1994-96 David Hogan\n" - " Command menu code Copyright (c) 1997 Jeremy Fitzhardinge\n" - " Japanize code Copyright (c) 1998 Kazushi (Jam) Marukawa\n" - " Original keyboard-menu code Copyright (c) 1998 Nakayama Shintaro\n" - " Dynamic configuration code Copyright (c) 1998 Stefan `Sec' Zehl\n" - " Multihead display code Copyright (c) 2000 Sven Oliver `SvOlli' Moll\n" -+ " See source distribution for other patch contributors\n" - " %s\n Copying and redistribution encouraged. " - "No warranty.\n\n", XV_COPYRIGHT); - - int i; - #if CONFIG_USE_SESSION_MANAGER != False -@@ -515,11 +516,13 @@ - - char error[100]; - sprintf(error, "couldn't load %s colour", desc); - fatal(error); - -- } else return nearest.pixel; -+ } -+ -+ return nearest.pixel; - } - - - void WindowManager::installCursor(RootCursor c) - { -@@ -568,15 +571,16 @@ - m_restart = True; - } - - void WindowManager::scanInitialWindows() - { -- unsigned int i, n, s; -+ unsigned int i, n; -+ int s; - Window w1, w2, *wins; - XWindowAttributes attr; - -- for(s=0;sdeactivate(); -+ } -+ m_activeClient = c; -+} -+ - void WindowManager::clearFocus() - { - static Window w = 0; - Client *active = activeClient(); - -diff -NarU5 wmx-6pl1/Manager.h wmx-cvs-2006-06-02/Manager.h ---- wmx-6pl1/Manager.h 2001-04-24 04:58:31.000000000 -0400 -+++ wmx-cvs-2006-06-02/Manager.h 2003-08-12 10:50:47.000000000 -0400 -@@ -25,11 +25,11 @@ - Client *activeClient() { return m_activeClient; } - Boolean raiseTransients(Client *); // true if raised any - Time timestamp(Boolean reset); - void clearFocus(); - -- void setActiveClient(Client *const c) { m_activeClient = c; } -+ void setActiveClient(Client *const c); - - void addToHiddenList(Client *); - void removeFromHiddenList(Client *); - void skipInRevert(Client *, Client *); - -diff -NarU5 wmx-6pl1/Menu.C wmx-cvs-2006-06-02/Menu.C ---- wmx-6pl1/Menu.C 2001-10-05 09:01:21.000000000 -0400 -+++ wmx-cvs-2006-06-02/Menu.C 2003-08-14 09:07:12.000000000 -0400 -@@ -25,12 +25,13 @@ - #define STRLEN_MITEMS(i) strlen(m_items[(i)]) - #endif - - Menu::Menu(WindowManager *manager, XEvent *e) - : m_items(0), m_nItems(0), m_nHidden(0), -- m_windowManager(manager), m_event(e), -- m_hasSubmenus(False) -+ m_hasSubmenus(False), -+ m_windowManager(manager), -+ m_event(e) - { - if (!m_initialised) - { - XGCValues *values; - XSetWindowAttributes *attr; -@@ -236,11 +237,11 @@ - { - int i; - foundEvent = False; - - if (CONFIG_FEEDBACK_DELAY >= 0 && -- tdiff > CONFIG_FEEDBACK_DELAY && -+ tdiff > (unsigned long)CONFIG_FEEDBACK_DELAY && - !isKeyboardMenu && // removeFeedback didn't seem to work for it - !speculating) { - - if (selecting >= 0 && selecting < m_nItems) { - raiseFeedbackLevel(selecting); -@@ -618,12 +619,11 @@ - { - if (Client *c = checkFeedback(item)) c->raiseFeedbackLevel(); - } - - --CommandMenu::CommandMenu(WindowManager *manager, XEvent *e, -- char* otherdir = NULL) -+CommandMenu::CommandMenu(WindowManager *manager, XEvent *e, char* otherdir) - : Menu(manager, e) - { - const char *home = getenv("HOME"); - const char *wmxdir = getenv("WMXDIR"); - -diff -NarU5 wmx-6pl1/UPDATES wmx-cvs-2006-06-02/UPDATES ---- wmx-6pl1/UPDATES 2000-05-11 12:42:30.000000000 -0400 -+++ wmx-cvs-2006-06-02/UPDATES 2003-08-12 10:49:35.000000000 -0400 -@@ -1,7 +1,12 @@ - /* vim:set ts=4 ai: ,e to add info */ - -+- 2000/05/12 -+ added Zvezdan Petkovic's patch for horizontal and full- -+ screen maximise as well as vertical, and to make maximise -+ and unmaximise optionally use the same key (toggle). -+ - wmx-6pre4: - - - 2000/05/11 - change so as to use alt-modifier keysym instead of - coding the mask straight in to Config.h. now Manager.C diff --git a/wmx-6pl1-cfg.patch b/wmx-8-cfg.patch similarity index 78% rename from wmx-6pl1-cfg.patch rename to wmx-8-cfg.patch index 1e0020a..560bd60 100644 --- a/wmx-6pl1-cfg.patch +++ b/wmx-8-cfg.patch @@ -1,19 +1,20 @@ -diff -NarU5 wmx-6pl1.orig/Config.h wmx-6pl1/Config.h ---- wmx-6pl1.orig/Config.h 2006-06-04 13:57:06.000000000 -0400 -+++ wmx-6pl1/Config.h 2006-06-04 13:59:12.000000000 -0400 -@@ -75,11 +75,10 @@ +diff -NarU5 wmx-8.orig/Config.h wmx-8/Config.h +--- wmx-8.orig/Config.h 2014-11-16 14:34:19.000000000 -0500 ++++ wmx-8/Config.h 2014-11-20 09:41:54.238623357 -0500 +@@ -77,11 +77,11 @@ + // Spawn a temporary new shell between the wm and each new process? #define CONFIG_EXEC_USING_SHELL False // What to run to get a new window (from the "New" menu option) #define CONFIG_NEW_WINDOW_LABEL "New" - #define CONFIG_NEW_WINDOW_COMMAND "xterm" --//#define CONFIG_NEW_WINDOW_COMMAND "/home/ccannam/.wmx/terminal" +-#define CONFIG_NEW_WINDOW_COMMAND "x-terminal-emulator" ++#define CONFIG_NEW_WINDOW_COMMAND "/usr/bin/xterm" #define CONFIG_NEW_WINDOW_COMMAND_OPTIONS 0 // or, for example, //#define CONFIG_NEW_WINDOW_COMMAND_OPTIONS "-ls","-sb","-sl","1024",0 // alternatively, #define CONFIG_DISABLE_NEW_WINDOW_COMMAND (DynamicConfig::config.disableNew()) -@@ -90,11 +89,11 @@ +@@ -92,11 +92,11 @@ // Directory under $HOME in which to look for commands for the // middle-button menu @@ -26,7 +27,7 @@ diff -NarU5 wmx-6pl1.orig/Config.h wmx-6pl1/Config.h #define CONFIG_ADD_SCREEN_TO_COMMAND_MENU False // Focus possibilities. -@@ -121,11 +120,11 @@ +@@ -125,11 +125,11 @@ // Number of pixels off the screen you have to push a window // before the manager notices the window is off-screen (the higher @@ -35,11 +36,11 @@ diff -NarU5 wmx-6pl1.orig/Config.h wmx-6pl1/Config.h -#define CONFIG_BUMP_DISTANCE 16 +#define CONFIG_BUMP_DISTANCE 32 - // If CONFIG_PROD_SHAPE is True, all frame element shapes will be - // recalculated afresh every time their focus changes. This will - // probably slow things down hideously, but has been reported as - // necessary on some systems (possibly SunOS 4.x with OpenWindows). -@@ -178,11 +177,11 @@ + // If CONFIG_BUMP_EVERYWHERE is defined, windows will "bump" against + // other window edges as well as the edges of the screen + + #define CONFIG_BUMP_EVERYWHERE True +@@ -192,11 +192,11 @@ // This is the key for wm controls: e.g. Alt/Left and Alt/Right to // flip channels, and Alt/Tab to switch windows. (On my 105-key @@ -52,7 +53,7 @@ diff -NarU5 wmx-6pl1.orig/Config.h wmx-6pl1/Config.h // modifier is pressed; they're keysyms as defined in // and -@@ -304,11 +303,11 @@ +@@ -335,11 +335,11 @@ #define CONFIG_MENU_BORDERS "black" // Pixel width for the bit of frame to the left of the window and the @@ -65,7 +66,7 @@ diff -NarU5 wmx-6pl1.orig/Config.h wmx-6pl1/Config.h // ======================== // Section IV. Flashy stuff // ======================== -@@ -317,11 +316,11 @@ +@@ -348,11 +348,11 @@ // in ./background.xpm; if USE_PIXMAP_MENUS is also True, the menus // will be too. The latter screws up in palette-based visuals, but // should be okay in true-colour. diff --git a/wmx.spec b/wmx.spec index 2646b6b..3ea685b 100644 --- a/wmx.spec +++ b/wmx.spec @@ -1,21 +1,20 @@ Name: wmx -Version: 6pl1 -Release: 14%{?dist} +Version: 8 +Release: 28%{?dist} Summary: A really simple window manager for X -License: BSD -Group: User Interface/X +# Automatically converted from old format: BSD - review is highly recommended. +License: LicenseRef-Callaway-BSD URL: http://www.all-day-breakfast.com/wmx/ Source0: http://www.all-day-breakfast.com/wmx/%{name}-%{version}.tar.gz -Source1: wmx-defaults.tar.gz +Source1: wmx-defaults-3.tar.gz Source2: background.xpm Source3: wmx.desktop Source4: Xclients.wmx.sh -Patch0: wmx-6pl1-cvs20060602.patch -Patch1: wmx-6pl1-64b.patch -Patch2: wmx-6pl1-cfgbug.patch -Patch3: wmx-6pl1-cfg.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: xorg-x11-proto-devel libX11-devel libXpm-devel libXext-devel libXaw-devel libXt-devel +Patch0: wmx-8-cfg.patch +#wmx's 'New' button is hardcoded to start an xterm, better make sure we have it: +Requires: xterm +BuildRequires: make +BuildRequires: gcc-c++ xorg-x11-proto-devel libX11-devel libXpm-devel libXext-devel libXaw-devel libXt-devel libXcomposite-devel freetype-devel libXft-devel %description A really simple window manager for X, based on wm2, with a minimal set of @@ -23,44 +22,181 @@ configurable options. %prep %setup -q -%setup -a 1 -%{__install} -p %{SOURCE2} . -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 +%setup -q -a 1 +%{__install} -p -m 0644 %{SOURCE2} . +%patch -P0 -p1 %build -%configure --x-libraries=%{_libdir} --x-includes=%{_includedir}/X11 +%configure --x-libraries=%{_libdir} --x-includes=%{_includedir}/X11 LIBS=-lfontconfig %{__make} %{?_smp_mflags} %install %{__rm} -rf %{buildroot} %{__install} -D -m 0755 wmx %{buildroot}%{_bindir}/wmx %{__install} -d -m 0755 %{buildroot}%{_datadir}/%{name} -%{__install} -m 0755 wmx-defaults/* %{buildroot}%{_datadir}/%{name} +%{__install} -m 0755 wmx-defaults-3/* %{buildroot}%{_datadir}/%{name} %{__chmod} 0644 %{buildroot}%{_datadir}/%{name}/startup %{__install} -D -m 0644 %{SOURCE3} %{buildroot}%{_datadir}/xsessions/wmx.desktop %{__install} -D -m 0755 %{SOURCE4} %{buildroot}%{_sysconfdir}/X11/xinit/Xclients.d/Xclients.wmx.sh -%clean -%{__rm} -rf %{buildroot} - %files -%defattr(-,root,root) -%doc README* UPDATES ANNOYING-BUGS +%doc README* UPDATES TODO.netwm rsharman-patch/ %{_bindir}/* -%{_datadir}/* +%{_datadir}/%{name} +%{_datadir}/xsessions/* %{_sysconfdir}/X11/xinit/Xclients.d/* %changelog +* Fri Jul 17 2026 Fedora Release Engineering - 8-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Sat Jan 17 2026 Fedora Release Engineering - 8-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Jul 25 2025 Fedora Release Engineering - 8-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sun Jan 19 2025 Fedora Release Engineering - 8-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Sep 04 2024 Miroslav Suchý - 8-24 +- convert license to SPDX + +* Sat Jul 20 2024 Fedora Release Engineering - 8-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jan 29 2024 Fedora Release Engineering - 8-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jan 27 2024 Fedora Release Engineering - 8-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jul 22 2023 Fedora Release Engineering - 8-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sat Jan 21 2023 Fedora Release Engineering - 8-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Jul 23 2022 Fedora Release Engineering - 8-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 8-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 8-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jan 27 2021 Fedora Release Engineering - 8-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 8-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jan 31 2020 Fedora Release Engineering - 8-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Sat Jul 27 2019 Fedora Release Engineering - 8-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Feb 03 2019 Fedora Release Engineering - 8-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jul 23 2018 Gabriel Somlo 8-10 +- add "BuildRequires: gcc-c++" (#1606700) + +* Sat Jul 14 2018 Fedora Release Engineering - 8-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Feb 09 2018 Fedora Release Engineering - 8-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 8-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 8-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 8-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Feb 05 2016 Fedora Release Engineering - 8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jun 19 2015 Fedora Release Engineering - 8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat May 02 2015 Kalev Lember - 8-2 +- Rebuilt for GCC 5 C++11 ABI change + +* Thu Nov 20 2014 Gabriel Somlo 8-1 +- update to 8 + +* Mon Aug 18 2014 Fedora Release Engineering - 7-14.20120109svn +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 7-13.20120109svn +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sun Aug 04 2013 Fedora Release Engineering - 7-12.20120109svn +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Fri Feb 15 2013 Fedora Release Engineering - 7-11.20120109svn +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sun Jul 22 2012 Fedora Release Engineering - 7-10.20120109svn +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Mon Jan 09 2012 Gabriel Somlo 7-9.20120109svn +- upgrade to latest svn checkout +- updated defaults +- dropped xnodecor + +* Mon Feb 07 2011 Fedora Release Engineering - 7-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Dec 07 2010 Gabriel Somlo 7-7 +- explicitly link against libfontconfig (BZ 660741) + +* Mon Mar 01 2010 Gabriel Somlo 7-6 +- fixed directory ownership (BZ 569408) + +* Mon Jul 27 2009 Fedora Release Engineering - 7-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 7-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Mon Jan 19 2009 Gabriel Somlo 7-3 +- applied patch for use of compositing offscreen storage to speed up rendering +- added buildreq for libxcomposite-devel + +* Tue Jan 13 2009 Gabriel Somlo 7-2 +- re-enabled scroll-wheel-cycles-channels feature + +* Sat Jan 10 2009 Gabriel Somlo 7-1 +- update to 7 + +* Tue Feb 19 2008 Fedora Release Engineering - 6pl1-18 +- Autorebuild for GCC 4.3 + +* Tue Dec 25 2007 Gabriel Somlo 6pl1-17 +- changed build config option to use default X cursor fonts + +* Sat Nov 17 2007 Gabriel Somlo 6pl1-16 +- rebuild + +* Tue Nov 13 2007 Gabriel Somlo 6pl1-15 +- patch containing latest cvs fixes +- added xnodecor.c from ftp://ftp.42.org/pub/wmx/contrib/xnodecor.c +- updated default menu entries + * Fri Sep 08 2006 Gabriel Somlo 6pl1-14 - rebuilt for FC6MassRebuild -* Wed Jun 08 2006 Gabriel Somlo 6pl1-13 +* Thu Jun 08 2006 Gabriel Somlo 6pl1-13 - rebuild -* Wed Jun 08 2006 Gabriel Somlo 6pl1-12 +* Thu Jun 08 2006 Gabriel Somlo 6pl1-12 - more X11 buildrequires (thanks tibbs@math.uh.edu and Jarod Wilson) * Wed Jun 07 2006 Gabriel Somlo 6pl1-11 @@ -100,8 +236,8 @@ configurable options. * Fri Dec 16 2005 Gabriel Somlo 6pl1-3 - spec file fixes as per P. Lemenkov and I. Vazquez - default menu entries now go in /usr/share/wmx/menu -- example wmx .xsession file added to %doc -- gave up on using /usr/X11R6/bin -- using %{_bindir} instead +- example wmx .xsession file added to doc +- gave up on using /usr/X11R6/bin -- using bindir instead * Wed Dec 14 2005 Gabriel Somlo 6pl1-2 - increased bump-distance parameter for easier placement at edge of screen @@ -115,5 +251,5 @@ configurable options. * Tue Aug 09 2005 Gabriel Somlo 6pl1-0 - rebuilt for Fedora Core 4 -* Wed May 23 2004 Gabriel Somlo +* Sun May 23 2004 Gabriel Somlo - initial spec and packages.