Opened 7 years ago

Last modified 4 years ago

#3831 assigned defect

Frame: animation has regressed

Reported by: erikos Owned by: manuq
Priority: Normal Milestone: Unspecified
Component: Sugar Version: 0.97.x
Severity: Major Keywords: nohippo, regression
Cc: erikos Distribution/OS: Fedora
Bug Status: New

Description

The animation of the Frame hide/show has regressed. You get now a white flickering when hiding the Frame.

http://git.sugarlabs.org/sugar/mainline/commit/85f6dcf3017c853bacd203616e3f250249f2348d

You can test this with going back to the commit before: ec79e502d2befcc38c0ff86fa736fe4a6ba23240

Attachments (2)

transparent-bg.patch (1.1 KB) - added by manuq 7 years ago.
Patch that moves the background color from windows to the windows .background
test.py (908 bytes) - added by manuq 6 years ago.
Isolated example using gtk_widget_add_tick_callback ()

Download all attachments as: .zip

Change History (14)

comment:1 Changed 7 years ago by manuq

  • Cc erikos added
  • Owner changed from erikos to manuq
  • Status changed from new to assigned

comment:2 Changed 7 years ago by manuq

  • Keywords regression added
  • Priority changed from Unspecified by Maintainer to High

comment:3 Changed 7 years ago by manuq

I have verified this is not a theme issue. Our frame is composed by four gtk windows. What happens is that when a window is moved, the previous area position is painted in the background color of the window below, for a small amount of time.

For example in the Journal, the flickering color is grey, while in the activities list view, the flickering is white.

The delay depends on the complexity of the window below. For example in the Groups view with few friends, the issue is not so noticeable. But in the Journal or in some activities like Abacus, it is.

As a verification test, I opened Terminal, opened gedit, and started moving it's window over different Sugar places, like the Journal, activities list view, and activities.

I have verified the issue is present at least since the latest 12.1.0 olpc build which has Sugar 0.96.2, so was present in GTK2 shell too.

comment:4 Changed 7 years ago by manuq

Forgot to say, the issue can be clearly seen editing the CSS like this:

GtkWindow {
-    background-color: @panel_grey;
+    background-color: #f00;
    color: @black;
}

comment:5 Changed 7 years ago by erikos

Yes, it can be reproduced as well in GNOME: open nautilus and terminal and move the terminal over the open window.

Changed 7 years ago by manuq

Patch that moves the background color from windows to the windows .background

comment:6 Changed 7 years ago by manuq

  • Priority changed from High to Normal

The patch above moves the background-color rule to the .background CSS class, as they are doing now in gnome-themes-standard (they re-added this as can be seen in artwork commit 9e02915a).

It seems to improve the frame animation a bit in sugar-build: instead of getting a flickering in grey color (or whatever the background color of the window below is), it gets the "ghost" of the frame in the previous position.

By the way, this happens only in sugar-build, not in the XO. We still get the grey color in it with this patch applied.

As discussed with Simon, lowering the priority to normal.

comment:7 Changed 6 years ago by dnarvaez

  • Milestone changed from 0.98 to Unspecified

comment:8 Changed 6 years ago by dnarvaez

  • Bug Status changed from Unconfirmed to New
  • Priority changed from Normal to High

comment:9 follow-up: Changed 6 years ago by dnarvaez

Not quite sure this is related to the regression or useful to fix it, but worth a read in any case.

http://blogs.gnome.org/alexl/2013/11/04/the-modern-gtk-drawing-model/

comment:10 in reply to: ↑ 9 Changed 6 years ago by manuq

Replying to dnarvaez:

Not quite sure this is related to the regression or useful to fix it, but worth a read in any case.

http://blogs.gnome.org/alexl/2013/11/04/the-modern-gtk-drawing-model/

Yes, seems very related.

In sugar3/graphics/animator.py we should try moving from using GLib.timeout_add to use gtk_widget_add_tick_callback .

Changed 6 years ago by manuq

Isolated example using gtk_widget_add_tick_callback ()

comment:11 Changed 5 years ago by manuq

  • Priority changed from High to Normal

comment:12 Changed 4 years ago by SAMdroid

Patch for using gtk_widget_add_tick_callback https://github.com/sugarlabs/sugar-toolkit-gtk3/pull/258

Note: See TracTickets for help on using tickets.