X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cdb7bf66716a4f5c5d0e8b203e52826defdf5906..78612fa68fdeb01b2cb0fa8b2b89fc8924bb71ff:/src/gtk/scrolwin.cpp diff --git a/src/gtk/scrolwin.cpp b/src/gtk/scrolwin.cpp index f36296fe94..76b7d458a9 100644 --- a/src/gtk/scrolwin.cpp +++ b/src/gtk/scrolwin.cpp @@ -39,41 +39,23 @@ void wxScrollHelper::SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY, int noUnitsX, int noUnitsY, int xPos, int yPos, - bool noRefresh) + bool WXUNUSED(noRefresh)) { - int old_x = m_xScrollPosition * m_xScrollPixelsPerLine; - int old_y = m_yScrollPosition * m_yScrollPixelsPerLine; - m_xScrollPixelsPerLine = pixelsPerUnitX; m_yScrollPixelsPerLine = pixelsPerUnitY; - m_win->m_scrollBar[wxWindow::ScrollDir_Horz]->adjustment->value = - m_xScrollPosition = xPos; - m_win->m_scrollBar[wxWindow::ScrollDir_Vert]->adjustment->value = - m_yScrollPosition = yPos; - - // To get everything right, have to call ScrollWindow() - // both before and after calling SetVirtualSize() - int new_x = m_xScrollPosition * m_xScrollPixelsPerLine; - int new_y = m_yScrollPosition * m_yScrollPixelsPerLine; - if (!noRefresh) - { - m_targetWindow->ScrollWindow(old_x - new_x, old_y - new_y); - old_x = new_x; - old_y = new_y; - } - int w = noUnitsX * pixelsPerUnitX; int h = noUnitsY * pixelsPerUnitY; m_targetWindow->SetVirtualSize( w ? w : wxDefaultCoord, h ? h : wxDefaultCoord); - if (!noRefresh) - { - new_x = m_xScrollPosition * m_xScrollPixelsPerLine; - new_y = m_yScrollPosition * m_yScrollPixelsPerLine; - m_targetWindow->ScrollWindow(old_x - new_x, old_y - new_y); - } + GtkRange *sb = m_win->m_scrollBar[wxWindow::ScrollDir_Vert]; + gtk_range_set_value(sb, yPos); + sb = m_win->m_scrollBar[wxWindow::ScrollDir_Horz]; + gtk_range_set_value(sb, xPos); + + m_xScrollPosition = wxRound( m_win->m_scrollBar[wxWindow::ScrollDir_Horz]->adjustment->value ); + m_yScrollPosition = wxRound( m_win->m_scrollBar[wxWindow::ScrollDir_Vert]->adjustment->value ); // If the target is not the same as the window with the scrollbars, // then we need to update the scrollbars here, since they won't have @@ -82,6 +64,16 @@ void wxScrollHelper::SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY, { AdjustScrollbars(); } + +#if 0 + if (!noRefresh) + { + int new_x = m_xScrollPixelsPerLine * m_xScrollPosition; + int new_y = m_yScrollPixelsPerLine * m_yScrollPosition; + + m_targetWindow->ScrollWindow( old_x - new_x, old_y - new_y ); + } +#endif } void wxScrollHelper::DoAdjustScrollbar(GtkRange* range,