X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8ac7c5092401be067f7c727ad8e2bf7274c05866..2da6105611475cb08135997c587df72be67840bd:/src/x11/window.cpp diff --git a/src/x11/window.cpp b/src/x11/window.cpp index 744cdd6b1d..31875c8e7d 100644 --- a/src/x11/window.cpp +++ b/src/x11/window.cpp @@ -253,6 +253,21 @@ wxWindow *wxWindowBase::FindFocus() return NULL; } +#if 0 +wxWindow *wxWindowX11::GetFocusWidget() +{ + wxWindow *win = (wxWindow*) this; + while (!win->IsTopLevel()) + { + win = win->GetParent(); + if (!win) + return (wxWindow*) NULL; + } + + return win; +} +#endif + // Enabling/disabling handled by event loop, and not sending events // if disabled. bool wxWindowX11::Enable(bool enable) @@ -460,6 +475,29 @@ void wxWindowX11::WarpPointer (int x, int y) // Does a physical scroll void wxWindowX11::ScrollWindow(int dx, int dy, const wxRect *rect) { + // No scrolling requested. + if ((dx == 0) && (dy == 0)) return; + + if (!m_updateRegion.IsEmpty()) + { + m_updateRegion.Offset( dx, dy ); + + int cw = 0; + int ch = 0; + GetSize( &cw, &ch ); // GetClientSize() ?? + m_updateRegion.Intersect( 0, 0, cw, ch ); + } + + if (!m_clearRegion.IsEmpty()) + { + m_clearRegion.Offset( dx, dy ); + + int cw = 0; + int ch = 0; + GetSize( &cw, &ch ); // GetClientSize() ?? + m_clearRegion.Intersect( 0, 0, cw, ch ); + } + Window xwindow = (Window) GetMainWindow(); wxCHECK_RET( xwindow, wxT("invalid window") );