if (!gdk_superwin_clear_rect_queue(superwin, xevent)) {  tmp_list = superwin->translate_queue; while (tmp_list) { translate = tmp_list->data; xevent->xexpose.x += translate->dx; xevent->xexpose.y += translate->dy; tmp_list = tmp_list->next; }  if (superwin->bin_func) superwin->bin_func (superwin, xevent, superwin->func_data); } return GDK_FILTER_REMOVE;
region = gdk_region_new(); retval = GDK_FILTER_REMOVE; gdk_superwin_handle_expose(superwin, xevent, &region, FALSE); gdk_region_destroy(region);
gdk_superwin_bin_filter (GdkXEvent *gdk_xevent,                         GdkEvent  *event,                         gpointer   data){  XEvent *xevent = (XEvent *)gdk_xevent;  GdkSuperWin *superwin = data;  GdkSuperWinTranslate *translate;  GList *tmp_list;    switch (xevent->xany.type) {  case Expose:    /* if we pulled something out of the rect queue for this       window it means that it was handled earlier as part of a scroll       so just ignore igt. */    if (!gdk_superwin_clear_rect_queue(superwin, xevent))    {      /* otherwise, translate the coords for this expose normally. */      tmp_list = superwin->translate_queue;      while (tmp_list)      {        translate = tmp_list->data;        xevent->xexpose.x += translate->dx;        xevent->xexpose.y += translate->dy;        tmp_list = tmp_list->next;      }      /* call the function that will handle the expose */      if (superwin->bin_func)        superwin->bin_func (superwin, xevent, superwin->func_data);    }    return GDK_FILTER_REMOVE;    break;  case ConfigureNotify:    /* we got a configure notify. clear the xlate queue */    gdk_superwin_clear_translate_queue(superwin, xevent->xany.serial);    return GDK_FILTER_REMOVE;    break;  }  return GDK_FILTER_CONTINUE;}