diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/gdi/gfx_gdi.pas | 4 | ||||
-rw-r--r-- | src/corelib/gfxbase.pas | 2 | ||||
-rw-r--r-- | src/corelib/x11/gfx_x11.pas | 7 |
3 files changed, 11 insertions, 2 deletions
diff --git a/src/corelib/gdi/gfx_gdi.pas b/src/corelib/gdi/gfx_gdi.pas index e35023ba..d7ef5a70 100644 --- a/src/corelib/gdi/gfx_gdi.pas +++ b/src/corelib/gdi/gfx_gdi.pas @@ -1045,6 +1045,10 @@ begin DoMoveWindow(FLeft, FTop); end; + if waStayOnTop in FWindowAttributes then + SetWindowPos(FWinHandle, HWND_TOPMOST, 0, 0, 0, 0, + SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE); + // the forms require some adjustments before the Window appears SetWindowParameters; end; diff --git a/src/corelib/gfxbase.pas b/src/corelib/gfxbase.pas index 97438276..12522b61 100644 --- a/src/corelib/gfxbase.pas +++ b/src/corelib/gfxbase.pas @@ -21,7 +21,7 @@ type TWindowType = (wtChild, wtWindow, wtModalForm, wtPopup); - TWindowAttribute = (waSizeable, waAutoPos, waScreenCenterPos); + TWindowAttribute = (waSizeable, waAutoPos, waScreenCenterPos, waStayOnTop); TWindowAttributes = set of TWindowAttribute; TMouseCursor = (mcDefault, mcArrow, mcCross, mcIBeam, mcSizeEW, mcSizeNS, diff --git a/src/corelib/x11/gfx_x11.pas b/src/corelib/x11/gfx_x11.pas index f77b6f8e..04a9f9b4 100644 --- a/src/corelib/x11/gfx_x11.pas +++ b/src/corelib/x11/gfx_x11.pas @@ -1109,7 +1109,12 @@ begin //XSetTransientForHint(xapplication.display, FWinHandle, TfpgWindowImpl(Parent).FWinHandle); end; end; - + + // todo: This needs testing!! + if (FWindowType = wtPopup) and (waStayOnTop in FWindowAttributes) then + // we have a Splash screen + fpgApplication.netlayer.WindowSetType(FWinHandle, nwtSplash); + XSelectInput(xapplication.Display, wh, KeyPressMask or KeyReleaseMask or ButtonPressMask or ButtonReleaseMask or EnterWindowMask or LeaveWindowMask or |