Ticket #3981: inhibit.patch

File inhibit.patch, 1.4 KB (added by erikos, 12 years ago)

try to avoid X crashes

  • src/sugar3/sugar-gesture-grabber.c

    diff --git a/src/sugar3/sugar-gesture-grabber.c b/src/sugar3/sugar-gesture-grabber.c
    index 022ee5b..9edd01f 100644
    a b _sugar_gesture_grabber_notify_touch (SugarGestureGrabber *grabber, 
    7676                if (data->consumed)
    7777                        continue;
    7878
     79                gdk_error_trap_push ();
    7980                XIAllowTouchEvents (gdk_x11_display_get_xdisplay (display),
    8081                                    gdk_x11_device_get_id (data->device),
    8182                                    GPOINTER_TO_INT (data->sequence),
    8283                                    gdk_x11_window_get_xid (priv->root_window),
    8384                                    (handled) ? XIAcceptTouch : XIRejectTouch);
    8485
     86                gdk_error_trap_pop_ignored ();
    8587                data->consumed = TRUE;
    8688        }
    8789}
    filter_function (GdkXEvent *xevent, 
    306308
    307309        handled = _sugar_gesture_grabber_run_controllers (grabber, event);
    308310
    309         if (!handled) {
     311        if (!handled && event->type == GDK_TOUCH_BEGIN) {
     312                gdk_error_trap_push ();
    310313                XIAllowTouchEvents (gdk_x11_display_get_xdisplay (display),
    311314                                    ev->deviceid, ev->detail,
    312315                                    gdk_x11_window_get_xid (priv->root_window),
    313316                                    XIRejectTouch);
     317                gdk_error_trap_pop_ignored ();
    314318        } else if (event->type == GDK_TOUCH_BEGIN) {
    315319                _sugar_gesture_grabber_add_touch (grabber,
    316320                                                  event->touch.device,