appMenu: Clip app icon when the button is active
We now use a border image on active panel buttons to underline the button's content. As the property does not affect the content's allocation, the app icon ends up being drawn on top of the border image. To prevent this, use a custom property to clip the bottom of the app icon when the button is active. https://bugzilla.gnome.org/show_bug.cgi?id=642697
This commit is contained in:
@ -210,6 +210,8 @@ AppMenuButton.prototype = {
|
||||
this._container.connect('allocate', Lang.bind(this, this._contentAllocate));
|
||||
|
||||
this._iconBox = new Shell.Slicer({ name: 'appMenuIcon' });
|
||||
this._iconBox.connect('style-changed',
|
||||
Lang.bind(this, this._onIconBoxStyleChanged));
|
||||
this._container.add_actor(this._iconBox);
|
||||
this._label = new TextShadower();
|
||||
this._container.add_actor(this._label.actor);
|
||||
@ -280,6 +282,17 @@ AppMenuButton.prototype = {
|
||||
onCompleteScope: this });
|
||||
},
|
||||
|
||||
_onIconBoxStyleChanged: function() {
|
||||
let node = this._iconBox.get_theme_node();
|
||||
let bottomClip = node.get_length('app-icon-bottom-clip');
|
||||
if (bottomClip > 0)
|
||||
this._iconBox.set_clip(0, 0,
|
||||
this._iconBox.width,
|
||||
this._iconBox.height - bottomClip);
|
||||
else
|
||||
this._iconBox.remove_clip();
|
||||
},
|
||||
|
||||
_stopAnimation: function(animate) {
|
||||
this._label.actor.remove_clip();
|
||||
if (this._updateId) {
|
||||
|
Reference in New Issue
Block a user