mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 10:22:45 -04:00
some window confusions
This commit is contained in:
parent
6aaf1a6bdc
commit
bf179efd76
@ -201,9 +201,8 @@ set_wparams(const P3DWindowParams &wparams) {
|
|||||||
if (!_instance_window_opened && _got_fparams) {
|
if (!_instance_window_opened && _got_fparams) {
|
||||||
if (_splash_window == NULL) {
|
if (_splash_window == NULL) {
|
||||||
make_splash_window();
|
make_splash_window();
|
||||||
} else {
|
|
||||||
_splash_window->set_wparams(_wparams);
|
|
||||||
}
|
}
|
||||||
|
_splash_window->set_wparams(_wparams);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the instance in the sub-process.
|
// Update the instance in the sub-process.
|
||||||
|
@ -1026,10 +1026,11 @@ setup_window(P3DCInstance *inst, TiXmlElement *xwparams) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(HAVE_X11)
|
#elif defined(HAVE_X11)
|
||||||
// Bad! Casting to int loses precision.
|
// Use stringstream to decode the "long" attribute.
|
||||||
int xwindow;
|
const char *parent_cstr = xwparams->Attribute("parent_xwindow");
|
||||||
if (xwparams->Attribute("parent_xwindow", &xwindow)) {
|
if (parent_cstr != NULL) {
|
||||||
parent_window_handle = (long)xwindow;
|
istringstream strm(parent_cstr);
|
||||||
|
strm >> parent_window_handle;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -84,7 +84,13 @@ make_xml() {
|
|||||||
// The subprocess_window setting is applied by the caller.
|
// The subprocess_window setting is applied by the caller.
|
||||||
|
|
||||||
#elif defined(HAVE_X11)
|
#elif defined(HAVE_X11)
|
||||||
xwparams->SetAttribute("parent_xwindow", (unsigned long)_parent_window._xwindow);
|
// TinyXml doesn't support a "long" attribute. We'll use
|
||||||
|
// stringstream to do it ourselves.
|
||||||
|
{
|
||||||
|
ostringstream strm;
|
||||||
|
strm << _parent_window._xwindow;
|
||||||
|
xwparams->SetAttribute("parent_xwindow", strm.str());
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -62,8 +62,6 @@ P3DX11SplashWindow(P3DInstance *inst) :
|
|||||||
_image_filename_temp = false;
|
_image_filename_temp = false;
|
||||||
_install_label_changed = false;
|
_install_label_changed = false;
|
||||||
_install_progress = 0.0;
|
_install_progress = 0.0;
|
||||||
|
|
||||||
start_subprocess();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -76,6 +74,22 @@ P3DX11SplashWindow::
|
|||||||
stop_subprocess();
|
stop_subprocess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
// Function: P3DX11SplashWindow::set_wparams
|
||||||
|
// Access: Public, Virtual
|
||||||
|
// Description: Changes the window parameters, e.g. to resize or
|
||||||
|
// reposition the window; or sets the parameters for the
|
||||||
|
// first time, creating the initial window.
|
||||||
|
////////////////////////////////////////////////////////////////////
|
||||||
|
void P3DX11SplashWindow::
|
||||||
|
set_wparams(const P3DWindowParams &wparams) {
|
||||||
|
P3DSplashWindow::set_wparams(wparams);
|
||||||
|
|
||||||
|
if (_subprocess_pid == -1) {
|
||||||
|
start_subprocess();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
// Function: P3DX11SplashWindow::set_image_filename
|
// Function: P3DX11SplashWindow::set_image_filename
|
||||||
// Access: Public, Virtual
|
// Access: Public, Virtual
|
||||||
@ -402,7 +416,7 @@ subprocess_run() {
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
void P3DX11SplashWindow::
|
void P3DX11SplashWindow::
|
||||||
receive_command() {
|
receive_command() {
|
||||||
TiXmlDocument *doc = read_xml(_pipe_read, cerr);
|
TiXmlDocument *doc = read_xml(_pipe_read, nout);
|
||||||
if (doc == NULL) {
|
if (doc == NULL) {
|
||||||
// Pipe closed or something.
|
// Pipe closed or something.
|
||||||
_subprocess_continue = false;
|
_subprocess_continue = false;
|
||||||
|
@ -35,6 +35,7 @@ public:
|
|||||||
P3DX11SplashWindow(P3DInstance *inst);
|
P3DX11SplashWindow(P3DInstance *inst);
|
||||||
virtual ~P3DX11SplashWindow();
|
virtual ~P3DX11SplashWindow();
|
||||||
|
|
||||||
|
virtual void set_wparams(const P3DWindowParams &wparams);
|
||||||
virtual void set_image_filename(const string &image_filename,
|
virtual void set_image_filename(const string &image_filename,
|
||||||
bool image_filename_temp);
|
bool image_filename_temp);
|
||||||
virtual void set_install_label(const string &install_label);
|
virtual void set_install_label(const string &install_label);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user