mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-18 20:15:35 -04:00
Revert "Remove child window from windows gamewindow backend"
This reverts commit f112751dd64fcd51237b3449b874fcc1d5c92b61.
This commit is contained in:
parent
f112751dd6
commit
273d276086
@ -47,7 +47,7 @@ namespace OpenTK.Platform.Windows
|
|||||||
readonly WindowProcedure WindowProcedureDelegate;
|
readonly WindowProcedure WindowProcedureDelegate;
|
||||||
|
|
||||||
bool class_registered, disposed, exists;
|
bool class_registered, disposed, exists;
|
||||||
WinWindowInfo window;
|
WinWindowInfo window, child_window;
|
||||||
WindowState windowState = WindowState.Normal;
|
WindowState windowState = WindowState.Normal;
|
||||||
bool focused;
|
bool focused;
|
||||||
bool mouse_outside_window = true;
|
bool mouse_outside_window = true;
|
||||||
@ -66,8 +66,13 @@ namespace OpenTK.Platform.Windows
|
|||||||
|
|
||||||
public WinGLNative(int x, int y, int width, int height, string title, GameWindowFlags options, DisplayDevice device) {
|
public WinGLNative(int x, int y, int width, int height, string title, GameWindowFlags options, DisplayDevice device) {
|
||||||
WindowProcedureDelegate = WindowProcedure;
|
WindowProcedureDelegate = WindowProcedure;
|
||||||
|
// To avoid issues with Ati drivers on Windows 6+ with compositing enabled, the context will not be
|
||||||
|
// bound to the top-level window, but rather to a child window docked in the parent.
|
||||||
window = new WinWindowInfo(
|
window = new WinWindowInfo(
|
||||||
CreateWindow(x, y, width, height, title, options, device, IntPtr.Zero), null);
|
CreateWindow(x, y, width, height, title, options, device, IntPtr.Zero), null);
|
||||||
|
child_window = new WinWindowInfo(
|
||||||
|
CreateWindow(0, 0, ClientSize.Width, ClientSize.Height, title, options, device, window.WindowHandle), window);
|
||||||
|
|
||||||
exists = true;
|
exists = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,7 +122,7 @@ namespace OpenTK.Platform.Windows
|
|||||||
API.GetClientRect(handle, out rect);
|
API.GetClientRect(handle, out rect);
|
||||||
client_rectangle = rect.ToRectangle();
|
client_rectangle = rect.ToRectangle();
|
||||||
|
|
||||||
API.SetWindowPos(window.WindowHandle, IntPtr.Zero, 0, 0, ClientRectangle.Width, ClientRectangle.Height,
|
API.SetWindowPos(child_window.WindowHandle, IntPtr.Zero, 0, 0, ClientRectangle.Width, ClientRectangle.Height,
|
||||||
SetWindowPosFlags.NOZORDER | SetWindowPosFlags.NOOWNERZORDER |
|
SetWindowPosFlags.NOZORDER | SetWindowPosFlags.NOOWNERZORDER |
|
||||||
SetWindowPosFlags.NOACTIVATE | SetWindowPosFlags.NOSENDCHANGING);
|
SetWindowPosFlags.NOACTIVATE | SetWindowPosFlags.NOSENDCHANGING);
|
||||||
if (suppress_resize <= 0 && Resize != null)
|
if (suppress_resize <= 0 && Resize != null)
|
||||||
@ -348,6 +353,7 @@ namespace OpenTK.Platform.Windows
|
|||||||
|
|
||||||
API.UnregisterClass(ClassName, Instance);
|
API.UnregisterClass(ClassName, Instance);
|
||||||
window.Dispose();
|
window.Dispose();
|
||||||
|
child_window.Dispose();
|
||||||
|
|
||||||
if (Closed != null)
|
if (Closed != null)
|
||||||
Closed(this, EventArgs.Empty);
|
Closed(this, EventArgs.Empty);
|
||||||
@ -362,7 +368,7 @@ namespace OpenTK.Platform.Windows
|
|||||||
private void EnableMouseTracking() {
|
private void EnableMouseTracking() {
|
||||||
TrackMouseEventStructure me = new TrackMouseEventStructure();
|
TrackMouseEventStructure me = new TrackMouseEventStructure();
|
||||||
me.Size = TrackMouseEventStructure.SizeInBytes;
|
me.Size = TrackMouseEventStructure.SizeInBytes;
|
||||||
me.TrackWindowHandle = window.WindowHandle;
|
me.TrackWindowHandle = child_window.WindowHandle;
|
||||||
me.Flags = TrackMouseEventFlags.LEAVE;
|
me.Flags = TrackMouseEventFlags.LEAVE;
|
||||||
|
|
||||||
if (!API.TrackMouseEvent(ref me))
|
if (!API.TrackMouseEvent(ref me))
|
||||||
@ -688,7 +694,7 @@ namespace OpenTK.Platform.Windows
|
|||||||
}
|
}
|
||||||
|
|
||||||
public IWindowInfo WindowInfo {
|
public IWindowInfo WindowInfo {
|
||||||
get { return window; }
|
get { return child_window; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeyboardDevice Keyboard {
|
public KeyboardDevice Keyboard {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user