Refresh patches
Sophie Brun
2 years ago
8 | 8 | 1 file changed, 130 insertions(+), 33 deletions(-) |
9 | 9 | |
10 | 10 | diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js |
11 | index 9d46506..74416fc 100644 | |
11 | index e36b0fe..eac1f34 100644 | |
12 | 12 | --- a/extensions/apps-menu/extension.js |
13 | 13 | +++ b/extensions/apps-menu/extension.js |
14 | @@ -97,30 +97,36 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem { | |
14 | @@ -98,30 +98,36 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem { | |
15 | 15 | }); |
16 | 16 | |
17 | 17 | var CategoryMenuItem = GObject.registerClass( |
61 | 61 | } |
62 | 62 | |
63 | 63 | _isNavigatingSubmenu([x, y]) { |
64 | @@ -208,11 +214,61 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem { | |
64 | @@ -209,11 +215,61 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem { | |
65 | 65 | if (!this.active) |
66 | 66 | return; |
67 | 67 | |
123 | 123 | class ApplicationsMenu extends PopupMenu.PopupMenu { |
124 | 124 | constructor(sourceActor, arrowAlignment, arrowSide, button) { |
125 | 125 | super(sourceActor, arrowAlignment, arrowSide); |
126 | @@ -412,7 +468,7 @@ class ApplicationsButton extends PanelMenu.Button { | |
126 | @@ -409,7 +465,7 @@ class ApplicationsButton extends PanelMenu.Button { | |
127 | 127 | _onTreeChanged() { |
128 | 128 | if (this.menu.isOpen) { |
129 | 129 | this._redisplay(); |
132 | 132 | } else { |
133 | 133 | this.reloadFlag = true; |
134 | 134 | } |
135 | @@ -477,7 +533,7 @@ class ApplicationsButton extends PanelMenu.Button { | |
135 | @@ -474,7 +530,7 @@ class ApplicationsButton extends PanelMenu.Button { | |
136 | 136 | this._redisplay(); |
137 | 137 | this.reloadFlag = false; |
138 | 138 | } |
141 | 141 | } |
142 | 142 | super._onOpenStateChanged(menu, open); |
143 | 143 | } |
144 | @@ -490,13 +546,14 @@ class ApplicationsButton extends PanelMenu.Button { | |
144 | @@ -487,13 +543,14 @@ class ApplicationsButton extends PanelMenu.Button { | |
145 | 145 | |
146 | 146 | _redisplay() { |
147 | 147 | this.applicationsBox.destroy_all_children(); |
158 | 158 | while ((nextType = iter.next()) !== GMenu.TreeItemType.INVALID) { |
159 | 159 | if (nextType === GMenu.TreeItemType.ENTRY) { |
160 | 160 | let entry = iter.get_entry(); |
161 | @@ -515,8 +572,17 @@ class ApplicationsButton extends PanelMenu.Button { | |
161 | @@ -512,8 +569,17 @@ class ApplicationsButton extends PanelMenu.Button { | |
162 | 162 | this.applicationsByCategory[categoryId].push('separator'); |
163 | 163 | } else if (nextType === GMenu.TreeItemType.DIRECTORY) { |
164 | 164 | let subdir = iter.get_directory(); |
178 | 178 | } |
179 | 179 | } |
180 | 180 | } |
181 | @@ -537,8 +603,8 @@ class ApplicationsButton extends PanelMenu.Button { | |
181 | @@ -534,8 +600,8 @@ class ApplicationsButton extends PanelMenu.Button { | |
182 | 182 | } |
183 | 183 | |
184 | 184 | scrollToCatButton(button) { |
189 | 189 | let currentScrollValue = catsScrollBoxAdj.get_value(); |
190 | 190 | let boxHeight = catsScrollBoxAlloc.y2 - catsScrollBoxAlloc.y1; |
191 | 191 | let buttonAlloc = button.get_allocation_box(); |
192 | @@ -554,8 +620,9 @@ class ApplicationsButton extends PanelMenu.Button { | |
192 | @@ -551,8 +617,9 @@ class ApplicationsButton extends PanelMenu.Button { | |
193 | 193 | _createLayout() { |
194 | 194 | let section = new PopupMenu.PopupMenuSection(); |
195 | 195 | this.menu.addMenuItem(section); |
201 | 201 | this.applicationsScrollBox = new St.ScrollView({ |
202 | 202 | style_class: 'apps-menu vfade', |
203 | 203 | x_expand: true, |
204 | @@ -568,6 +635,7 @@ class ApplicationsButton extends PanelMenu.Button { | |
204 | @@ -565,6 +632,7 @@ class ApplicationsButton extends PanelMenu.Button { | |
205 | 205 | vscroll.connect('scroll-stop', () => { |
206 | 206 | this.menu.passEvents = false; |
207 | 207 | }); |
209 | 209 | this.categoriesScrollBox = new St.ScrollView({ |
210 | 210 | style_class: 'vfade', |
211 | 211 | }); |
212 | @@ -576,9 +644,10 @@ class ApplicationsButton extends PanelMenu.Button { | |
212 | @@ -573,9 +641,10 @@ class ApplicationsButton extends PanelMenu.Button { | |
213 | 213 | vscroll.connect('scroll-start', () => (this.menu.passEvents = true)); |
214 | 214 | vscroll.connect('scroll-stop', () => (this.menu.passEvents = false)); |
215 | 215 | this.leftBox.add_child(this.categoriesScrollBox); |
221 | 221 | this.categoriesBox = new St.BoxLayout({ vertical: true }); |
222 | 222 | this.categoriesScrollBox.add_actor(this.categoriesBox); |
223 | 223 | |
224 | @@ -586,19 +655,29 @@ class ApplicationsButton extends PanelMenu.Button { | |
224 | @@ -583,19 +652,29 @@ class ApplicationsButton extends PanelMenu.Button { | |
225 | 225 | this.mainBox.add_child(this._createVertSeparator()); |
226 | 226 | this.mainBox.add_child(this.applicationsScrollBox); |
227 | 227 | section.actor.add_actor(this.mainBox); |
254 | 254 | let iter = root.iter(); |
255 | 255 | let nextType; |
256 | 256 | while ((nextType = iter.next()) !== GMenu.TreeItemType.INVALID) { |
257 | @@ -611,10 +690,13 @@ class ApplicationsButton extends PanelMenu.Button { | |
257 | @@ -608,10 +687,13 @@ class ApplicationsButton extends PanelMenu.Button { | |
258 | 258 | |
259 | 259 | let categoryId = dir.get_menu_id(); |
260 | 260 | this.applicationsByCategory[categoryId] = []; |
272 | 272 | } |
273 | 273 | } |
274 | 274 | |
275 | @@ -623,9 +705,10 @@ class ApplicationsButton extends PanelMenu.Button { | |
275 | @@ -620,9 +702,10 @@ class ApplicationsButton extends PanelMenu.Button { | |
276 | 276 | |
277 | 277 | let themeContext = St.ThemeContext.get_for_stage(global.stage); |
278 | 278 | let scaleFactor = themeContext.scale_factor; |
285 | 285 | } |
286 | 286 | |
287 | 287 | selectCategory(dir) { |
288 | @@ -640,6 +723,20 @@ class ApplicationsButton extends PanelMenu.Button { | |
288 | @@ -637,6 +720,20 @@ class ApplicationsButton extends PanelMenu.Button { | |
289 | 289 | this._displayButtons(this._listApplications(dir.get_menu_id())); |
290 | 290 | else |
291 | 291 | this._displayButtons(this._listApplications(null)); |