Skip to content

Commit 8cc0c37

Browse files
committed
Update implementation given feedback
1 parent 58a677d commit 8cc0c37

File tree

3 files changed

+22
-10
lines changed

3 files changed

+22
-10
lines changed

R/geom-.r

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -106,15 +106,15 @@ Geom <- ggproto("Geom",
106106

107107
setup_data = function(data, params) data,
108108

109-
# Combine data with defaults and set aesthetics from parameters
110-
use_defaults = function(self, data, params = list(), theme) {
111-
112-
# evaluates defaults given plot theme
109+
# evaluate defaults according to theme
110+
eval_defaults = function(self, theme) {
113111
if (length(theme) == 0) theme <- theme_grey()
114-
env <- new.env()
115-
env$theme <- theme
116-
defaults <- rlang::eval_tidy(self$default_aes, env)
117112

113+
lapply(self$default_aes, rlang::eval_tidy, data = list(theme = theme))
114+
},
115+
116+
# Combine data with defaults and set aesthetics from parameters
117+
use_defaults = function(self, data, defaults, params = list()) {
118118
# Fill in missing aesthetics with their defaults
119119
missing_aes <- setdiff(names(defaults), names(data))
120120

R/guide-legend.r

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,12 @@ guide_geom.legend <- function(guide, layers, default_mapping, theme) {
264264
n <- vapply(layer$aes_params, length, integer(1))
265265
params <- layer$aes_params[n == 1]
266266

267-
data <- layer$geom$use_defaults(guide$key[matched], params, theme)
267+
defaults <- layer$geom$eval_defaults(theme - theme)
268+
data <- layer$geom$use_defaults(
269+
data = guide$key[matched],
270+
defaults = defaults,
271+
params = params
272+
)
268273
} else {
269274
return(NULL)
270275
}
@@ -274,7 +279,11 @@ guide_geom.legend <- function(guide, layers, default_mapping, theme) {
274279
# Default is to exclude it
275280
return(NULL)
276281
} else {
277-
data <- layer$geom$use_defaults(NULL, layer$aes_params)[rep(1, nrow(guide$key)), ]
282+
defaults <- layer$geom$eval_defaults(theme = theme)
283+
data <- layer$geom$use_defaults(data = NULL,
284+
defaults = defaults,
285+
params = layer$aes_params
286+
)[rep(1, nrow(guide$key)), ]
278287
}
279288
}
280289

R/layer.r

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,8 +305,11 @@ Layer <- ggproto("Layer", NULL,
305305
compute_geom_2 = function(self, data, plot) {
306306
if (empty(data)) return(data)
307307

308+
# evaluate defaults for theme
309+
defaults <- self$geom$eval_defaults(theme = plot$theme)
310+
308311
# Combine aesthetics, defaults, & params
309-
self$geom$use_defaults(data, self$aes_params, plot$theme)
312+
self$geom$use_defaults(data, defaults = defaults, params = self$aes_params)
310313
},
311314

312315
finish_statistics = function(self, data) {

0 commit comments

Comments
 (0)