Slide in the sidebar as the overlay appears
appdisplay.js: Add AppDisplay.actor property, remove the x/y parameters to the constructor, and don't automatically add the appdisplay to the stage. overlay.js: Make the AppDisplay a child of the SideShow, rename SideShow._grid to SideShow.actor and slide the SideShow in when showing the stage. http://bugzilla.gnome.org/show_bug.cgi?id=562920 svn path=/trunk/; revision=102
This commit is contained in:
parent
6bccda430e
commit
a8cfd47a50
@ -124,17 +124,15 @@ AppDisplayItem.prototype = {
|
|||||||
|
|
||||||
Signals.addSignalMethods(AppDisplayItem.prototype);
|
Signals.addSignalMethods(AppDisplayItem.prototype);
|
||||||
|
|
||||||
function AppDisplay(x, y, width, height) {
|
function AppDisplay(width, height) {
|
||||||
this._init(x, y, width, height);
|
this._init(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
AppDisplay.prototype = {
|
AppDisplay.prototype = {
|
||||||
_init : function(x, y, width, height) {
|
_init : function(width, height) {
|
||||||
let me = this;
|
let me = this;
|
||||||
let global = Shell.Global.get();
|
let global = Shell.Global.get();
|
||||||
this._search = '';
|
this._search = '';
|
||||||
this._x = x;
|
|
||||||
this._y = y;
|
|
||||||
this._width = width;
|
this._width = width;
|
||||||
this._height = height;
|
this._height = height;
|
||||||
this._appmonitor = new Shell.AppMonitor();
|
this._appmonitor = new Shell.AppMonitor();
|
||||||
@ -142,12 +140,12 @@ AppDisplay.prototype = {
|
|||||||
this._appmonitor.connect('changed', function(mon) {
|
this._appmonitor.connect('changed', function(mon) {
|
||||||
me._appsStale = true;
|
me._appsStale = true;
|
||||||
});
|
});
|
||||||
this._grid = new Tidy.Grid({x: x, y: y, width: width, height: height});
|
this._grid = new Tidy.Grid({width: width, height: height});
|
||||||
global.stage.add_actor(this._grid);
|
|
||||||
this._appset = {}; // Map<appid, appinfo>
|
this._appset = {}; // Map<appid, appinfo>
|
||||||
this._displayed = {}; // Map<appid, AppDisplay>
|
this._displayed = {}; // Map<appid, AppDisplay>
|
||||||
this._selectedIndex = -1;
|
this._selectedIndex = -1;
|
||||||
this._max_items = this._height / (APPDISPLAY_HEIGHT + APPDISPLAY_PADDING);
|
this._max_items = this._height / (APPDISPLAY_HEIGHT + APPDISPLAY_PADDING);
|
||||||
|
this.actor = this._grid;
|
||||||
},
|
},
|
||||||
|
|
||||||
_refreshCache: function() {
|
_refreshCache: function() {
|
||||||
|
@ -55,22 +55,22 @@ Sideshow.prototype = {
|
|||||||
let me = this;
|
let me = this;
|
||||||
|
|
||||||
let global = Shell.Global.get();
|
let global = Shell.Global.get();
|
||||||
this._group = new Clutter.Group();
|
this.actor = new Clutter.Group();
|
||||||
this._group.hide();
|
this.actor.hide();
|
||||||
global.stage.add_actor(this._group);
|
global.stage.add_actor(this.actor);
|
||||||
let icontheme = Gtk.IconTheme.get_default();
|
let icontheme = Gtk.IconTheme.get_default();
|
||||||
let rect = new Clutter.Rectangle({ color: SIDESHOW_SEARCH_BG_COLOR,
|
let rect = new Clutter.Rectangle({ color: SIDESHOW_SEARCH_BG_COLOR,
|
||||||
x: SIDESHOW_PAD,
|
x: SIDESHOW_PAD,
|
||||||
y: Panel.PANEL_HEIGHT + SIDESHOW_PAD,
|
y: Panel.PANEL_HEIGHT + SIDESHOW_PAD,
|
||||||
width: width,
|
width: width,
|
||||||
height: 24});
|
height: 24});
|
||||||
this._group.add_actor(rect);
|
this.actor.add_actor(rect);
|
||||||
|
|
||||||
let searchIconTexture = new Clutter.Texture({ x: SIDESHOW_PAD + 2,
|
let searchIconTexture = new Clutter.Texture({ x: SIDESHOW_PAD + 2,
|
||||||
y: rect.y + 2 });
|
y: rect.y + 2 });
|
||||||
let searchIconPath = icontheme.lookup_icon('gtk-find', 16, 0).get_filename();
|
let searchIconPath = icontheme.lookup_icon('gtk-find', 16, 0).get_filename();
|
||||||
searchIconTexture.set_from_file(searchIconPath);
|
searchIconTexture.set_from_file(searchIconPath);
|
||||||
this._group.add_actor(searchIconTexture);
|
this.actor.add_actor(searchIconTexture);
|
||||||
|
|
||||||
this._searchEntry = new Clutter.Entry({
|
this._searchEntry = new Clutter.Entry({
|
||||||
font_name: "Sans 14px",
|
font_name: "Sans 14px",
|
||||||
@ -79,7 +79,7 @@ Sideshow.prototype = {
|
|||||||
y: searchIconTexture.y,
|
y: searchIconTexture.y,
|
||||||
width: rect.width - (searchIconTexture.x),
|
width: rect.width - (searchIconTexture.x),
|
||||||
height: searchIconTexture.height});
|
height: searchIconTexture.height});
|
||||||
this._group.add_actor(this._searchEntry);
|
this.actor.add_actor(this._searchEntry);
|
||||||
global.stage.set_key_focus(this._searchEntry);
|
global.stage.set_key_focus(this._searchEntry);
|
||||||
this._searchQueued = false;
|
this._searchQueued = false;
|
||||||
this._searchActive = false;
|
this._searchActive = false;
|
||||||
@ -116,11 +116,13 @@ Sideshow.prototype = {
|
|||||||
x: SIDESHOW_PAD,
|
x: SIDESHOW_PAD,
|
||||||
y: this._searchEntry.y + this._searchEntry.height + 10,
|
y: this._searchEntry.y + this._searchEntry.height + 10,
|
||||||
height: 16});
|
height: 16});
|
||||||
this._group.add_actor(appsText);
|
this.actor.add_actor(appsText);
|
||||||
|
|
||||||
let menuY = appsText.y + appsText.height + 6;
|
let menuY = appsText.y + appsText.height + 6;
|
||||||
this._appdisplay = new AppDisplay.AppDisplay(SIDESHOW_PAD,
|
this._appdisplay = new AppDisplay.AppDisplay(width, global.screen_height - menuY);
|
||||||
menuY, width, global.screen_height - menuY);
|
this._appdisplay.actor.x = SIDESHOW_PAD;
|
||||||
|
this._appdisplay.actor.y = menuY;
|
||||||
|
this.actor.add_actor(this._appdisplay.actor);
|
||||||
|
|
||||||
/* Proxy the activated signal */
|
/* Proxy the activated signal */
|
||||||
this._appdisplay.connect('activated', function(appdisplay) {
|
this._appdisplay.connect('activated', function(appdisplay) {
|
||||||
@ -129,12 +131,12 @@ Sideshow.prototype = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
show: function() {
|
show: function() {
|
||||||
this._group.show();
|
this.actor.show();
|
||||||
this._appdisplay.show();
|
this._appdisplay.show();
|
||||||
},
|
},
|
||||||
|
|
||||||
hide: function() {
|
hide: function() {
|
||||||
this._group.hide();
|
this.actor.hide();
|
||||||
this._appdisplay.hide();
|
this._appdisplay.hide();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -240,6 +242,14 @@ Overlay.prototype = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this._sideshow.show();
|
this._sideshow.show();
|
||||||
|
// Slide in the sidebar as if it was attached to the left
|
||||||
|
// edge of the desktop as it shrinks down
|
||||||
|
this._sideshow.actor.x = - this._sideshow.actor.width;
|
||||||
|
Tweener.addTween(this._sideshow.actor,
|
||||||
|
{ x: 0,
|
||||||
|
time: ANIMATION_TIME,
|
||||||
|
transition: "easeOutQuad"
|
||||||
|
});
|
||||||
|
|
||||||
// All the the actors in the window group are completely obscured,
|
// All the the actors in the window group are completely obscured,
|
||||||
// hiding the group holding them while the overlay is displayed greatly
|
// hiding the group holding them while the overlay is displayed greatly
|
||||||
|
Loading…
Reference in New Issue
Block a user