Bug 264845

Summary: TabBar base fails to update after having been covered by another window
Product: [Plasma] Oxygen Reporter: nucleo <nucleo>
Component: gtk2-engineAssignee: Hugo Pereira Da Costa <hugo.pereira.da.costa>
Status: CLOSED FIXED    
Severity: normal CC: b7.10110111, hugo.pereira.da.costa, web
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description nucleo 2011-01-30 15:12:09 UTC
Version:           unspecified
OS:                Linux

Some part of GNOME "Appearence Preferences" window decoration broken after "Customize Theme" window closed.

Reproducible: Always

Steps to Reproduce:
1. Open "Appearence Preferences".
2. Press "Customize...".
3. Close "Customize Theme" windows.

Actual Results:  
Shadow not refreshed after theme window closed.
http://img638.imageshack.us/img638/1881/gnome2v.png
Comment 1 Hugo Pereira Da Costa 2011-01-30 15:15:39 UTC
cant reproduce
Comment 2 Hugo Pereira Da Costa 2011-01-30 15:32:22 UTC
ok. Can reproduce when compositing is off and its a quite serious bug.
With current code,
the tabbar base is only redrawn when the active tab area is damaged
so with compositing off whenever you pass any window over the inactive part of the tabbar, you lose the base. does not happen with compositing because a much larger portion of the window behind is redrawn
Comment 3 Hugo Pereira Da Costa 2011-01-30 22:49:45 UTC
Git commit f318fc83160a8e01bc51c5117be7de5649722eec by Hugo Pereira Da Costa.
Pushed by hpereiradacosta into branch 'master'.

added "dirty" flag to tabWidgetData, to trigger full tabbar update.

CCBUG: 264845

M  +18   -0    src/animations/oxygentabwidgetdata.cpp     
M  +25   -1    src/animations/oxygentabwidgetdata.h     

http://commits.kde.org/d1a86b4e/f318fc83160a8e01bc51c5117be7de5649722eec
Comment 4 Hugo Pereira Da Costa 2011-01-30 22:49:45 UTC
Git commit 42f0c25a91f471bc69592fae1dac0b90d8369916 by Hugo Pereira Da Costa.
Pushed by hpereiradacosta into branch 'master'.

use gtk_default_screen_is_composited() (for consision)
added test on the above for marking tabbars as dirty.

CCBUG: 264845

M  +2    -3    src/oxygenstylewrapper.cpp     

http://commits.kde.org/d1a86b4e/42f0c25a91f471bc69592fae1dac0b90d8369916
Comment 5 Hugo Pereira Da Costa 2011-01-30 22:49:45 UTC
Git commit 393e03330f9e18511e195139dda9e46d8c4cd715 by Hugo Pereira Da Costa.
Pushed by hpereiradacosta into branch 'master'.

try force update of taskbar whenever box_gap is called.

CCBUG: 264845

M  +4    -5    src/animations/oxygentabwidgetdata.cpp     
M  +21   -3    src/animations/oxygentabwidgetengine.h     
M  +17   -0    src/oxygenstylewrapper.cpp     

http://commits.kde.org/d1a86b4e/393e03330f9e18511e195139dda9e46d8c4cd715
Comment 6 Hugo Pereira Da Costa 2011-01-30 22:49:46 UTC
Git commit 339160e101c357ac5c993f18808fccee780fcc21 by Hugo Pereira Da Costa.
Pushed by hpereiradacosta into branch 'master'.

added gdk_default_screen_is_composited method.

CCBUG: 264845

M  +21   -23   src/oxygengtkutils.cpp     
M  +3    -0    src/oxygengtkutils.h     

http://commits.kde.org/d1a86b4e/339160e101c357ac5c993f18808fccee780fcc21
Comment 7 Hugo Pereira Da Costa 2011-01-30 23:14:28 UTC
that fixes it, as far as i can tell. 
just need to watch for infinite loops (should not happen, but).
Comment 8 nucleo 2011-01-30 23:32:10 UTC
Fixed only in master branch?
Comment 9 Hugo Pereira Da Costa 2011-01-30 23:36:27 UTC
Normally, I just merged to 1.0
(few minutes ago)
Comment 10 nucleo 2011-01-31 01:07:36 UTC
It fixed now.