diff -r d7a7fb79b5f7 -r 49bc645df8b7 ui/motif/graphics.c --- a/ui/motif/graphics.c Wed Jan 27 12:52:39 2016 +0100 +++ b/ui/motif/graphics.c Wed Jan 27 20:55:37 2016 +0100 @@ -37,8 +37,8 @@ static void ui_drawingarea_expose(Widget widget, XtPointer u, XtPointer c) { UiDrawEvent *drawevent = u; - XmDrawingAreaCallbackStruct *cbs = (XmDrawingAreaCallbackStruct *)c; - XEvent *event = cbs->event; + //XmDrawingAreaCallbackStruct *cbs = (XmDrawingAreaCallbackStruct *)c; + //XEvent *event = cbs->event; Display *dpy = XtDisplay(widget); UiEvent ev; @@ -90,6 +90,8 @@ XmNexposeCallback, ui_drawingarea_expose, event); + + XtVaSetValues(drawingarea, XmNuserData, event, NULL); } XtManageChild(drawingarea); @@ -137,12 +139,20 @@ } void ui_drawingarea_getsize(UIWIDGET drawingarea, int *width, int *height) { - // TODO + XtVaGetValues( + drawingarea, + XmNwidth, + width, + XmNheight, + height, + NULL); } void ui_drawingarea_redraw(UIWIDGET drawingarea) { - XClearArea(XtDisplay(drawingarea), drawingarea->core.window, 0, 0, drawingarea->core.width, drawingarea->core.height, True); - + //XClearArea(XtDisplay(drawingarea), drawingarea->core.window, 0, 0, drawingarea->core.width, drawingarea->core.height, True); + UiDrawEvent *event; + XtVaGetValues(drawingarea, XmNuserData, &event, NULL); + ui_drawingarea_expose(drawingarea, event, NULL); }