[gnome-shell/modekill: 2/10] overview: Move the entry out of the SearchTab into the overview



commit db2b3532d284c055cb1a4d4380af7498a92adb70
Author: Joost Verdoorn <jpverdoorn gmail com>
Date:   Sat Jul 28 23:47:55 2012 +0300

    overview: Move the entry out of the SearchTab into the overview
    
    The entry should be positioned in the center of the overview. This makes
    that its position canât be set in the viewSelector without making things
    overly complicated. Therefore we move the entry to the overview.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=682109

 js/ui/overview.js     |   22 +++++++++++++++++++---
 js/ui/viewSelector.js |   17 +++++------------
 2 files changed, 24 insertions(+), 15 deletions(-)
---
diff --git a/js/ui/overview.js b/js/ui/overview.js
index a2257a2..5943432 100644
--- a/js/ui/overview.js
+++ b/js/ui/overview.js
@@ -186,7 +186,17 @@ const Overview = new Lang.Class({
 
         this._shellInfo = new ShellInfo();
 
-        this._viewSelector = new ViewSelector.ViewSelector();
+        this._searchEntry = new St.Entry({ name: 'searchEntry',
+                                           /* Translators: this is the text displayed
+                                              in the search entry when no search is
+                                              active; it should not exceed ~30
+                                              characters. */
+                                           hint_text: _("Type to search..."),
+                                           track_hover: true,
+                                           can_focus: true });
+        this._group.add_actor(this._searchEntry);
+
+        this._viewSelector = new ViewSelector.ViewSelector(this._searchEntry);
         this._group.add_actor(this._viewSelector.actor);
 
         // Load remote search providers provided by applications
@@ -481,10 +491,15 @@ const Overview = new Lang.Class({
         this._coverPane.set_position(0, contentY);
         this._coverPane.set_size(primary.width, contentHeight);
 
+        let searchWidth = this._searchEntry.get_width();
+        let searchHeight = this._searchEntry.get_height();
+        let searchX = (primary.width - searchWidth) / 2;
+        let searchY = contentY + this._spacing;
+
         let dashWidth = Math.round(DASH_SPLIT_FRACTION * primary.width);
         let viewWidth = primary.width - dashWidth - this._spacing;
-        let viewHeight = contentHeight - 2 * this._spacing;
-        let viewY = contentY + this._spacing;
+        let viewHeight = contentHeight - 2 * this._spacing - searchHeight;
+        let viewY = contentY + this._spacing + searchHeight;
         let viewX = rtl ? 0 : dashWidth + this._spacing;
 
         // Set the dash's x position - y is handled by a constraint
@@ -497,6 +512,7 @@ const Overview = new Lang.Class({
         }
         this._dash.actor.set_x(dashX);
 
+        this._searchEntry.set_position(searchX, searchY);
         this._viewSelector.actor.set_position(viewX, viewY);
         this._viewSelector.actor.set_size(viewWidth, viewHeight);
     },
diff --git a/js/ui/viewSelector.js b/js/ui/viewSelector.js
index 55ed679..23e5bca 100644
--- a/js/ui/viewSelector.js
+++ b/js/ui/viewSelector.js
@@ -101,7 +101,7 @@ const SearchTab = new Lang.Class({
     Name: 'SearchTab',
     Extends: BaseTab,
 
-    _init: function() {
+    _init: function(searchEntry) {
         this.active = false;
         this._searchPending = false;
         this._searchTimeoutId = 0;
@@ -109,14 +109,7 @@ const SearchTab = new Lang.Class({
         this._searchSystem = new Search.SearchSystem();
         this._openSearchSystem = new Search.OpenSearchSystem();
 
-        this._entry = new St.Entry({ name: 'searchEntry',
-                                     /* Translators: this is the text displayed
-                                        in the search entry when no search is
-                                        active; it should not exceed ~30
-                                        characters. */
-                                     hint_text: _("Type to search..."),
-                                     track_hover: true,
-                                     can_focus: true });
+        this._entry = searchEntry;
         ShellEntry.addContextMenu(this._entry);
         this._text = this._entry.clutter_text;
         this._text.connect('key-press-event', Lang.bind(this, this._onKeyPress));
@@ -132,7 +125,7 @@ const SearchTab = new Lang.Class({
         this._iconClickedId = 0;
 
         this._searchResults = new SearchDisplay.SearchResults(this._searchSystem, this._openSearchSystem);
-        this.parent(this._entry, this._searchResults.actor, _("Search"), 'edit-find');
+        this.parent(new St.Bin(), this._searchResults.actor, _("Search"), 'edit-find');
 
         this._text.connect('text-changed', Lang.bind(this, this._onTextChanged));
         this._text.connect('key-press-event', Lang.bind(this, function (o, e) {
@@ -352,7 +345,7 @@ const SearchTab = new Lang.Class({
 const ViewSelector = new Lang.Class({
     Name: 'ViewSelector',
 
-    _init : function() {
+    _init : function(searchEntry) {
         this.actor = new St.BoxLayout({ name: 'viewSelector',
                                         vertical: true });
 
@@ -388,7 +381,7 @@ const ViewSelector = new Lang.Class({
         this._tabs = [];
         this._activeTab = null;
 
-        this._searchTab = new SearchTab();
+        this._searchTab = new SearchTab(searchEntry);
         this._searchArea.set_child(this._searchTab.title);
         this._addTab(this._searchTab);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]