Hi again,
the STR was closed so I'll have to answer here.
Michael Sweet wrote:
> That's not how fullscreen() works. We actually resize the window, as
there
> is generally no way to ask the window manager to maximize the window
> (which is a completely different semantic than "fullscreen"...)
As far as I know, there is a way to ask the window manager when it's
ICCCM-compliant (virtually all modern wm's are). I don't understand how
the X-Window system works in detail but it seems to boil down to asking
the X server to deliver a '_NET_WM_STATE_FULLSCREEN' message to the
window manager (XSendEvent is going to be used for that).
> Given that fullscreen() is working as advertised, we will not be "fixing"
> this in FLTK. If you want to maximize the window, use:
>
> window->resize(Fl::x(), Fl::y(), Fl::w(), Fl::h());
Unfortunately it is not working as advertised. The docs say: 'Makes the
window completely fill the screen, ...', which is only the case if there
are no system panels on the screen.
Your proposal for using window->resize doesn't work either because my
window manager keeps panels on top of other windows and therefore covers
parts of my window.
As I understood (from messages on the list) that changing the current
implementation isn't desired (at least for 1.1.x) I didn't want to
propose a new implementation for fullscreen() just fix a tiny bug in the
current one which wrongly assumes that system panels are positioned only
at the lower screen border (see attached patch).
If it hasn't become clear what I'm trying to say I've put up a web page
which shows the problem (it's the second image where the top of the
'fullscreen()ed' window is hidden under the panel and a gap of the same
height as the panel at the bottom).
<http://frederik-sausmikat.pytalhost.de/fltk/fullscreen.html>
Maybe you want to consider changing the STR to 'Closed *with*
Resolution' :-)
Regards, Freddy
--- Fl_Window_fullscreen..cxx 2007-06-06 17:42:43.000000000 +0200
+++ Fl_Window_fullscreen.cxx 2007-06-06 17:46:48.000000000 +0200
@@ -80,7 +80,7 @@
resize(sx, sy, sw, sh);
#else
if (!x()) x(1); // force it to call XResizeWindow()
- resize(0,0,Fl::w(),Fl::h());
+ resize(Fl::x(),Fl::y(),Fl::w(),Fl::h());
#endif
}
_______________________________________________
fltk-dev mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-dev