After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 758876 - Wayland: top header bar not visible in fullscreen
Wayland: top header bar not visible in fullscreen
Status: RESOLVED FIXED
Product: totem
Classification: Core
Component: general
unspecified
Other All
: Normal normal
: ---
Assigned To: General Totem maintainer(s)
General Totem maintainer(s)
Depends on: 758937
Blocks:
 
 
Reported: 2015-11-30 23:34 UTC by Lionel Landwerlin
Modified: 2015-12-10 14:27 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
backend: embed the fullscreen top header bar in the video widget (9.83 KB, patch)
2015-11-30 23:34 UTC, Lionel Landwerlin
none Details | Review
backend: embed the fullscreen top header bar in the video widget (9.82 KB, patch)
2015-11-30 23:40 UTC, Lionel Landwerlin
none Details | Review
fullscreen screenshot (64.83 KB, image/png)
2015-12-01 12:09 UTC, Andreas Nilsson
  Details
fullscreen screenshot (64.93 KB, image/png)
2015-12-01 12:10 UTC, Andreas Nilsson
  Details
non-fullscreen screenshot for comparision (64.83 KB, image/png)
2015-12-01 12:11 UTC, Andreas Nilsson
  Details
backend: embed the fullscreen top header bar in the video widget (10.08 KB, patch)
2015-12-02 00:59 UTC, Lionel Landwerlin
none Details | Review
backend: embed the fullscreen top header bar in the video widget (9.83 KB, patch)
2015-12-10 11:22 UTC, Lionel Landwerlin
none Details | Review
backend: embed the fullscreen top header bar in the video widget (10.46 KB, patch)
2015-12-10 14:23 UTC, Lionel Landwerlin
committed Details | Review

Description Lionel Landwerlin 2015-11-30 23:34:53 UTC
On wayland the video has its own subsurface. It is directly painted by the
compositor on top of Totem's main window. As a result on wayland the top
header bar in not visible in fullscreen mode.

To solve this issue, we can embed the top header bar in the video widget.
This solves an issue this issue nicely by having the same behavior on X11
and Wayland.
Comment 1 Lionel Landwerlin 2015-11-30 23:34:58 UTC
Created attachment 316561 [details] [review]
backend: embed the fullscreen top header bar in the video widget
Comment 2 Lionel Landwerlin 2015-11-30 23:36:58 UTC
Adding Andreas who filed https://bugzilla.gnome.org/show_bug.cgi?id=758563 initially.
Comment 3 Lionel Landwerlin 2015-11-30 23:40:22 UTC
Created attachment 316562 [details] [review]
backend: embed the fullscreen top header bar in the video widget

On wayland the video has its own subsurface. It is directly painted by the
compositor on top of Totem's main window. As a result on wayland the top
header bar is not visible in fullscreen mode.

To solve this issue, we can embed the top header bar in the video widget.
This solves this issue nicely by having the same behavior on X11 and
Wayland.
Comment 4 Andreas Nilsson 2015-12-01 12:07:20 UTC
Seems to work well on my system!
Comment 5 Andreas Nilsson 2015-12-01 12:09:01 UTC
Created attachment 316587 [details]
fullscreen screenshot

For some reason, the text goes all blurry when I go to fullscreen
Comment 6 Andreas Nilsson 2015-12-01 12:09:56 UTC
Comment on attachment 316587 [details]
fullscreen screenshot

hups, that was the non-fullscreen screenshot
Comment 7 Andreas Nilsson 2015-12-01 12:10:40 UTC
Created attachment 316588 [details]
fullscreen screenshot

For some reason the text goes all blurry on fullscreen.
Comment 8 Andreas Nilsson 2015-12-01 12:11:16 UTC
Created attachment 316589 [details]
non-fullscreen screenshot for comparision
Comment 9 Lionel Landwerlin 2015-12-01 12:12:08 UTC
Interestingly the bottom controls seem blurry too.
Comment 10 Lionel Landwerlin 2015-12-01 12:14:21 UTC
Is you test on a hidpi display?
Comment 11 Andreas Nilsson 2015-12-01 12:16:19 UTC
(In reply to Lionel Landwerlin from comment #10)
> Is you test on a hidpi display?

Yes. 3200x1800 on a 13" monitor.
Comment 12 Lionel Landwerlin 2015-12-01 16:37:02 UTC
Right this is a problem with the offscreen surfaces allocated at the unscaled size (so half the size) and then stretched out.
This is an issue in clutter-gtk (which I'll fix) but also in GTK+, you can notice the blurriness in the Offscreen examples of gtk-demo.
Comment 13 Andreas Nilsson 2015-12-01 19:37:27 UTC
(In reply to Lionel Landwerlin from comment #12)
> Right this is a problem with the offscreen surfaces allocated at the
> unscaled size (so half the size) and then stretched out.
> This is an issue in clutter-gtk (which I'll fix) but also in GTK+, you can
> notice the blurriness in the Offscreen examples of gtk-demo.

Should I file a separate bug about it?
Comment 14 Lionel Landwerlin 2015-12-01 19:42:08 UTC
Yeah, this is mostly a demo bug I think.
Comment 15 Lionel Landwerlin 2015-12-02 00:59:55 UTC
Created attachment 316636 [details] [review]
backend: embed the fullscreen top header bar in the video widget

On wayland the video has its own subsurface. It is directly painted by the
compositor on top of Totem's main window. As a result on wayland the top
header bar is not visible in fullscreen mode.

To solve this issue, we can embed the top header bar in the video widget.
This solves this issue nicely by having the same behavior on X11 and
Wayland.
Comment 16 Lionel Landwerlin 2015-12-02 02:11:07 UTC
If you apply all the dependencies (Gtk+ -> Clutter-Gtk -> Totem) it should work nicely on both X11 & Wayland. No blur!
Comment 17 Andreas Nilsson 2015-12-02 11:18:55 UTC
(In reply to Lionel Landwerlin from comment #16)
> If you apply all the dependencies (Gtk+ -> Clutter-Gtk -> Totem) it should
> work nicely on both X11 & Wayland. No blur!

Yup! That did the trick!
Comment 18 Lionel Landwerlin 2015-12-03 23:26:20 UTC
All dependencies are pushed to master.
Just waiting for the review here :)
Comment 19 Bastien Nocera 2015-12-09 17:35:24 UTC
Review of attachment 316636 [details] [review]:

Can you also bump the requirements in configure.ac as needed?

Thanks for all the work.

::: src/backend/bacon-video-widget.c
@@ +772,3 @@
 {
   guint8 opacity = visible ? OVERLAY_OPACITY : 0;
+  gint height;

header_controls_height

@@ +773,3 @@
   guint8 opacity = visible ? OVERLAY_OPACITY : 0;
+  gint height;
+  gfloat position;

header_controls_y

@@ +784,3 @@
    * controls to redraw, so let's change the opacity instead */
   clutter_actor_set_easing_duration (bvw->priv->controls, animate ? 250 : 0);
+  clutter_actor_set_easing_duration (bvw->priv->header_controls, animate ? 250 : 0);

I'd rather a:
duration = animate ? 250 : 0;
and then calls to set_easing_duration with that temporary duration.

@@ +6301,3 @@
+ **/
+gboolean
+bacon_video_widget_get_fullscreen (BaconVideoWidget *bvw)

This isn't actually used, is it? Best remove it if unneeded.

::: src/totem-object.c
@@ +3982,3 @@
+	window = gtk_widget_get_window (totem->win);
+	bacon_video_widget_set_fullscreen (totem->bvw,
+					   window && ((gdk_window_get_state (window) & GDK_WINDOW_STATE_FULLSCREEN) != 0));

Use a temporary variable here.
Comment 20 Lionel Landwerlin 2015-12-10 11:22:12 UTC
Created attachment 317098 [details] [review]
backend: embed the fullscreen top header bar in the video widget

On wayland the video has its own subsurface. It is directly painted by the
compositor on top of Totem's main window. As a result on wayland the top
header bar is not visible in fullscreen mode.

To solve this issue, we can embed the top header bar in the video widget.
This solves this issue nicely by having the same behavior on X11 and
Wayland.
Comment 21 Lionel Landwerlin 2015-12-10 11:23:18 UTC
What dependency are you talking about?
Comment 22 Bastien Nocera 2015-12-10 11:24:51 UTC
(In reply to Lionel Landwerlin from comment #21)
> What dependency are you talking about?

GTK+ and clutter-gtk patches were committed for this bug, weren't they?
Comment 23 Lionel Landwerlin 2015-12-10 11:26:45 UTC
R(In reply to Bastien Nocera from comment #22)
> (In reply to Lionel Landwerlin from comment #21)
> > What dependency are you talking about?
> 
> GTK+ and clutter-gtk patches were committed for this bug, weren't they?

Right, but they're not API changes, just bug fixes.
You still want those versions as dependency?
Comment 24 Bastien Nocera 2015-12-10 11:37:58 UTC
(In reply to Lionel Landwerlin from comment #23)
> R(In reply to Bastien Nocera from comment #22)
> > (In reply to Lionel Landwerlin from comment #21)
> > > What dependency are you talking about?
> > 
> > GTK+ and clutter-gtk patches were committed for this bug, weren't they?
> 
> Right, but they're not API changes, just bug fixes.
> You still want those versions as dependency?

Yes please. Both should be released as stable when 3.20 is released.
Comment 25 Lionel Landwerlin 2015-12-10 14:23:31 UTC
Created attachment 317119 [details] [review]
backend: embed the fullscreen top header bar in the video widget

On wayland the video has its own subsurface. It is directly painted by the
compositor on top of Totem's main window. As a result on wayland the top
header bar is not visible in fullscreen mode.

To solve this issue, we can embed the top header bar in the video widget.
This solves this issue nicely by having the same behavior on X11 and
Wayland.
Comment 26 Bastien Nocera 2015-12-10 14:26:16 UTC
Review of attachment 317119 [details] [review]:

Looks great, thanks a lot for your help.
Comment 27 Lionel Landwerlin 2015-12-10 14:27:23 UTC
Review of attachment 317119 [details] [review]:

Pushed to master.