summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--x11-wm/windowmaker/Makefile2
-rw-r--r--x11-wm/windowmaker/files/patch-src::actions.c26
-rw-r--r--x11-wm/windowmaker/files/patch-src::event.c11
-rw-r--r--x11-wm/windowmaker/files/patch-src::workspace.c19
4 files changed, 57 insertions, 1 deletions
diff --git a/x11-wm/windowmaker/Makefile b/x11-wm/windowmaker/Makefile
index 10530fc5cda7..db43f07071ab 100644
--- a/x11-wm/windowmaker/Makefile
+++ b/x11-wm/windowmaker/Makefile
@@ -7,7 +7,7 @@
PORTNAME= windowmaker
PORTVERSION= 0.80.2
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= x11-wm windowmaker
MASTER_SITES= ${MASTER_SITE_WINDOWMAKER}
MASTER_SITE_SUBDIR= source/release
diff --git a/x11-wm/windowmaker/files/patch-src::actions.c b/x11-wm/windowmaker/files/patch-src::actions.c
new file mode 100644
index 000000000000..3636b60ef49b
--- /dev/null
+++ b/x11-wm/windowmaker/files/patch-src::actions.c
@@ -0,0 +1,26 @@
+--- src/actions.c.orig Tue Jul 2 09:30:25 2002
++++ src/actions.c Thu Jan 22 01:45:57 2004
+@@ -144,14 +144,22 @@ wSetFocusTo(WScreen *scr, WWindow *wwin
+ old_scr=scr;
+ old_focused=old_scr->focused_window;
+
++ /*
++ * Safeguard: make sure the timestamp is monotonically increasing
++ * (very unlikely that this will be needed, still a safeguard)
++ */
++ if (timestamp <= LastFocusChange)
++ timestamp = LastFocusChange + 1;
++
++
+ LastFocusChange = timestamp;
+
+ /*
+ * This is a hack, because XSetInputFocus() should have a proper
+ * timestamp instead of CurrentTime but it seems that some times
+ * clients will not receive focus properly that way.
++ */
+ if (ignoreTimestamp)
+-*/
+ timestamp = CurrentTime;
+
+ if (old_focused)
diff --git a/x11-wm/windowmaker/files/patch-src::event.c b/x11-wm/windowmaker/files/patch-src::event.c
new file mode 100644
index 000000000000..9285d2a61f03
--- /dev/null
+++ b/x11-wm/windowmaker/files/patch-src::event.c
@@ -0,0 +1,11 @@
+--- src/event.c.orig Tue Jan 8 22:45:13 2002
++++ src/event.c Thu Jan 22 01:46:24 2004
+@@ -402,8 +402,6 @@ handleDeadProcess(void *foo)
+ static void
+ saveTimestamp(XEvent *event)
+ {
+- LastTimestamp = CurrentTime;
+-
+ switch (event->type) {
+ case ButtonRelease:
+ case ButtonPress:
diff --git a/x11-wm/windowmaker/files/patch-src::workspace.c b/x11-wm/windowmaker/files/patch-src::workspace.c
new file mode 100644
index 000000000000..3aba4c7baaf3
--- /dev/null
+++ b/x11-wm/windowmaker/files/patch-src::workspace.c
@@ -0,0 +1,19 @@
+--- src/workspace.c.orig Tue Jan 8 22:45:33 2002
++++ src/workspace.c Thu Jan 22 01:47:49 2004
+@@ -574,10 +574,12 @@ wWorkspaceForceChange(WScreen *scr, int
+ &foo, &foo, &foo, &foo, &mask)) {
+ tmp = wWindowFor(win);
+ }
+- if (!tmp && wPreferences.focus_mode == WKF_SLOPPY) {
+- wSetFocusTo(scr, foc);
+- } else {
+- wSetFocusTo(scr, tmp);
++ if (!tmp) {
++ if (wPreferences.focus_mode == WKF_SLOPPY) {
++ wSetFocusTo(scr, foc);
++ } else {
++ wSetFocusTo(scr, tmp);
++ }
+ }
+ }
+ }