Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:GA
MozillaFirefox.3323
mozilla-fullscreen_part_3.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mozilla-fullscreen_part_3.patch of Package MozillaFirefox.3323
# HG changeset patch # Parent fd43ea5701b03861979ca7c8dc233964add3f077 bsc#992549, merged in FF46 mozilla-release: changeset: 316477:8e52730bd8ee user: Xidorn Quan <quanxunzhen@gmail.com> date: Tue Jan 12 15:18:47 2016 +1100 files: widget/gtk/mozgtk/mozgtk.c widget/gtk/nsWindow.cpp description: Bug 1189622 part 3 - Return failure if fullscreen support is not available for the X11 desktop. r=karlt diff --git a/widget/gtk/mozgtk/mozgtk.c b/widget/gtk/mozgtk/mozgtk.c --- a/widget/gtk/mozgtk/mozgtk.c +++ b/widget/gtk/mozgtk/mozgtk.c @@ -122,16 +122,17 @@ STUB(gdk_x11_display_get_user_time) STUB(gdk_x11_display_get_xdisplay) STUB(gdk_x11_get_default_root_xwindow) STUB(gdk_x11_get_default_xdisplay) STUB(gdk_x11_get_server_time) STUB(gdk_x11_get_xatom_by_name) STUB(gdk_x11_get_xatom_by_name_for_display) STUB(gdk_x11_lookup_xdisplay) STUB(gdk_x11_screen_get_xscreen) +STUB(gdk_x11_screen_supports_net_wm_hint) STUB(gdk_x11_visual_get_xvisual) STUB(gdk_x11_window_foreign_new_for_display) STUB(gdk_x11_window_lookup_for_display) STUB(gdk_x11_window_set_user_time) STUB(gdk_x11_xatom_to_atom) STUB(gtk_accel_label_new) STUB(gtk_alignment_get_type) STUB(gtk_alignment_new) diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp --- a/widget/gtk/nsWindow.cpp +++ b/widget/gtk/nsWindow.cpp @@ -4985,22 +4985,39 @@ nsWindow::PerformFullscreenTransition(Fu auto transitionData = new FullscreenTransitionData(aStage, aDuration, aCallback, data); g_timeout_add_full(G_PRIORITY_HIGH, FullscreenTransitionData::sInterval, FullscreenTransitionData::TimeoutCallback, transitionData, nullptr); } +static bool +IsFullscreenSupported(GtkWidget* aShell) +{ +#ifdef MOZ_X11 + GdkScreen* screen = gtk_widget_get_screen(aShell); + GdkAtom atom = gdk_atom_intern("_NET_WM_STATE_FULLSCREEN", FALSE); + if (!gdk_x11_screen_supports_net_wm_hint(screen, atom)) { + return false; + } +#endif + return true; +} + NS_IMETHODIMP nsWindow::MakeFullScreen(bool aFullScreen, nsIScreen* aTargetScreen) { LOG(("nsWindow::MakeFullScreen [%p] aFullScreen %d\n", (void *)this, aFullScreen)); + if (!IsFullscreenSupported(mShell)) { + return NS_ERROR_NOT_AVAILABLE; + } + if (aFullScreen) { if (mSizeMode != nsSizeMode_Fullscreen) mLastSizeMode = mSizeMode; mSizeMode = nsSizeMode_Fullscreen; gtk_window_fullscreen(GTK_WINDOW(mShell)); } else {
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor