From 33be0a19a206963f3c600484aea4d1b920b44fd1 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 1 Sep 2016 22:22:16 -0400 Subject: Add puglGetVisible() --- pugl/pugl.h | 6 ++++++ pugl/pugl_internal.h | 7 +++++++ pugl/pugl_osx.m | 2 ++ pugl/pugl_win.cpp | 2 ++ pugl/pugl_x11.c | 2 ++ 5 files changed, 19 insertions(+) diff --git a/pugl/pugl.h b/pugl/pugl.h index 4d5467a..07d3cf4 100644 --- a/pugl/pugl.h +++ b/pugl/pugl.h @@ -277,6 +277,12 @@ puglGetHandle(PuglView* view); PUGL_API void* puglGetContext(PuglView* view); +/** + Return true iff the view is currently visible. +*/ +PUGL_API bool +puglGetVisible(PuglView* view); + /** Return the timestamp (if any) of the currently-processing event. */ diff --git a/pugl/pugl_internal.h b/pugl/pugl_internal.h index 778ff1f..6e7e621 100644 --- a/pugl/pugl_internal.h +++ b/pugl/pugl_internal.h @@ -68,6 +68,7 @@ struct PuglViewImpl { bool ignoreKeyRepeat; bool redisplay; bool resizable; + bool visible; uint32_t event_timestamp_ms; }; @@ -167,6 +168,12 @@ puglGetHandle(PuglView* view) return view->handle; } +bool +puglGetVisible(PuglView* view) +{ + return view->visible; +} + uint32_t puglGetEventTimestamp(PuglView* view) { diff --git a/pugl/pugl_osx.m b/pugl/pugl_osx.m index 7888c6c..ecf9373 100644 --- a/pugl/pugl_osx.m +++ b/pugl/pugl_osx.m @@ -526,12 +526,14 @@ void puglShowWindow(PuglView* view) { [view->impl->window setIsVisible:YES]; + view->visible = true; } void puglHideWindow(PuglView* view) { [view->impl->window setIsVisible:NO]; + view->visible = false; } void diff --git a/pugl/pugl_win.cpp b/pugl/pugl_win.cpp index b834143..c061f25 100644 --- a/pugl/pugl_win.cpp +++ b/pugl/pugl_win.cpp @@ -209,6 +209,7 @@ puglShowWindow(PuglView* view) PuglInternals* impl = view->impl; ShowWindow(impl->hwnd, SW_SHOWNORMAL); + view->visible = true; } void @@ -217,6 +218,7 @@ puglHideWindow(PuglView* view) PuglInternals* impl = view->impl; ShowWindow(impl->hwnd, SW_HIDE); + view->visible = false; } void diff --git a/pugl/pugl_x11.c b/pugl/pugl_x11.c index 5cd4373..4d7010b 100644 --- a/pugl/pugl_x11.c +++ b/pugl/pugl_x11.c @@ -347,12 +347,14 @@ void puglShowWindow(PuglView* view) { XMapRaised(view->impl->display, view->impl->win); + view->visible = true; } void puglHideWindow(PuglView* view) { XUnmapWindow(view->impl->display, view->impl->win); + view->visible = false; } void -- cgit v1.2.3