Closed Bug 126685 Opened 23 years ago Closed 15 years ago

Mozilla should have a Full-screen mode (all platforms - Mac, Unix/Linux etc.)

Categories

(Core :: XUL, enhancement, P2)

enhancement

Tracking

()

VERIFIED FIXED
mozilla1.9.3a1

People

(Reporter: diego, Unassigned)

References

()

Details

(Keywords: platform-parity, verified1.9.2)

Attachments

(5 files, 3 obsolete files)

Continuing from where bug 68136 left off... Now that we have full screen mode on Windows, we need this for all platforms.
Keywords: pp
Summary: Mozilla should have a Full-screen mode → Mozilla should have a Full-screen mode (all platforms)
->future
Target Milestone: --- → Future
Should this bug be split into a separate bug for each platform?
I think the low priority for this on all platforms is really quite bizarre. One of the stated aims of full-screen mode was to allow 'web-kiosks', where the user has no interaction with the outside world, and just, for example, browses a shops personal website. *Surely* one of the most obvious directions that someone setting one of these up is to go with Linux - if there isn't going to be any user interaction, and all you ever have to set up is a browser, you'll go for the free, reliable, stable, and relatively tamper-free option. Who wants to fork out 100 quid / dollars for each web-kiosk?!?!? Sorry, that doesn't help fix the bug, and I guess would be best expressed by a vote, but I just want to point out that this really shouldn't be considered principally a 'user' bug, and thus one solved 90% when 90% of the users (i.e. Windows peeps) can do it - the market is *definitely* there for a Linux version.
copying over two comments from bug 68136 which affect Linux, and belong here now: ------- Additional Comment #270 From Chris B. Sears 2002-01-31 21:37 ------- > c) Need ability to hide common desktop utils like gnome/kde taskbar, no > estimate as again I have no knowledge in this area. In KDE/Qt, QWidget::showFullScreen() and QWidget::showNormal() are what you're looking for. These got added in QT 2.1 and they are used in Konqueror in konq_mainwindow.cc Chris ------- Additional Comment #271 From Chris B. Sears 2002-01-31 21:48 ------- BTW, QWidget::showFullScreen() and QWidget::showNormal() work for Gnome as well, courtesy the ICCCM I believe. Chris
Nick, no let's try to keep this focussed for the moment. Once we have one implementation we can spin off the missing ones. Nominating for Mozilla 1.1, we all want to have this in as soon as possible.
Depends on: 68136
Keywords: mozilla1.1
Blocks: 3341
No longer blocks: 3341
mpt, why did you remove the dependency on bug 3341 (from bug 68136 also)?
Blocks: 3341
This was why I was against filing a new bug for full screen other platforms... Please correct me if I'm wrong, but shouldn't most (if not) dependencies from bug 68136 be migrated here now? Mozilla is still a cross platform package. mpt, if you're going to continue to remove this bug from blocking bug 3341, please at least explain why you're doing this.
I don't speak for mpt, but it seems to me that full-screen mode is not necessary for a kiosk mode, which is what bug 3341 is about. Yes, some kiosk applications might use full-screen, but they are independent. Actually, mpt has already explained (comment 43 in bug 3341 ) why full-screen and kiosk mode are not dependent on each other. I'll leave it others more familiar than me to change the dependencies, but for myself, I don't know why people feel so strongly that 3341 should depend on this on.
It's true that you *can* set up a kiosk that does not run in fullscreen mode, but the natural thing is to have it take up everything, am I wrong? But let us not bicker. Just leave the dependency as a sign that the two bugs are related.
Summary: Mozilla should have a Full-screen mode (all platforms) → Make full-screen mode work on Mac, Linux
Why was the Summary changed? Does that mean BeOS, QNX, etc. will never have a full screen mode?
It's considered good form to explain a summary change. Changing summary back, as the previous comment explains there is no good reason to restrict fullscreen modes to Windows, Linux and Mac.
Summary: Make full-screen mode work on Mac, Linux → Mozilla should have a Full-screen mode (all platforms)
Re-adding Mac and Unix/Linux into current summary. It will be easier to find the bug via the Bugzilla query page...
Summary: Mozilla should have a Full-screen mode (all platforms) → Mozilla should have a Full-screen mode (all platforms - Mac, Unix/Linux etc.)
taking to implement for the Gtk Frontend
Assignee: hewitt → cbiesinger
Depends on: 133881
This turned out to be more difficult than I thought. I'll try the more complex solution tomorrow, maybe I'll have a patch then.
Target Milestone: Future → mozilla1.1alpha
*** Bug 136522 has been marked as a duplicate of this bug. ***
Adding OS/2 to the platform list in the subject.
Summary: Mozilla should have a Full-screen mode (all platforms - Mac, Unix/Linux etc.) → Mozilla should have a Full-screen mode (all platforms - Mac, Unix/Linux, OS/2, etc.)
Julien, OS/2 already has a fullscreen mode if bug 133881 is not lying... Changing summary back to include only the platforms which do not have a fullscreen mode yet, sigh.
Summary: Mozilla should have a Full-screen mode (all platforms - Mac, Unix/Linux, OS/2, etc.) → Mozilla should have a Full-screen mode (all platforms - Mac, Unix/Linux etc.)
OK, never mind. I guess I didn't know about it.
1.0rc2 on Linux can be coerced into having fullscreen mode (plays havoc in Xinerama presently and toolbar (kicker in KDE 3) doesn't disappear) I unzipped comm.jar and added the following from a windows copy to content/navigator/platformNavigationBindings.xul + <key id="key_fullScreen" keycode="VK_F11" command="View:FullScreen"/> </keyset> I suppose I could have deleted the hide menu item bit as well The reason I did all this (aside from seeing if it would work) was to sort out the buttons as displayed by Orbit 3, under fullscreen conditions, which I've been resurrecting, currently hosted at work : http://www.alfordot.com/e/p/cdn/orbit3/ wanted fullscreen under Linux, since I've been doing the chrome dev here
*** Bug 146454 has been marked as a duplicate of this bug. ***
Chris, this sounds very interesting, but I have not been able to make this work with a current branch nightly. Is this RC2 only? Could you give a few detailed steps to make this work? Thanks.
I neglected to mention rejarring comm.jar, I only tried on rc2 I've got another branch build compiling now, I might try it on that, although rc3 is out ! The menu entry is in navigator.xul I think; it appeared to me that buggy functionality is in place, but not visible as it doesn't do various things as listed above; and as I reported, fullscreen goes to 2048, on Xinerama pairing
it's not in place because fullscreen should hide windows decorations, afaict, which is pretty difficult on X11 - a new window needs to be created and the old contents be transferred to it. my current impl. of that doesn't really work... keypresses don't work in the new window
Target Milestone: mozilla1.1alpha → Future
I'll use a different solution - do what galeon does, and simply move the title bar outside the screen. I'll ask them if I can use their code under MPL/GPL/LGPL, and attach a patch if I may.
Christian, if you use a window manager with virtual desktops does this technique mean that mozilla will peak out on another desktop?
IIRC, the way Christian wants to go is known to have problems with Xinerama and is not "The Right Way (TM)" to do it. But also Galeon chose that way because the solution which is believed to be "The Right Way (TM)" is known to have problems with a certian number of window managers...
Given the incredible amount of window managers available, isn't it inevitable that there will be problems with a few? Given the options, I don't think implementing in this way would be a bad idea... Unless there's a "right" way that I don't know about. If that's the case, maybe the fullscreen implementation should be postponed. I however, don't think it implementing it in this way would be such a bad idea.
>IIRC, the way Christian wants to go is known to have problems with Xinerama and >is not "The Right Way (TM)" to do it. Galeon has special Code for Xinerama which I'll copy too. "The Right Way (TM)" doesn't work with my window manager (sawfish, a very common one) unless I do it by creating a new window w/o decorations, which is a) difficult, b) I couldn't get it to run correctly c) requires additional 4 bytes per window (ok, that's not much, but...) >Christian, if you use a window manager with virtual desktops does this >technique mean that mozilla will peak out on another desktop? No. I just tested that, and it doesn't.
ok, current status: the three galeon developers who have worked on the fullscreen code have agreed to triple-licensing. I'll do some final tests of the code and then attach the patch here.
> No. I just tested that, and it doesn't. Did you test on some other window managers? I'm pretty sure that some window managers deal with virtual desktops differently. Some restrain windows to the virtual desktop, but some(like E) allow you to have a window extend to a different virtual desktop.
I tested with sawfish, which does allow a window to extend to more than one virtual desktop. I do not have another window manager that I can test with.
I tried out the patch, and my window decorations never reappear after leaving full screen mode. Personally, I would be willing to call this a 'feature', and it is infinitely preferable to the window decorations appearing when they weren't there before I entered full screen mode(since I normally have window decorations set to borderless for Mozilla[but I changed them to default to test this cause I was curious about the other virtual desktop thing]), but... I am using Enlightenment 0.16.5-6[Debian] and Gnome 1.4 and Enlightenment theme 'ShinyMetal'
Attached patch new patch (GTK)Splinter Review
oops,looks like I didn't attach the latest version of the patch
Attachment #88464 - Attachment is obsolete: true
Attached image KDE screenshot w/new patch (GTK) (obsolete) —
I just finished compiling the current CVS/w new patch. I've attached a screen shot of full screen in KDE. (Sorry about size/quality) The window decorations are still there along w/the toolbar on the bottom. I'll see if I can try it in gnome too.
Attached image Gnome screenshot w/new patch (GTK) (obsolete) —
Here's the gnome shot... The toolbar disappears, but the window decorations are still there. KDE, btw was 3.0.1, and gnome is 1.4 on Mandrake 8.2
toolbar at bottom: sorry, can't do anything about that. decos still there: hmm. are you sure that you rebuilt the dom/ directory too?
I pulled CVS around 10:00 this morning, applied "new patch (GTK)" and waited (4hours!) for it to build... I don't think I missed anything, but I don't have much experience building mozilla.
I just pulled and built with your patch applied - works flawlessly (GNOME and sawfish). Thanks and congratulations! Now let's get this baby reviewed and checked in!
Keywords: patch, review
which ./configure options are people using to build ? does the Xinerama code make the fullscreened window stick to a single head ? TIA cdn -- Orbit3 lives Get Orbit3+1 and Orbit Retro from : http://themes.mozdev.org - mostly Stable
This is my .mozconfig: ac_add_options --enable-optimize="-O2 -march=k6 -mcpu=k6" ac_add_options --enable-crypto ac_add_options --enable-extensions ac_add_options --with-extensions=default,irc ac_add_options --disable-debug ac_add_options --disable-dtd-debug ac_add_options --disable-jsd ac_add_options --disable-ldap ac_add_options --disable-xprint ac_add_options --disable-logging ac_add_options --disable-mailnews ac_add_options --disable-tests ac_add_options --disable-accessibility ac_add_options --disable-bidi ac_add_options --disable-mathml ac_add_options --disable-postscript
Blocks: 123569
I'm building with .mozconfig : ac_add_options --disable-tests ac_add_options --disable-debug ac_add_options --enable-optimize ac_add_options --without-system-nspr ac_add_options --enable-crypto #comment to disable PSM/SSL support ac_add_options --enable-svg # mk_add_options MOZ_INTERNAL_LIBART_LGPL=1 mk_add_options MOZILLA_OFFICIAL=1 mk_add_options BUILD_OFFICIAL=1 on a 700MHz Celeron, and F11 under KDE/Linux still goes across both heads under Xinerama, is this the correct behaviour ? cdn
http://mozilla.org/xpapps/MachVPlan/Full_Screen_Mode.html is the closest thing i found to a full screen mode specification, and it doesn't seem to talk about what to do for multiple monitors. from the windows bugs, i think that end users expect apps to only full screen on a single window (not always primary), I haven't seen enough bugs from users about fullscreening a window that straddled screens (but afaik we can't full screen to aux monitors on windows yet so that makes sense). My feeling is that for straddling windows, we should consider using one of the following points for deciding which screen to use: (top-left corner, center). Before making a decission, I'd love to see the results of a usability study on the subject :-). Trudelle: i guess you own the spec, can you clarify or indicate how [in]accurate my thoughts are? For reference, (yes, the following links are to aid in answering full screen mode specification questions, please don't complain that they are about win32) http://msdn.microsoft.com/library/en-us/cstask/html/csconwindowmanagement.asp is appears to be MSVC6's full screen mode spec (among other things) http://msdn.microsoft.com/library/en-us/gdi/monitor_3lrn.asp appears to spec VGA mode full screen, which i think is what people think of when they full screen a command prompt, or a dos game, or a movie, and probably does *NOT* relate to GUI apps that enter full screen mode. An amusing Mac reference for netscape netcaster: http://www.netscape.com/eng/mozilla/4.0/relnotes/relnotesm.html (multiple monitors aren't supported) Note that this bug appears to be drifting heavily to the Gtk toolkit, do people want to file new bugs for Qt, MacOS, Photon and BeOS? -- I can also file a bug asking for spec clarification if necessary...
Chris, hm, that's not as intended. it should go only over the screen with contains the largest part of the mozilla window. I'll look into that. timeless, feel free to file bugs for the other toolkits (you missed xlib, btw)
so... does the patch hide window decorations on KDE for anyone? doesn't for me, and I suppose this is because KDE doesn't allow doing it that way. can we just ignore KDE please? re xinerama, I'll look at that tomorrow. of course, testing will be difficult, due to lack of a xinerama setup.
This does not really satisfy the criteria for bug 123569: 1) The patch does not work yet (comment 42) 2) The patch is not "rotting"; I'm sure biesi can figure out how to get reviews. ;)
No longer blocks: 123569
Ahh, just remembered; Chris, you don't compile with --enable-xinerama. In that case, that behaviour is expected & there's nothing I can do about it, I think.
Timeless, that's just a dev plan, not a real spec. I agree with comment #44; it is a full *screen* mode, not intended to use the entire desktop to display a single window.
Christian, added ac_add_options --enable-xinerama to .mozconfig incremental (make -f client.mk) builds crash, will try make clean distclean && make -f client.mk on trunk and branch I suppose --enable-xinerama should have been obvious :¬) cdn
addendum, they crash when using either View > Fullscreen or F11 cdn
trunk still crashes on View > Fullscreen and F11 as does branch for both methods cdn
oh great... (btw, branch is irrelevant, the patch won't get there) can you get a stacktrace?
if I know how to; both seem to crash "cleanly" cdn
if you have a debug build: ./mozilla -g run <wait until it comes up, cause crash> bt then you get a stacktrace
building from this morning's 'make clean distclean && make -f client.mk' make -f client.mk build with adjusted .mozconfig : #ac_add_options --disable-tests #ac_add_options --disable-debug ac_add_options --enable-optimize ac_add_options --without-system-nspr #ac_add_options --without-system-zlib #ac_add_options --without-system-jpeg #ac_add_options --without-system-png #ac_add_options --without-system-mng ac_add_options --enable-crypto #comment to disable PSM/SSL support ac_add_options --enable-svg # ac_add_options --enable-xinerama # mk_add_options MOZ_INTERNAL_LIBART_LGPL=1 mk_add_options MOZILLA_OFFICIAL=1 mk_add_options BUILD_OFFICIAL=1 # cdn
that means a stack trace is probably useless... can you try anyway?
you mean the "clean" crash ? >can you try anyway? yes, it's building as I type cdn
eh, do you have more than one crash? oh, you didn't already have a build? In that case, it would have been better if you had used --disable-optimize --enable-debug (takes 1.5 GB or so, though)...
[same "crash" both branch and trunk] anyway, I've Ctrl-C'ed the other build, it'll save it keeping me awake [23:12 BST now] I'll start it again --enable-debug and --disable-optimize tomorrow cdn
The "cleanlinnes" on the crash is probably bug 148453
pertinent(?) bit at end: /opt/src/mozilla_trunk/mozilla/dist/bin/mozilla-bin: error while loading shared libraries: /opt/src/mozilla_trunk/mozilla/dist/bin/components/libwidget_gtk.so: undefined symbol: XineramaIsActive crash from View > Fullscreen, haven't got it to restart to test F11 : ) cdn
[ profile hiccup : ) ] F11 does exactly the same /opt/src/mozilla_trunk/mozilla/dist/bin/mozilla-bin: error while loading shared libraries: /opt/src/mozilla_trunk/mozilla/dist/bin/components/libwidget_gtk.so: undefined symbol: XineramaIsActive HTH Christian cdn
Hm, so I didn't notice this bug when I filed and fixed bug 157371 (implement nsIWidget::HideWindowChrome on gtk). I'll have to say that this patch looks a whole lot more complicated than the one I did in that bug, although I haven't tested my patch on multi-head displays.
Brian, I just pulled and built from CVS... Your work does not really create a true full screen mode, I still have window decorations with sawfish-gnome 1.0.1.20020116 on Debian Woody. Seems to be a positioning problem, though, the window is larger than the screen and if I move it a bit I can make it cover the screen without the decorations being visible. Biesi's patch did not have these problems.
Did you test with my patch from bug 157371 manually applied, or with the current trunk source as it is in CVS? The first patch on that bug had some problems; I tested the second patch with sawfish and it seems to work.
Ok, I had the wrong answer to blizzard's question about whether we need to support calling this on a non-toplevel widget. We do. Patch coming up to fix this problem and enable fullscreen mode.
Applied your latest patch, rebuilt and all is well. Window decorations are hidden as they should be, we have a true full screen mode. Please get this reviewed and checked in as soon as possible. Good work!
Comment on attachment 91760 [details] [diff] [review] Fix toplevel widget problem and enable fullscreen mode r=blizzard
Attachment #91760 - Flags: review+
so, should I use both patches if I'm going to build/test again?
No, apply bryner's patch to latest CVS. That should be enough.
Comment on attachment 91760 [details] [diff] [review] Fix toplevel widget problem and enable fullscreen mode sr=sfraser
Attachment #91760 - Flags: superreview+
Comment on attachment 91760 [details] [diff] [review] Fix toplevel widget problem and enable fullscreen mode a=asa (on behalf of drivers) for checkin to 1.1
Attachment #91760 - Flags: approval+
Attached image snapshot w/ final patch
Snapshot w/ the last patch (kde). Looks awesome... Thanks guys.
Attachment #88679 - Attachment is obsolete: true
Attachment #88680 - Attachment is obsolete: true
I hope I'm not jumping the gun, but I filed bug #158226 about the kde toolbar staying present in fullscreen mode.
Moz window loses focus in KDE; my build of moz trunk with patches for fullscreen on Linux loses focus in KDE3. i.e. pressing F11; causes Moz window to become fullscreen (bar kicker area), except that KDE focus jumps to another maximised window
Please file a separate bug on that.
filed bug #158361 Toggling Fullscreen Mode in KDE3, Mozilla window loses focus
Under WindowMaker, the clip isn't covered by the fullscreen mode. With galeon 1.2.5, it works perfectly. It's windowmaker 0.80.1 and xfree 4.2.0
under GNOME2, switching to full screen only works once. the GNOME2 menu panel at the top (default config + metacity) continues to consume part of the screen on subsequent attempts to make moz go into full screen mode.
I think setting the WM fullscreen hint will help these problems. However, it will require changing the fullscreen code in GlobalWindow, as I believe setting this hint takes care of positioning and sizing the window, and restoring its previous state when leaving fullscreen mode. So, I would propose moving the fullscreen implementation down to the widget level (i.e. nsIWidget::MakeWindowFullScreen(PRBool aFullScreen)), and moving the existing positioning and sizing code into the win32 implementation of that method. I think we should leave HideWindowChrome as it is, as it may have uses other than fullscreen mode.
since bryner fixed the part that I tried to fix, assigning this bug to him. Thanks for your work - my first attempt was similar to yours, though I didn't do the Xsync which made my attempt not work on my sawfish WM - this is why I tried the galeon code.
Assignee: cbiesinger → bryner
Cedric: You probably mean the dock, not clip. Anyway, right-click on it and deselect "Keep on top". After that full-screen mode works perfectly under Window Maker. (Except that the minimise button doesn't seem to do anything...)
Yes you're right, it's the dock sorry. But it's not normal, the dock should be covered by the fs mode. It's not really easy to select and deselect the option "keep on top" at each mode change. In galeon, it work well, it's why i've made a comment
The correct approach to this bug is a) use the FULLSCREEN hint and b) ignore any bugs about stacking or positioning with respect to docks, panels, etc. because they are all window manager bugs. I would drop fullscreen mode out of the UI when the WM doesn't support the fullscreen hint, because any way you implement it will be buggy and broken.
I like hp's suggestion, but it will require a rework of how fullscreen works on Unix, since it looks like the fullscreen hint automatically takes care of maximizing the window and removing chrome. So, I'd suggest we move the implementation of fullscreen from nsXULElement down into the widget code so that this can work differently on Windows and Linux.
*** Bug 167666 has been marked as a duplicate of this bug. ***
Nominating attachment 91760 [details] [diff] [review] for the 1.0 branch on behalf of bamm@upastrosoc.org (Bamm Gabriana). See bug 167666 for the full text of Bamm's request.
Keywords: mozilla1.0.2
Hmm, I'm tempted to resolve this one as FIXED since we now have fullscreen mode on Unix. What about the Mac? Does it work on OS X? I suppose so. I personally don't care much about Mac OS, so I guess a new bug should be opened for this.
Re: Comment #89 From Diego Biurrun 2002-11-06 04:33 > Hmm, I'm tempted to resolve this one as FIXED since we now have fullscreen mode > on Unix. What about Photon, etc.? > What about the Mac? Does it work on OS X? I don't think so. > I suppose so. What makes you think so? > I personally don't care much about Mac OS, so I guess a new bug should be > opened for this. Why, the summary clearly mentions "Mac".
The ONLY reason I voted for this particular bug is because I am interested in having this feature work on Mac OS X which is, by the way, a version of UNIX. They have fullscreen mode working in Opera for OS X (albeit, not that great). Mozilla for OS X and other versions of UNIX have been waiting all these months for this feature too.
I aggree with Gerry. I voted for this bug because it didn't and still doesn't work on OS X. So I don't think this bug is fixed yet. I didn't know opera did it...I'll have to check that out.
Whiteboard: fixed on GTK, OS/2 and Win32. NOT fixed on Mac
I don't understand why the fullscreen bugs keep morphing from general bugs to "we fixed it on platform x, let's close this bug and file another!" If a separate bug is going to be filed for each platform, (as they probably should be) let's do it now instead of everyone getting miffed (again) and having to move their votes (again).
*** Bug 183988 has been marked as a duplicate of this bug. ***
No longer depends on: 183988
*** Bug 213307 has been marked as a duplicate of this bug. ***
I use BeginFullScreen to hide the system menubar and dock on Mac OS X (I don't create a new native window). Does anybody know a way to hide the titlebar and window border (on existing window)? Thanks
Assignee: bryner → jag
QA Contact: jrgmorrison → xptoolkit.widgets
Target Milestone: Future → ---
Depends on: 370857
Assignee: jag → nobody
Now fixed on Mac, too. (bug 370857, bug 505699)
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Whiteboard: fixed on GTK, OS/2 and Win32. NOT fixed on Mac
Target Milestone: --- → mozilla1.9.3a1
Verified with Minefield builds on each platform like Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.3a1pre) Gecko/20090908 Minefield/3.7a1pre ID:20090908030622
Status: RESOLVED → VERIFIED
Now everything looks fine on 1.9.2 too with Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2b1pre) Gecko/20090922 Namoroka/3.6b1pre ID:20090922041132
Keywords: verified1.9.2
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: