diff --git a/NEWS.md b/NEWS.md index 1a887f95ba..92f111dbb0 100644 --- a/NEWS.md +++ b/NEWS.md @@ -127,6 +127,8 @@ * New function `get_strip_labels()` to retrieve facet labels (@teunbrand, #4979) * Fixed bug in `position_dodge2()`'s identification of range overlaps (@teunbrand, #5938, #4327). +* Fixed bug where empty discrete scales weren't recognised as such + (@teunbrand, #5945). # ggplot2 3.5.1 diff --git a/R/scale-discrete-.R b/R/scale-discrete-.R index 82bb8eb8fe..8fea10caf2 100644 --- a/R/scale-discrete-.R +++ b/R/scale-discrete-.R @@ -130,7 +130,9 @@ ScaleDiscretePosition <- ggproto("ScaleDiscretePosition", ScaleDiscrete, }, is_empty = function(self) { - is.null(self$range$range) && is.null(self$limits) && is.null(self$range_c$range) + is.null(self$range$range) && + (is.null(self$limits) || is.function(self$limits)) && + is.null(self$range_c$range) }, reset = function(self) {