diff options
author | Dan Gudmundsson <dgud@erlang.org> | 2020-08-05 11:29:20 +0200 |
---|---|---|
committer | Dan Gudmundsson <dgud@erlang.org> | 2020-08-05 11:29:20 +0200 |
commit | d53ae42404dfd443ecf4306fc4ffe38956a97075 (patch) | |
tree | 0a049672fc5a3a4c5637d87f0538cf78ef3646b7 | |
parent | ad5f229d07035aa7ee22289b722699d9f93de36b (diff) | |
download | erlang-d53ae42404dfd443ecf4306fc4ffe38956a97075.tar.gz |
Use wxBG_STYLE_PAINT instead of STYLE_SYSTEM
Avoid flickering graphs (on windows) by using wxBG_STYLE_PAINT,
i.e. telling wx that observer code handles the drawing the window.
-rw-r--r-- | lib/observer/src/observer_app_wx.erl | 2 | ||||
-rw-r--r-- | lib/observer/src/observer_perf_wx.erl | 8 |
2 files changed, 3 insertions, 7 deletions
diff --git a/lib/observer/src/observer_app_wx.erl b/lib/observer/src/observer_app_wx.erl index c4527ba063..862772669c 100644 --- a/lib/observer/src/observer_app_wx.erl +++ b/lib/observer/src/observer_app_wx.erl @@ -93,7 +93,7 @@ init([Notebook, Parent, _Config]) -> DrawingArea = wxScrolledWindow:new(P2, [{winid, ?DRAWAREA}, {style,?wxFULL_REPAINT_ON_RESIZE}]), BG = wxWindow:getBackgroundColour(Apps), - wxWindow:setBackgroundStyle(DrawingArea, ?wxBG_STYLE_SYSTEM), + wxWindow:setBackgroundStyle(DrawingArea, ?wxBG_STYLE_PAINT), wxWindow:setVirtualSize(DrawingArea, 800, 800), wxSplitterWindow:setMinimumPaneSize(Splitter,50), wxSizer:add(Extra, DrawingArea, [{flag, ?wxEXPAND},{proportion, 1}]), diff --git a/lib/observer/src/observer_perf_wx.erl b/lib/observer/src/observer_perf_wx.erl index 50a6d6a915..6a848a8d27 100644 --- a/lib/observer/src/observer_perf_wx.erl +++ b/lib/observer/src/observer_perf_wx.erl @@ -99,13 +99,9 @@ make_win(Name, Parent, Sizer, Border) -> #win{name=Name, panel=Panel}. setup_graph_drawing(Panels) -> - IsWindows = element(1, os:type()) =:= win32, - IgnoreCB = {callback, fun(_,_) -> ok end}, Do = fun(#win{panel=Panel}) -> - wxWindow:setBackgroundStyle(Panel, ?wxBG_STYLE_SYSTEM), - wxPanel:connect(Panel, paint, [callback]), - IsWindows andalso - wxPanel:connect(Panel, erase_background, [IgnoreCB]) + wxWindow:setBackgroundStyle(Panel, ?wxBG_STYLE_PAINT), + wxPanel:connect(Panel, paint, [callback]) end, _ = [Do(Panel) || Panel <- Panels], UseGC = haveGC(), |