GNOME Bugzilla – Bug 641648
Add way to zoom into application for fullscreen modes
Last modified: 2021-07-05 14:35:58 UTC
Currently fullscreening movie players is although almost instantaneous, still not as smooth as it could be. Other platforms offer subtle, yet animations when fullscreening and application. gnome-shell could make it easy to set a portion of a window as the portion to "zoom into". Roughly it would be: - user requests fullscreen playback - Totem exports a region of the window as being the "fullscreen image" (this would be preferable to exporting a whole widget as aspect ratio, centering, etc. needs to be respected) - gnome-shell/mutter "zooms" into that image (or scales it) for a fullscreen view - Totem takes over real display Defullscreening could take a similar path, but this would be very complicated if we needed to wait for the window itself to be fully drawn. This could also be very useful for presentation software and games switching between embedded or windowed modes, and fullscreen.
I did a brief look at the Cocoa API and there seems to be some nice communication between the window manager and the user-level API. Here's a quick tutorial on how you do fullscreen animations on Cocoa: http://cocoawithlove.com/2009/08/animating-window-to-fullscreen-on-mac.html It seems that the NSWindow also receives notifications at various phases of fullscreening: http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html#//apple_ref/doc/uid/20000013-DontLinkElementID_4 Perhaps some of these things could happen in GTK+ by tracking XWindow properties.
Cosimo implemented an animation to zoom into fullscreen applications, but we're still missing a way for applications to export the "content" area. This is important when the screen aspect ratio is different from the application (which might be windowed)'s aspect ratio, as well as to avoid showing header bars and status bars in the zoom animation.
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a new ticket at https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/ Thank you for your understanding and your help.