]> git.eshelyaron.com Git - emacs.git/commitdiff
Make it safe to have non-xwidget views in xwidget-view-list
authorPo Lu <luangruo@yahoo.com>
Sat, 6 Nov 2021 06:01:56 +0000 (14:01 +0800)
committerLars Ingebrigtsen <larsi@gnus.org>
Sun, 7 Nov 2021 01:59:41 +0000 (02:59 +0100)
* src/xwidget.c (define_cursors, offscreen_damage_event): Check
XWIDGET_VIEW_P before XXWIDGET_VIEW.

src/xwidget.c

index 9d1fe68ec3e37c4a8b85f88a067402d7b50bf3d5..36e8cab08da73010d8375739ea1c09677b18a0ee 100644 (file)
@@ -609,13 +609,16 @@ define_cursors (struct xwidget *xw, WebKitHitTestResult *res)
   for (Lisp_Object tem = Vxwidget_view_list; CONSP (tem);
        tem = XCDR (tem))
     {
-      xvw = XXWIDGET_VIEW (XCAR (tem));
-
-      if (XXWIDGET (xvw->model) == xw)
+      if (XWIDGET_VIEW_P (XCAR (tem)))
        {
-         xvw->cursor = cursor_for_hit (xw->hit_result, xvw->frame);
-         if (xvw->wdesc != None)
-           XDefineCursor (xvw->dpy, xvw->wdesc, xvw->cursor);
+         xvw = XXWIDGET_VIEW (XCAR (tem));
+
+         if (XXWIDGET (xvw->model) == xw)
+           {
+             xvw->cursor = cursor_for_hit (xw->hit_result, xvw->frame);
+             if (xvw->wdesc != None)
+               XDefineCursor (xvw->dpy, xvw->wdesc, xvw->cursor);
+           }
        }
     }
 }
@@ -849,10 +852,13 @@ offscreen_damage_event (GtkWidget *widget, GdkEvent *event,
   for (Lisp_Object tail = Vxwidget_view_list; CONSP (tail);
        tail = XCDR (tail))
     {
-      struct xwidget_view *view = XXWIDGET_VIEW (XCAR (tail));
+      if (XWIDGET_VIEW_P (XCAR (tail)))
+       {
+         struct xwidget_view *view = XXWIDGET_VIEW (XCAR (tail));
 
-      if (view->wdesc && XXWIDGET (view->model) == xwidget)
-       xv_do_draw (view, XXWIDGET (view->model));
+         if (view->wdesc && XXWIDGET (view->model) == xwidget)
+           xv_do_draw (view, XXWIDGET (view->model));
+       }
     }
 
   unblock_input ();