Thanks for your help. What you wrote proves to me, that it's probably not a problem with Lazarus/LCL, but with window manager (or something else, but still related to OS, not IDE).
Your tips about width and height of form were obvoius to me, but in this application they really don't matter because code you and I were posting in this thread is sort of PoC, just to show strange and unexpected behavioiur of ShowModal. In real life applications I check resolution of screen and adjust my window size to it (for example by using "width:=screen.width"). As for now, one thing is important - it doesnt't matter, whether size of the window is hard-coded or adjusted to size of the screen. As long as I don't play with Top and Left, ShowModal works fine.
Look at this code - it's final version of my tests. As you can see, I've changed width and height to fit screen size, but as I wrote above, it doesn't change anything.
BorderStyle := bsNone;
FormStyle := fsSystemStayOnTop;
Left := 0;
Top := 0;
Width := Screen.Width;
Height := Screen.Height;
When lines 3 and 4 are commented out, ShowModal works properly, but taskbar is still visible on bottom of the screen. And when I uncomment lines setting Top and Left to zero, window is really shown on full screen. but ShowModal stops working - second window is displayed behind main window and I'm not able to bring it to front.
You can see on screenshot attached to this post how application looks, when I don't set Left and Top to 0. The bar at the bottom of screen is OS taskbar. In your last post, you weren't certain to which bar I was referring to