ui/motif/graphics.c

changeset 120
49bc645df8b7
parent 119
d7a7fb79b5f7
--- 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);
 }
 
 

mercurial