From 01223d6af2d703c33687c9bfbaf11b64b7a6f9f6 Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Sun, 31 Jan 2021 21:06:18 -0800 Subject: [PATCH] Scrolling fixes for RTL layout with GTK3 Avoid some positioning hacks, they are not needed with GTK3 --- src/generic/listctrl.cpp | 2 +- src/generic/scrlwing.cpp | 2 +- src/gtk/win_gtk.cpp | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 1440601279..1810bb19f3 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -1042,7 +1042,7 @@ void wxListHeaderWindow::AdjustDC(wxDC& dc) dc.GetDeviceOrigin( &org_x, &org_y ); // account for the horz scrollbar offset -#ifdef __WXGTK__ +#if defined(__WXGTK__) && !defined(__WXGTK3__) if (GetLayoutDirection() == wxLayout_RightToLeft) { // Maybe we just have to check for m_signX diff --git a/src/generic/scrlwing.cpp b/src/generic/scrlwing.cpp index f9d2269eb2..d25b9832bc 100644 --- a/src/generic/scrlwing.cpp +++ b/src/generic/scrlwing.cpp @@ -655,7 +655,7 @@ int wxScrollHelperBase::CalcScrollInc(wxScrollWinEvent& event) void wxScrollHelperBase::DoPrepareDC(wxDC& dc) { wxPoint pt = dc.GetDeviceOrigin(); -#ifdef __WXGTK__ +#if defined(__WXGTK__) && !defined(__WXGTK3__) // It may actually be correct to always query // the m_sign from the DC here, but I leave the // #ifdef GTK for now. diff --git a/src/gtk/win_gtk.cpp b/src/gtk/win_gtk.cpp index f74ca023e2..de20cbef58 100644 --- a/src/gtk/win_gtk.cpp +++ b/src/gtk/win_gtk.cpp @@ -476,8 +476,10 @@ static void scroll_adjust(GtkWidget* widget, void* data) void wxPizza::scroll(int dx, int dy) { GtkWidget* widget = GTK_WIDGET(this); +#ifndef __WXGTK3__ if (gtk_widget_get_direction(widget) == GTK_TEXT_DIR_RTL) dx = -dx; +#endif m_scroll_x -= dx; m_scroll_y -= dy; GdkWindow* window = gtk_widget_get_window(widget);