diff --git a/panda/src/windisplay/winGraphicsWindow.cxx b/panda/src/windisplay/winGraphicsWindow.cxx index aec7f99ec8..b0d21d6e10 100644 --- a/panda/src/windisplay/winGraphicsWindow.cxx +++ b/panda/src/windisplay/winGraphicsWindow.cxx @@ -868,8 +868,24 @@ open_regular_window() { HINSTANCE hinstance = GetModuleHandle(NULL); _hparent = NULL; - if (_properties.has_parent_window()) { - _hparent = (HWND) _properties.get_parent_window(); + + WindowHandle *window_handle = _properties.get_parent_window(); + if (window_handle != NULL) { + windisplay_cat.info() + << "Got parent_window " << *window_handle << "\n"; + WindowHandle::OSHandle *os_handle = window_handle->get_os_handle(); + if (os_handle != NULL) { + windisplay_cat.info() + << "os_handle type " << os_handle->get_type() << "\n"; + + /*if (os_handle->is_of_type(WinGraphicsPipe::WinHandle::get_class_type())) { + WinGraphicsPipe::WinHandle *win_handle = DCAST(WinGraphicsPipe::WinHandle, os_handle); + _hparent = win_handle->get_handle(); + } else*/ if (os_handle->is_of_type(WindowHandle::IntHandle::get_class_type())) { + WindowHandle::IntHandle *int_handle = DCAST(WindowHandle::IntHandle, os_handle); + _hparent = (HWND)int_handle->get_handle(); + } + } } if (!_hparent) {