From: David Herrmann Date: Tue, 23 Sep 2014 11:52:50 +0000 (+0200) Subject: terminal: provide display dimensions to API users X-Git-Tag: v217~447 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;ds=sidebyside;h=158c1e3e0c1e9dd8ebf1b93061e1c81805eac339;hp=a908d213557cfbe874b7bd1ae3a1b0d3c05c29e9;p=elogind.git terminal: provide display dimensions to API users Allow users to query the display dimensions of a grdev_display. This is required to properly resize the objects to be rendered. --- diff --git a/src/libsystemd-terminal/grdev.c b/src/libsystemd-terminal/grdev.c index fa1fc378c..aaac06ec3 100644 --- a/src/libsystemd-terminal/grdev.c +++ b/src/libsystemd-terminal/grdev.c @@ -301,6 +301,18 @@ const char *grdev_display_get_name(grdev_display *display) { return display->name; } +uint32_t grdev_display_get_width(grdev_display *display) { + assert_return(display, 0); + + return display->width; +} + +uint32_t grdev_display_get_height(grdev_display *display) { + assert_return(display, 0); + + return display->height; +} + bool grdev_display_is_enabled(grdev_display *display) { return display && display->enabled; } @@ -572,6 +584,8 @@ static bool display_cache(grdev_display *display) { } display_cache_targets(display); + display->width = display->tile->cache_w; + display->height = display->tile->cache_h; r = 0; diff --git a/src/libsystemd-terminal/grdev.h b/src/libsystemd-terminal/grdev.h index 5f745aaad..6ca8a767c 100644 --- a/src/libsystemd-terminal/grdev.h +++ b/src/libsystemd-terminal/grdev.h @@ -112,6 +112,8 @@ void grdev_display_set_userdata(grdev_display *display, void *userdata); void *grdev_display_get_userdata(grdev_display *display); const char *grdev_display_get_name(grdev_display *display); +uint32_t grdev_display_get_width(grdev_display *display); +uint32_t grdev_display_get_height(grdev_display *display); bool grdev_display_is_enabled(grdev_display *display); void grdev_display_enable(grdev_display *display);