GTK3: Force scrollbars visible

GTK3 does a fade in/fade out routine for scrollbars by default.  This
was problematic as it caused a cascade of full-screen repaint events on
each mouse event.  Instead of disabling scrollbars (which only helped
the full canvas), we force the old scrollbar behavior is environmental
variables.

Revert "gtk3: Remove scrollbars"

This reverts commit db43bd82a7.
This commit is contained in:
Seth Hillbrand 2019-02-17 10:12:21 -08:00
parent d1c9dd67ac
commit 69c1263c02
4 changed files with 7 additions and 12 deletions

View File

@ -72,13 +72,7 @@ EDA_DRAW_PANEL_GAL::EDA_DRAW_PANEL_GAL( wxWindow* aParentWindow, wxWindowID aWin
SwitchBackend( aGalType );
SetBackgroundStyle( wxBG_STYLE_CUSTOM );
#ifdef __WXGTK3__
// Until we can handle the repaint events from scroll bar hide/show
// todo: Implement area mapping for re-painting scrollbars
ShowScrollbars( wxSHOW_SB_NEVER, wxSHOW_SB_NEVER );
#else
ShowScrollbars( wxSHOW_SB_ALWAYS, wxSHOW_SB_ALWAYS );
#endif
EnableScrolling( false, false ); // otherwise Zoom Auto disables GAL canvas
Connect( wxEVT_SIZE, wxSizeEventHandler( EDA_DRAW_PANEL_GAL::onSize ), NULL, this );

View File

@ -134,6 +134,10 @@ struct APP_SINGLE_TOP : public wxApp
{
wxSetEnv ( wxT("UBUNTU_MENUPROXY" ), wxT( "0" ) );
}
// Disable overlay scrollbars as they mess up wxWidgets window sizing and cause excessive redraw requests
wxSetEnv( wxT( "GTK_OVERLAY_SCROLLING" ), wxT( "0" ) );
}
#endif

View File

@ -646,12 +646,6 @@ wxPoint WX_VIEW_CONTROLS::getMouseScreenPosition() const
void WX_VIEW_CONTROLS::UpdateScrollbars()
{
#ifdef __WXGTK3__
// Until we can handle the repaint events from scroll bar hide/show
// todo: Implement area mapping for re-painting scrollbars
return;
#endif
const BOX2D viewport = m_view->GetViewport();
const BOX2D& boundary = m_view->GetBoundary();

View File

@ -229,6 +229,9 @@ struct APP_KICAD : public wxApp
{
wxSetEnv ( wxT("UBUNTU_MENUPROXY" ), wxT( "0" ) );
}
// Disable overlay scrollbars as they mess up wxWidgets window sizing and cause excessive redraw requests
wxSetEnv( wxT( "GTK_OVERLAY_SCROLLING" ), wxT( "0" ) );
}
#endif