summaryrefslogtreecommitdiff
path: root/pjmedia/src/pjmedia-videodev/sdl_dev.c
diff options
context:
space:
mode:
authorLiong Sauw Ming <ming@teluu.com>2011-12-19 06:16:34 +0000
committerLiong Sauw Ming <ming@teluu.com>2011-12-19 06:16:34 +0000
commitc297f3477e21e31976f417c3b3d50529f6b84b4c (patch)
tree95e380440185bb84a5fc328b228e953ce7d74cda /pjmedia/src/pjmedia-videodev/sdl_dev.c
parent55014f1e6ffb3f61bafe0ca0ed7f9c855149be07 (diff)
Fixed #1429: Problem with SDL on setting window's position when window is hidden
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3914 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src/pjmedia-videodev/sdl_dev.c')
-rw-r--r--pjmedia/src/pjmedia-videodev/sdl_dev.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/pjmedia/src/pjmedia-videodev/sdl_dev.c b/pjmedia/src/pjmedia-videodev/sdl_dev.c
index 109b22bd..d54b4418 100644
--- a/pjmedia/src/pjmedia-videodev/sdl_dev.c
+++ b/pjmedia/src/pjmedia-videodev/sdl_dev.c
@@ -1093,8 +1093,20 @@ static pj_status_t set_cap(void *data)
const void *pval = scap->pval.cpval;
if (cap == PJMEDIA_VID_DEV_CAP_OUTPUT_POSITION) {
+ /**
+ * Setting window's position when the window is hidden also sets
+ * the window's flag to shown (while the window is, actually,
+ * still hidden). This causes problems later when setting/querying
+ * the window's visibility.
+ * See ticket #1429 (http://trac.pjsip.org/repos/ticket/1429)
+ */
+ Uint32 flag = SDL_GetWindowFlags(strm->window);
+ if (flag & SDL_WINDOW_HIDDEN)
+ SDL_ShowWindow(strm->window);
SDL_SetWindowPosition(strm->window, ((pjmedia_coord *)pval)->x,
((pjmedia_coord *)pval)->y);
+ if (flag & SDL_WINDOW_HIDDEN)
+ SDL_HideWindow(strm->window);
return PJ_SUCCESS;
} else if (cap == PJMEDIA_VID_DEV_CAP_OUTPUT_HIDE) {
if (*(pj_bool_t *)pval)