fix some weird bugs interacting with gtk2 apps. from wm cvs and debian.

ok wilfried@
This commit is contained in:
tedu 2003-08-14 21:23:55 +00:00
parent c43cc1c391
commit a19638710c
3 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,27 @@
--- src/actions.c Mon Aug 11 15:29:31 2003
+++ src/actions.c Mon Aug 11 15:31:56 2003
@@ -144,6 +144,14 @@
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;
/*
@@ -150,8 +158,8 @@
* 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)

View File

@ -0,0 +1,10 @@
--- src/event.c Mon Aug 11 15:29:31 2003
+++ src/event.c Mon Aug 11 15:32:06 2003
@@ -402,7 +402,6 @@
static void
saveTimestamp(XEvent *event)
{
- LastTimestamp = CurrentTime;
switch (event->type) {
case ButtonRelease:

View File

@ -0,0 +1,19 @@
--- src/workspace.c Mon Aug 11 15:29:33 2003
+++ src/workspace.c Mon Aug 11 15:33:33 2003
@@ -574,10 +574,12 @@
&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);
+ }
}
}
}