x11 plugin: Fix handling of property-notify events from unknown windows.
authorMatt Birkholz <matt@birchwood-abbey.net>
Thu, 12 Jan 2017 22:09:54 +0000 (15:09 -0700)
committerMatt Birkholz <matt@birchwood-abbey.net>
Thu, 12 Jan 2017 22:09:54 +0000 (15:09 -0700)
src/x11/x11-base.scm

index 88a345dd7fd57210681f3e29f88dddd966470a67..96e331a6e90524e451d1981138a0b4c35faae6aa 100644 (file)
@@ -105,7 +105,7 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
        (xw (malloc (C-sizeof "* struct xwindow") '(* (struct |xwindow|)))))
     (let* ((done-p (C-call "x_display_process_events"
                           display event xw))
-          (window (C-> xw "* xwindow" (make-alien '(struct |xwindow|))))
+          (window (C-> xw "* struct xwindow" (make-alien '(struct |xwindow|))))
           (obj (if (= done-p 1)
                    #f
                    (or (make-event-object window event)
@@ -161,8 +161,9 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
     (and
      (not (eq? #f scmtype))
-     (not (zero? (bitwise-and (bit scmtype)
-                             (C-call "x_window_event_mask" window))))
+     (or (alien-null? window)
+        (not (zero? (bitwise-and (bit scmtype)
+                                 (C-call "x_window_event_mask" window)))))
      (cond
 
       ((eq? scmtype event-type:key-press)              ; xtype = KeyPress