diff options
author | Liong Sauw Ming <ming@teluu.com> | 2011-12-19 06:16:34 +0000 |
---|---|---|
committer | Liong Sauw Ming <ming@teluu.com> | 2011-12-19 06:16:34 +0000 |
commit | c297f3477e21e31976f417c3b3d50529f6b84b4c (patch) | |
tree | 95e380440185bb84a5fc328b228e953ce7d74cda /pjmedia/src | |
parent | 55014f1e6ffb3f61bafe0ca0ed7f9c855149be07 (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')
-rw-r--r-- | pjmedia/src/pjmedia-videodev/sdl_dev.c | 12 |
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) |