rpms/wmx/devel wmx-6pl1-cfgbug.patch, NONE, 1.1 wmx-6pl1-cvs20060602.patch, NONE, 1.1 wmx-6pl1-cfg.patch, 1.1, 1.2 wmx.spec, 1.5, 1.6 wmx-6pl1-fix.patch, 1.1, NONE
Gabriel L. Somlo (somlo)
fedora-extras-commits at redhat.com
Mon Jun 5 17:37:39 UTC 2006
Author: somlo
Update of /cvs/extras/rpms/wmx/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv8492
Modified Files:
wmx-6pl1-cfg.patch wmx.spec
Added Files:
wmx-6pl1-cfgbug.patch wmx-6pl1-cvs20060602.patch
Removed Files:
wmx-6pl1-fix.patch
Log Message:
- added patch containing latest cvs fixes
- both monolithic and modular X supported in the same specfile (to be removed when we drop support for fc4)
- added patch by zpetkovic at acm.org for dynamic config string termination bug
- cvs patch screws up ALT key define, subsequent config patch puts it back
wmx-6pl1-cfgbug.patch:
--- NEW FILE wmx-6pl1-cfgbug.patch ---
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);
}
wmx-6pl1-cvs20060602.patch:
--- NEW FILE wmx-6pl1-cvs20060602.patch ---
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 <sys/time.h>
-
-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 <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <unistd.h>
-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 <X11/keysym.h>
// and <X11/keysymdef.h>
@@ -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 at 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;s<m_screensTotal;s++)
+ for (s = 0; s < m_screensTotal; s++)
{
XQueryTree(m_display, m_root[s], &w1, &w2, &wins, &n);
for (i = 0; i < n; ++i) {
@@ -645,14 +649,14 @@
unsigned int w_clip = 0;
unsigned int h_clip = 0;
int x_clip = 0;
int y_clip = 0;
- int shapeq = XShapeQueryExtents(m_display, w, &bounding_shape,
- &x_bounding, &y_bounding,
- &w_bounding, &h_bounding, &clip_shape,
- &x_clip, &y_clip, &w_clip, &h_clip);
+ (void)XShapeQueryExtents(m_display, w, &bounding_shape,
+ &x_bounding, &y_bounding,
+ &w_bounding, &h_bounding, &clip_shape,
+ &x_clip, &y_clip, &w_clip, &h_clip);
if (bounding_shape == 1) {
// fprintf(stderr, "0x%X: shapeq = %d, bounding_shape = %d x=%d y=%d w=%d h=%d clip_shape=%d x=%d y=%d w=%d h=%d\n",w, shapeq, bounding_shape, x_bounding, y_bounding, w_bounding, h_bounding,clip_shape, x_clip, y_clip, w_clip, h_clip);
// int count = 0;
@@ -688,10 +692,18 @@
} else {
XInstallColormap(m_display, cmap);
}
}
+void WindowManager::setActiveClient(Client *const c)
+{
+ if (m_activeClient && m_activeClient != c) {
+ m_activeClient->deactivate();
+ }
+ 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
wmx-6pl1-cfg.patch:
Index: wmx-6pl1-cfg.patch
===================================================================
RCS file: /cvs/extras/rpms/wmx/devel/wmx-6pl1-cfg.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- wmx-6pl1-cfg.patch 14 Feb 2006 21:20:05 -0000 1.1
+++ wmx-6pl1-cfg.patch 5 Jun 2006 17:37:39 -0000 1.2
@@ -1,22 +1,19 @@
diff -NarU5 wmx-6pl1.orig/Config.h wmx-6pl1/Config.h
---- wmx-6pl1.orig/Config.h 2001-04-23 11:48:31.000000000 -0400
-+++ wmx-6pl1/Config.h 2005-12-16 09:08:35.000000000 -0500
-@@ -73,12 +73,12 @@
- // Spawn a temporary new shell between the wm and each new process?
+--- 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 @@
#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/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())
-@@ -89,11 +89,11 @@
+ #define CONFIG_DISABLE_NEW_WINDOW_COMMAND (DynamicConfig::config.disableNew())
+@@ -90,11 +89,11 @@
// Directory under $HOME in which to look for commands for the
// middle-button menu
@@ -29,7 +26,7 @@
#define CONFIG_ADD_SCREEN_TO_COMMAND_MENU False
// Focus possibilities.
-@@ -120,11 +120,11 @@
+@@ -121,11 +120,11 @@
// Number of pixels off the screen you have to push a window
// before the manager notices the window is off-screen (the higher
@@ -42,7 +39,20 @@
// 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).
-@@ -294,11 +294,11 @@
+@@ -178,11 +177,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
+ // PC keyboard, Meta_L corresponds to the left Windows key.)
+
+-#define CONFIG_ALT_KEY XK_Super_L
++#define CONFIG_ALT_KEY XK_Meta_L
+
+ // And these define the rest of the keyboard controls, when the above
+ // modifier is pressed; they're keysyms as defined in <X11/keysym.h>
+ // and <X11/keysymdef.h>
+
+@@ -304,11 +303,11 @@
#define CONFIG_MENU_BORDERS "black"
// Pixel width for the bit of frame to the left of the window and the
@@ -55,7 +65,7 @@
// ========================
// Section IV. Flashy stuff
// ========================
-@@ -307,11 +307,11 @@
+@@ -317,11 +316,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.
@@ -68,22 +78,3 @@
// how close you have to middle-button-click to the top-right corner
// of the root window before the channel change happens. Set
// USE_CHANNEL_KEYS if you want Alt-F1, Alt-F2 etc for quick channel
-diff -NarU5 wmx-6pl1.orig/Makefile.in wmx-6pl1/Makefile.in
---- wmx-6pl1.orig/Makefile.in 1999-08-31 19:53:08.000000000 -0400
-+++ wmx-6pl1/Makefile.in 2005-12-16 09:07:16.000000000 -0500
-@@ -39,13 +39,14 @@
- distclean: clean
- rm -f wmx wmx.old *~ *.bak *.org *.orig config.* Makefile
-
- install:
- -mv -f @bindir@/wmx @bindir@/wmx.old
-+ strip wmx
- cp wmx @bindir@/wmx
- -chmod 0755 @bindir@/wmx
-- -chown root:wheel @bindir@/wmx
-+ -chown root:root @bindir@/wmx
- -rm -f @bindir@/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
Index: wmx.spec
===================================================================
RCS file: /cvs/extras/rpms/wmx/devel/wmx.spec,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- wmx.spec 19 May 2006 19:07:44 -0000 1.5
+++ wmx.spec 5 Jun 2006 17:37:39 -0000 1.6
@@ -1,6 +1,6 @@
Name: wmx
Version: 6pl1
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: A really simple window manager for X
License: BSD
Group: User Interface/X
@@ -10,11 +10,16 @@
Source2: background.xpm
Source3: wmx.desktop
Source4: Xclients.wmx.sh
-Patch0: wmx-6pl1-fix.patch
-Patch1: wmx-6pl1-cfg.patch
-Patch2: wmx-6pl1-64b.patch
+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)
+%if "%{fedora}" <= "4"
+BuildRequires: xorg-x11-devel
+%else
BuildRequires: xorg-x11-proto-devel libX11-devel libXpm-devel libXext-devel
+%endif
%description
A really simple window manager for X, based on wm2, with a minimal set of
@@ -26,7 +31,8 @@
%{__install} -p %{SOURCE2} .
%patch0 -p1
%patch1 -p1
-%patch2 -p1 -b .64b
+%patch2 -p1
+%patch3 -p1
%build
export LDFLAGS=-L/usr/X11R6/%{_lib}
@@ -53,15 +59,18 @@
%{_sysconfdir}/X11/xinit/Xclients.d/*
%changelog
+* Sun Jun 04 2006 Gabriel Somlo <somlo at cmu.edu> 6pl1-9
+- added patch containing latest cvs fixes
+- both monolithic and modular X supported in the same specfile (to be removed when we drop support for fc4)
+- added patch by zpetkovic at acm.org for dynamic config string termination bug
+- cvs patch screws up ALT key define, subsequent config patch puts it back
+
* Fri May 19 2006 Gabriel Somlo <somlo at cmu.edu> 6pl1-8
- Don't strip binary during install to preserve debuginfo (bugzilla #192435)
* Thu Feb 16 2006 Ignacio Vazquez-Abrams <ivazquez at ivazquez.net>
- Fixed 64-bit build
-* Wed Feb 15 2006 Ignacio Vazquez-Abrams <ivazquez at ivazquez.net>
-- Modified for modular X
-
* Sat Dec 31 2005 Gabriel Somlo <somlo at cmu.edu> 6pl1-7
- added BuildRequires for X
--- wmx-6pl1-fix.patch DELETED ---
More information about the fedora-extras-commits
mailing list