some refactoring
Merge remote-tracking branch 'origin/ribbons' into ribbons
fixed workspace ribbon bug