X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=driver%2Ftimers.c;h=d36ff701f948a6045102dbe389d5be54a83f7a21;hb=e4fa2ac140f7bc56571373a7b7eb585fa4500e38;hp=7e9baaacd91c121d57243f090adf1e9b6943e80b;hpb=c28aecf9fc41e3a03494bacf7279745425e2fa18;p=xscreensaver diff --git a/driver/timers.c b/driver/timers.c index 7e9baaac..d36ff701 100644 --- a/driver/timers.c +++ b/driver/timers.c @@ -339,6 +339,8 @@ check_pointer_timer (XtPointer closure, XtIntervalId *id) int root_x, root_y, x, y; unsigned int mask; + if (!ssi->real_screen_p) continue; + if (!XQueryPointer (si->dpy, ssi->screensaver_window, &root, &child, &root_x, &root_y, &x, &y, &mask)) { @@ -740,6 +742,19 @@ sleep_until_idle (saver_info *si, Bool until_idle_p) break; fprintf (stderr,"%s: %d: %s on 0x%lx", blurb(), i, type, (unsigned long) window); + + /* Be careful never to do this unless in -debug mode, as + this could expose characters from the unlock password. */ + if (p->debug_p && event.xany.type == KeyPress) + { + KeySym keysym; + char c = 0; + XLookupString (&event.xkey, &c, 1, &keysym, 0); + fprintf (stderr, " (%s%s)", + (event.xkey.send_event ? "synthetic " : ""), + XKeysymToString (keysym)); + } + if (x == -1) fprintf (stderr, "\n"); else @@ -1061,7 +1076,20 @@ proc_interrupts_activity_p (saver_info *si) while (fgets (new_line, sizeof(new_line)-1, f1)) { - if (!checked_kbd && strstr (new_line, "keyboard")) + if (strchr (new_line, ',')) + { + /* Ignore any line that has a comma on it: this is because + a setup like this: + + 12: 930935 XT-PIC usb-uhci, PS/2 Mouse + + is really bad news. It *looks* like we can note mouse + activity from that line, but really, that interrupt gets + fired any time any USB device has activity! So we have + to ignore any shared IRQs. + */ + } + else if (!checked_kbd && strstr (new_line, "keyboard")) { kbd_changed = (*last_kbd_line && !!strcmp (new_line, last_kbd_line)); strcpy (last_kbd_line, new_line);