X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4dff340069297c51f04fcd230282b86eee6943db..606b005fb2b535b34d1ca45d2d06ee86718e8b1c:/src/motif/window.cpp?ds=sidebyside diff --git a/src/motif/window.cpp b/src/motif/window.cpp index 28768bbaa0..ba7350acb3 100644 --- a/src/motif/window.cpp +++ b/src/motif/window.cpp @@ -23,8 +23,8 @@ #ifdef __VMS #define XtDisplay XTDISPLAY -#define XtWINDOW XTWINDOW -#define XtSreen XTSCREEN +#define XtWindow XTWINDOW +#define XtScreen XTSCREEN #endif #include "wx/setup.h" @@ -2099,22 +2099,21 @@ static void wxCanvasInputEvent(Widget drawingArea, { // I have a dclick canvas->SetLastClick(0, ts); - switch ( eventType ) + + wxEventType typeDouble; + if ( eventType == wxEVT_LEFT_DOWN ) + typeDouble = wxEVT_LEFT_DCLICK; + else if ( eventType == wxEVT_MIDDLE_DOWN ) + typeDouble = wxEVT_MIDDLE_DCLICK; + else if ( eventType == wxEVT_RIGHT_DOWN ) + typeDouble = wxEVT_RIGHT_DCLICK; + else + typeDouble = wxEVT_NULL; + + if ( typeDouble != wxEVT_NULL ) { - case wxEVT_LEFT_DOWN: - wxevent.SetEventType(wxEVT_LEFT_DCLICK); - break; - case wxEVT_MIDDLE_DOWN: - wxevent.SetEventType(wxEVT_MIDDLE_DCLICK); - break; - case wxEVT_RIGHT_DOWN: - wxevent.SetEventType(wxEVT_RIGHT_DCLICK); - break; - - default : - break; + wxevent.SetEventType(typeDouble); } - } else { @@ -2656,22 +2655,12 @@ bool wxTranslateMouseEvent(wxMouseEvent& wxevent, wxWindow *win, Widget widget, { // I have a dclick win->SetLastClick(0, ts); - switch ( eventType ) - { - case wxEVT_LEFT_DOWN: - eventType = wxEVT_LEFT_DCLICK; - break; - case wxEVT_MIDDLE_DOWN: - eventType = wxEVT_MIDDLE_DCLICK; - break; - case wxEVT_RIGHT_DOWN: - eventType = wxEVT_RIGHT_DCLICK; - break; - - default : - break; - } - + if ( eventType == wxEVT_LEFT_DOWN ) + eventType = wxEVT_LEFT_DCLICK; + else if ( eventType == wxEVT_MIDDLE_DOWN ) + eventType = wxEVT_MIDDLE_DCLICK; + else if ( eventType == wxEVT_RIGHT_DOWN ) + eventType = wxEVT_RIGHT_DCLICK; } else { @@ -2984,9 +2973,34 @@ void wxWindow::ChangeFont(bool keepOriginalSize) wxWindow *wxGetActiveWindow() { // TODO + wxFAIL_MSG("Not implemented"); return NULL; } +// Find the wxWindow at the current mouse position, returning the mouse +// position. +wxWindow* wxFindWindowAtPointer(wxPoint& pt) +{ + return wxFindWindowAtPoint(wxGetMousePosition()); +} + +// Get the current mouse position. +wxPoint wxGetMousePosition() +{ + Display *display = (Display*) wxGetDisplay(); + Window rootWindow = RootWindowOfScreen (DefaultScreenOfDisplay(display)); + Window rootReturn, childReturn; + int rootX, rootY, winX, winY; + unsigned int maskReturn; + + XQueryPointer (display, + rootWindow, + &rootReturn, + &childReturn, + &rootX, &rootY, &winX, &winY, &maskReturn); + return wxPoint(rootX, rootY); +} + // ---------------------------------------------------------------------------- // wxNoOptimize: switch off size optimization // ----------------------------------------------------------------------------