]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/window.cpp
more checks for non-scrolling windows, some code duplication cleanup
[wxWidgets.git] / src / motif / window.cpp
index 1f7b234e60277078236067e9659b1ab50aaf4ab3..a99a8bb706d626f519aa6d448a0a2ab045ff800e 100644 (file)
@@ -1212,9 +1212,11 @@ void wxWindow::DoScreenToClient(int *x, int *y) const
     Window thisWindow = XtWindow(widget);
 
     Window childWindow;
-    int xx = *x;
-    int yy = *y;
-    XTranslateCoordinates(display, rootWindow, thisWindow, xx, yy, x, y, &childWindow);
+    int xx = x ? *x : 0;
+    int yy = y ? *y : 0;
+    XTranslateCoordinates(display, rootWindow, thisWindow,
+                          xx, yy, x ? x : &xx, y ? y : &yy,
+                          &childWindow);
 }
 
 void wxWindow::DoClientToScreen(int *x, int *y) const
@@ -1225,9 +1227,11 @@ void wxWindow::DoClientToScreen(int *x, int *y) const
     Window thisWindow = XtWindow(widget);
 
     Window childWindow;
-    int xx = *x;
-    int yy = *y;
-    XTranslateCoordinates(display, thisWindow, rootWindow, xx, yy, x, y, &childWindow);
+    int xx = x ? *x : 0;
+    int yy = y ? *y : 0;
+    XTranslateCoordinates(display, thisWindow, rootWindow,
+                          xx, yy, x ? x : &xx, y ? y : &yy,
+                          &childWindow);
 }
 
 
@@ -2084,6 +2088,8 @@ static void wxScrollBarCallback(Widget scrollbar,
                                 XmScrollBarCallbackStruct *cbs)
 {
     wxWindow *win = wxGetWindowFromTable(scrollbar);
+    wxCHECK_RET( win, _T("invalid widget in scrollbar callback") );
+
     wxOrientation orientation = (wxOrientation)wxPtrToUInt(clientData);
 
     wxEventType eventType = wxEVT_NULL;