panel: Update the hot corner when the panel box allocation changes

This fixes the missing hotcorner in the overview.

https://bugzilla.gnome.org/show_bug.cgi?id=689537
This commit is contained in:
Jasper St. Pierre 2012-12-03 15:56:18 -05:00
parent 49fa0ddebc
commit 31d14a2fb0
2 changed files with 14 additions and 1 deletions

View File

@ -124,7 +124,7 @@ const LayoutManager = new Lang.Class({
this.addChrome(this.panelBox, { affectsStruts: true, this.addChrome(this.panelBox, { affectsStruts: true,
trackFullscreen: true }); trackFullscreen: true });
this.panelBox.connect('allocation-changed', this.panelBox.connect('allocation-changed',
Lang.bind(this, this._updatePanelBarriers)); Lang.bind(this, this._panelBoxChanged));
this.trayBox = new St.Widget({ name: 'trayBox', this.trayBox = new St.Widget({ name: 'trayBox',
layout_manager: new Clutter.BinLayout() }); layout_manager: new Clutter.BinLayout() });
@ -256,6 +256,11 @@ const LayoutManager = new Lang.Class({
this.bottomMonitor.width, this.bottomMonitor.height); this.bottomMonitor.width, this.bottomMonitor.height);
}, },
_panelBoxChanged: function() {
this.emit('panel-box-changed');
this._updatePanelBarriers();
},
_updatePanelBarriers: function() { _updatePanelBarriers: function() {
if (this._leftPanelBarrier) if (this._leftPanelBarrier)
global.destroy_pointer_barrier(this._leftPanelBarrier); global.destroy_pointer_barrier(this._leftPanelBarrier);
@ -387,6 +392,7 @@ const LayoutManager = new Lang.Class({
}, },
_startupAnimationComplete: function() { _startupAnimationComplete: function() {
this.emit('panel-box-changed');
this._chrome.thawUpdateRegions(); this._chrome.thawUpdateRegions();
}, },

View File

@ -655,6 +655,13 @@ const ActivitiesButton = new Lang.Class({
})); }));
this._xdndTimeOut = 0; this._xdndTimeOut = 0;
// Since the hot corner uses stage coordinates, Clutter won't
// queue relayouts for us when the panel moves. Queue a relayout
// when that happens.
Main.layoutManager.connect('panel-box-changed', Lang.bind(this, function() {
container.queue_relayout();
}));
}, },
_containerGetPreferredWidth: function(actor, forHeight, alloc) { _containerGetPreferredWidth: function(actor, forHeight, alloc) {