mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 02:42:49 -04:00
support fullscreen without window manager
This commit is contained in:
parent
d412984e74
commit
a23e77bde1
@ -436,6 +436,27 @@ process_events() {
|
||||
////////////////////////////////////////////////////////////////////
|
||||
void glxGraphicsWindow::
|
||||
set_properties_now(WindowProperties &properties) {
|
||||
if (_pipe == (GraphicsPipe *)NULL) {
|
||||
// If the pipe is null, we're probably closing down.
|
||||
GraphicsWindow::set_properties_now(properties);
|
||||
return;
|
||||
}
|
||||
|
||||
glxGraphicsPipe *glx_pipe;
|
||||
DCAST_INTO_V(glx_pipe, _pipe);
|
||||
|
||||
// Fullscreen mode is implemented with a hint to the window manager.
|
||||
// However, we also implicitly set the origin to (0, 0) and the size
|
||||
// to the desktop size, and request undecorated mode, in case the
|
||||
// user has a less-capable window manager (or no window manager at
|
||||
// all).
|
||||
if (properties.get_fullscreen()) {
|
||||
properties.set_undecorated(true);
|
||||
properties.set_origin(0, 0);
|
||||
properties.set_size(glx_pipe->get_display_width(),
|
||||
glx_pipe->get_display_height());
|
||||
}
|
||||
|
||||
GraphicsWindow::set_properties_now(properties);
|
||||
if (!properties.is_any_specified()) {
|
||||
// The base class has already handled this case.
|
||||
@ -445,9 +466,6 @@ set_properties_now(WindowProperties &properties) {
|
||||
// The window is already open; we are limited to what we can change
|
||||
// on the fly.
|
||||
|
||||
glxGraphicsPipe *glx_pipe;
|
||||
DCAST_INTO_V(glx_pipe, _pipe);
|
||||
|
||||
// We'll pass some property requests on as a window manager hint.
|
||||
WindowProperties wm_properties = _properties;
|
||||
wm_properties.add_properties(properties);
|
||||
@ -459,7 +477,7 @@ set_properties_now(WindowProperties &properties) {
|
||||
properties.clear_title();
|
||||
}
|
||||
|
||||
// Ditto for fullscreen.
|
||||
// Ditto for fullscreen mode.
|
||||
if (properties.has_fullscreen()) {
|
||||
_properties.set_fullscreen(properties.get_fullscreen());
|
||||
properties.clear_fullscreen();
|
||||
@ -609,7 +627,6 @@ open_window() {
|
||||
Visual *visual = visual_info->visual;
|
||||
int depth = visual_info->depth;
|
||||
|
||||
|
||||
if (!_properties.has_origin()) {
|
||||
_properties.set_origin(0, 0);
|
||||
}
|
||||
@ -695,8 +712,10 @@ open_window() {
|
||||
if (_properties.get_raw_mice()) {
|
||||
open_raw_mice();
|
||||
} else {
|
||||
glxdisplay_cat.error() <<
|
||||
"Raw mice not requested.\n";
|
||||
if (glxdisplay_cat.is_debug()) {
|
||||
glxdisplay_cat.debug()
|
||||
<< "Raw mice not requested.\n";
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user