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

Reply via email to