X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9d529fa05c2bef6aa4ae9f08b39bb7c0a4fe5c59..89352653828ae50feab93f5e0fce628ea840927e:/src/x11/window.cpp diff --git a/src/x11/window.cpp b/src/x11/window.cpp index 7515a92546..2e2df49db8 100644 --- a/src/x11/window.cpp +++ b/src/x11/window.cpp @@ -160,6 +160,8 @@ bool wxWindowX11::Create(wxWindow *parent, wxWindowID id, if (pos2.y == wxDefaultCoord) pos2.y = 0; + AdjustForParentClientOrigin(pos2.x, pos2.y); + #if wxUSE_TWO_WINDOWS bool need_two_windows = ((( wxSUNKEN_BORDER | wxRAISED_BORDER | wxSIMPLE_BORDER | wxHSCROLL | wxVSCROLL ) & m_windowStyle) != 0); @@ -1120,7 +1122,7 @@ void wxWindowX11::GetTextExtent(const wxString& string, XCharStruct overall; int slen = string.length(); - XTextExtents((XFontStruct*) pFontStruct, (char*) string.c_str(), slen, + XTextExtents((XFontStruct*) pFontStruct, (const char*) string.c_str(), slen, &direction, &ascent, &descent2, &overall); if ( x ) @@ -1463,6 +1465,22 @@ bool wxTranslateMouseEvent(wxMouseEvent& wxevent, wxWindow *win, Window window, eventType = wxEVT_RIGHT_DOWN; button = 3; } + else if ( xevent->xbutton.button == Button4 || + xevent->xbutton.button == Button5 ) + { + // this is the same value as used under wxMSW + static const int WHEEL_DELTA = 120; + + eventType = wxEVT_MOUSEWHEEL; + button = xevent->xbutton.button; + + wxevent.m_linesPerAction = 3; + wxevent.m_wheelDelta = WHEEL_DELTA; + + // Button 4 means mousewheel up, 5 means down + wxevent.m_wheelRotation = button == Button4 ? WHEEL_DELTA + : -WHEEL_DELTA; + } // check for a double click // TODO: where can we get this value from?