From dbbbeddad0a5b877b94e618fc79827c5bbe7afea Mon Sep 17 00:00:00 2001 From: Josef Heinen Date: Thu, 24 Aug 2017 22:27:04 -0400 Subject: [PATCH 1/3] gr: always use NDCs when inquiring text extents --- src/backends/gr.jl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/backends/gr.jl b/src/backends/gr.jl index 092b00d3..43e55d4f 100644 --- a/src/backends/gr.jl +++ b/src/backends/gr.jl @@ -567,12 +567,15 @@ function gr_set_yticks_font(sp) end function gr_get_ticks_size(ticks, i) + GR.savestate() + GR.selntran(0) l = 0.0 for (cv, dv) in zip(ticks...) tb = gr_inqtext(0, 0, string(dv))[i] tb_min, tb_max = extrema(tb) l = max(l, tb_max - tb_min) end + GR.restorestate() return l end From 78b0918216033b195494b7cc55709a2f6e7c212f Mon Sep 17 00:00:00 2001 From: Josef Heinen Date: Fri, 25 Aug 2017 13:54:56 -0400 Subject: [PATCH 2/3] gr: defer the calculation of padding constraints --- src/backends/gr.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backends/gr.jl b/src/backends/gr.jl index 43e55d4f..d4d8e3bf 100644 --- a/src/backends/gr.jl +++ b/src/backends/gr.jl @@ -579,7 +579,7 @@ function gr_get_ticks_size(ticks, i) return l end -function _update_min_padding!(sp::Subplot{GRBackend}) +function gr_update_min_padding(sp::Subplot{GRBackend}) # Add margin given by the user leftpad = 2mm + sp[:left_margin] toppad = 2mm + sp[:top_margin] @@ -622,6 +622,8 @@ end function gr_display(sp::Subplot{GRBackend}, w, h, viewport_canvas) + gr_update_min_padding(sp) + # the viewports for this subplot viewport_subplot = gr_viewport_from_bbox(sp, bbox(sp), w, h, viewport_canvas) viewport_plotarea[:] = gr_viewport_from_bbox(sp, plotarea(sp), w, h, viewport_canvas) From a5751895f0e3807bb7ce5fff833134bd836671c7 Mon Sep 17 00:00:00 2001 From: Josef Heinen Date: Sat, 26 Aug 2017 06:49:00 -0400 Subject: [PATCH 3/3] gr: update padding constraints before first plot --- src/backends/gr.jl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/backends/gr.jl b/src/backends/gr.jl index d4d8e3bf..8c32e6ec 100644 --- a/src/backends/gr.jl +++ b/src/backends/gr.jl @@ -579,7 +579,7 @@ function gr_get_ticks_size(ticks, i) return l end -function gr_update_min_padding(sp::Subplot{GRBackend}) +function _update_min_padding!(sp::Subplot{GRBackend}) # Add margin given by the user leftpad = 2mm + sp[:left_margin] toppad = 2mm + sp[:top_margin] @@ -620,9 +620,8 @@ function gr_update_min_padding(sp::Subplot{GRBackend}) sp.minpad = (leftpad, toppad, rightpad, bottompad) end - function gr_display(sp::Subplot{GRBackend}, w, h, viewport_canvas) - gr_update_min_padding(sp) + _update_min_padding!(sp) # the viewports for this subplot viewport_subplot = gr_viewport_from_bbox(sp, bbox(sp), w, h, viewport_canvas)