Merge lp:~3v1n0/unity/super-tab-switcher-shortcut-interaction into lp:unity
- super-tab-switcher-shortcut-interaction
- Merge into trunk
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Andrea Azzarone | ||||
Approved revision: | no longer in the source branch. | ||||
Merged at revision: | 1867 | ||||
Proposed branch: | lp:~3v1n0/unity/super-tab-switcher-shortcut-interaction | ||||
Merge into: | lp:unity | ||||
Diff against target: |
462 lines (+128/-97) 5 files modified
manual-tests/SuperTab.txt (+22/-0) plugins/unityshell/src/ShortcutController.cpp (+52/-34) plugins/unityshell/src/ShortcutController.h (+10/-5) plugins/unityshell/src/unityshell.cpp (+39/-52) plugins/unityshell/src/unityshell.h (+5/-6) |
||||
To merge this branch: | bzr merge lp:~3v1n0/unity/super-tab-switcher-shortcut-interaction | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Andrea Azzarone (community) | Approve | ||
Tim Penhey (community) | Approve | ||
Review via email: mp+88608@code.launchpad.net |
Commit message
Description of the change
Fixed the logical interaction between lp:~3v1n0/unity/super-tab-switcher and lp:~andyrock/unity/shortcut-hint as defined by design.
Plus, some code improvements and fixed an issue that caused the shortcut hint to show when pressing Super and clicking over the BFB to show the dash.
I'm wondering if we should avoid the same also when pressing over the workspace switcher.
Andrea Azzarone (azzar1) wrote : | # |
Never mind ;)
Andrea Azzarone (azzar1) wrote : | # |
173 +bool Controller:
174 +{
175 + return enabled_;
176 +}
177 +
178 +void Controller:
179 +{
180 + enabled_ = enabled;
181 +}
182 +
Why not nux::Property enabled? What do you think?
+ optionSetShowMi
Remove the space, please :)
271 +
272 + ubus_manager_
273 + sigc::mem_fun(this, &UnityScreen:
274 +
275 + ubus_manager_
276 + sigc::mem_fun(this, &UnityScreen:
277 +
278 + ubus_manager_
279 + sigc::mem_fun(this, &UnityScreen:
Fix the indentation...
Btw it works well.
Marco Trevisan (Treviño) (3v1n0) wrote : | # |
> 173 +bool Controller:
> 174 +{
> 175 + return enabled_;
> 176 +}
> 177 +
> 178 +void Controller:
> 179 +{
> 180 + enabled_ = enabled;
> 181 +}
> 182 +
>
> Why not nux::Property enabled? What do you think?
Mh... I'd prefer using this way, but let me know what you prefer.
> + optionSetShowMi
> (boost:
>
> Remove the space, please :)
>
> 271 +
> 272 + ubus_manager_
> 273 +
> sigc::mem_fun(this, &UnityScreen:
> 274 +
> 275 + ubus_manager_
> 276 +
> sigc::mem_fun(this, &UnityScreen:
> 277 +
> 278 + ubus_manager_
> 279 +
> sigc::mem_fun(this, &UnityScreen:
>
> Fix the indentation...
Damned you! :D
This was an Easter egg for you! ^_^
> Btw it works well.
Nice.
Do you have any design input about how the interaction with the expo? (Should the overlay be hidden when using mouse to activate it?)
Andrea Azzarone (azzar1) wrote : | # |
> > 173 +bool Controller:
> > 174 +{
> > 175 + return enabled_;
> > 176 +}
> > 177 +
> > 178 +void Controller:
> > 179 +{
> > 180 + enabled_ = enabled;
> > 181 +}
> > 182 +
> >
> > Why not nux::Property enabled? What do you think?
>
> Mh... I'd prefer using this way, but let me know what you prefer.
>
I prefer nux::Property, but let decide Tim ;)
> > + optionSetShowMi
> > (boost:
> >
> > Remove the space, please :)
> >
> > 271 +
> > 272 + ubus_manager_
> > 273 +
> > sigc::mem_fun(this, &UnityScreen:
> > 274 +
> > 275 + ubus_manager_
> > 276 +
> > sigc::mem_fun(this, &UnityScreen:
> > 277 +
> > 278 + ubus_manager_
> > 279 +
> > sigc::mem_fun(this, &UnityScreen:
> >
> > Fix the indentation...
>
> Damned you! :D
> This was an Easter egg for you! ^_^
>
> > Btw it works well.
>
> Nice.
> Do you have any design input about how the interaction with the expo? (Should
> the overlay be hidden when using mouse to activate it?)
No.
Tim Penhey (thumper) wrote : | # |
I wouldn't get too hung up on it. Your indentation is still off in a few places, but not blocking.
Perhaps this is worth writing an autopilot test for?
You would need to expose the shortcut controller :)
Marco Trevisan (Treviño) (3v1n0) wrote : | # |
Well, I guess that the autopilot test could be included into the generic launcher switcher test...
Andrea Azzarone (azzar1) : | # |
Preview Diff
1 | === modified file 'manual-tests/SuperTab.txt' |
2 | --- manual-tests/SuperTab.txt 2012-01-13 15:51:12 +0000 |
3 | +++ manual-tests/SuperTab.txt 2012-01-19 23:43:23 +0000 |
4 | @@ -20,3 +20,25 @@ |
5 | If in the launcher there are many icons and they are shown as collapsed, |
6 | when the Super+Tab is activated and the icons should be expanded when |
7 | neeeded. |
8 | + |
9 | +Super Tab switcher interaction with Shortcut Hint |
10 | +------------------------------------------------- |
11 | +This test shows the interaction between the shortcut hint overlay and the |
12 | +Super+Tab switcher. |
13 | + |
14 | +#. Start with a clean screen |
15 | +#. Press Super to make the shortcuts-overlay to show |
16 | +#. Then press Tab to initiate the Super+Tab launcher switcher |
17 | + |
18 | +Outcome: |
19 | + The Super+Tab switcher is initialized, and the shortcut hint overlay is still |
20 | + showing. Pressing also Shift to reverse the switcher direction doesn't hide |
21 | + the overlay, that will be hidden once Super is released. |
22 | + |
23 | +#. Start with a clean screen |
24 | +#. Press Super+Tab quickly to make the launcher switcher to initialize without |
25 | + making the shortcut overlay to show. |
26 | + |
27 | +Outcome: |
28 | + Super+Tab switcher is initialized and the shortcut hint overlay is not shown |
29 | + even keeping only super pressed until releasing it and pressing it again. |
30 | |
31 | === modified file 'plugins/unityshell/src/ShortcutController.cpp' |
32 | --- plugins/unityshell/src/ShortcutController.cpp 2011-12-19 22:42:19 +0000 |
33 | +++ plugins/unityshell/src/ShortcutController.cpp 2012-01-19 23:43:23 +0000 |
34 | @@ -19,7 +19,6 @@ |
35 | #include "ShortcutController.h" |
36 | |
37 | #include "UBusMessages.h" |
38 | -#include "ubus-server.h" |
39 | #include "WindowManager.h" |
40 | |
41 | namespace unity |
42 | @@ -34,39 +33,43 @@ |
43 | Controller::Controller(std::list<AbstractHint*>& hints) |
44 | : view_window_(0) |
45 | , visible_(false) |
46 | + , enabled_(true) |
47 | , show_timer_(0) |
48 | - , fade_in_animator_(new Animator(100)) |
49 | - , fade_out_animator_(new Animator(100)) |
50 | - |
51 | + , fade_in_animator_(100) |
52 | + , fade_out_animator_(100) |
53 | { |
54 | bg_color_ = nux::Color(0.0, 0.0, 0.0, 0.5); |
55 | |
56 | - UBusServer *ubus = ubus_server_get_default(); |
57 | - bg_update_handle_ = ubus_server_register_interest(ubus, UBUS_BACKGROUND_COLOR_CHANGED, |
58 | - (UBusCallback)&Controller::OnBackgroundUpdate, |
59 | - this); |
60 | + ubus_manager_.RegisterInterest(UBUS_BACKGROUND_COLOR_CHANGED, |
61 | + sigc::mem_fun(this, &Controller::OnBackgroundUpdate)); |
62 | + |
63 | + ubus_manager_.RegisterInterest(UBUS_LAUNCHER_START_KEY_SWTICHER, [&] (GVariant*) { |
64 | + enabled_ = false; |
65 | + }); |
66 | + |
67 | + ubus_manager_.RegisterInterest(UBUS_LAUNCHER_END_KEY_SWTICHER, [&] (GVariant*) { |
68 | + enabled_ = true; |
69 | + }); |
70 | + |
71 | + ubus_manager_.RegisterInterest(UBUS_PLACE_VIEW_SHOWN, [&] (GVariant*) { |
72 | + Hide(); |
73 | + }); |
74 | + |
75 | + ubus_manager_.SendMessage(UBUS_BACKGROUND_REQUEST_COLOUR_EMIT); |
76 | |
77 | model_.reset(new Model(hints)); |
78 | - |
79 | + |
80 | model_->Fill(); |
81 | ConstructView(); |
82 | |
83 | - fade_in_animator_->animation_updated.connect(sigc::mem_fun(this, &Controller::OnFadeInUpdated)); |
84 | - fade_in_animator_->animation_ended.connect(sigc::mem_fun(this, &Controller::OnFadeInEnded)); |
85 | - fade_out_animator_->animation_updated.connect(sigc::mem_fun(this, &Controller::OnFadeOutUpdated)); |
86 | - fade_out_animator_->animation_ended.connect(sigc::mem_fun(this, &Controller::OnFadeOutEnded)); |
87 | + fade_in_animator_.animation_updated.connect(sigc::mem_fun(this, &Controller::OnFadeInUpdated)); |
88 | + fade_in_animator_.animation_ended.connect(sigc::mem_fun(this, &Controller::OnFadeInEnded)); |
89 | + fade_out_animator_.animation_updated.connect(sigc::mem_fun(this, &Controller::OnFadeOutUpdated)); |
90 | + fade_out_animator_.animation_ended.connect(sigc::mem_fun(this, &Controller::OnFadeOutEnded)); |
91 | } |
92 | |
93 | Controller::~Controller() |
94 | { |
95 | - ubus_server_unregister_interest(ubus_server_get_default(), bg_update_handle_); |
96 | - |
97 | - if (fade_in_animator_) |
98 | - delete fade_in_animator_; |
99 | - |
100 | - if (fade_out_animator_) |
101 | - delete fade_out_animator_; |
102 | - |
103 | if (view_window_) |
104 | view_window_->UnReference(); |
105 | |
106 | @@ -96,21 +99,23 @@ |
107 | } |
108 | |
109 | |
110 | -void Controller::OnBackgroundUpdate(GVariant* data, Controller* self) |
111 | +void Controller::OnBackgroundUpdate(GVariant* data) |
112 | { |
113 | gdouble red, green, blue, alpha; |
114 | g_variant_get(data, "(dddd)", &red, &green, &blue, &alpha); |
115 | - self->bg_color_ = nux::Color(red, green, blue, alpha); |
116 | + bg_color_ = nux::Color(red, green, blue, alpha); |
117 | |
118 | - if (self->view_) |
119 | - self->view_->background_color = self->bg_color_; |
120 | + if (view_) |
121 | + view_->background_color = bg_color_; |
122 | } |
123 | |
124 | void Controller::Show() |
125 | { |
126 | if (show_timer_) |
127 | g_source_remove (show_timer_); |
128 | - show_timer_ = g_timeout_add(SUPER_TAP_DURATION, &Controller::OnShowTimer, this); |
129 | + |
130 | + if (enabled_) |
131 | + show_timer_ = g_timeout_add(SUPER_TAP_DURATION, &Controller::OnShowTimer, this); |
132 | |
133 | model_->Fill(); |
134 | visible_ = true; |
135 | @@ -119,16 +124,19 @@ |
136 | gboolean Controller::OnShowTimer(gpointer data) |
137 | { |
138 | Controller* self = static_cast<Controller*>(data); |
139 | - |
140 | - ubus_server_send_message(ubus_server_get_default(), |
141 | - UBUS_PLACE_VIEW_CLOSE_REQUEST, |
142 | - NULL); |
143 | + |
144 | + if (!self->enabled_) |
145 | + { |
146 | + return FALSE; |
147 | + } |
148 | + |
149 | + self->ubus_manager_.SendMessage(UBUS_PLACE_VIEW_CLOSE_REQUEST); |
150 | |
151 | if (self->visible_) |
152 | { |
153 | self->view_->SetupBackground(true); |
154 | - self->fade_out_animator_->Stop(); |
155 | - self->fade_in_animator_->Start(self->view_window_->GetOpacity()); |
156 | + self->fade_out_animator_.Stop(); |
157 | + self->fade_in_animator_.Start(self->view_window_->GetOpacity()); |
158 | } |
159 | |
160 | self->show_timer_ = 0; |
161 | @@ -176,8 +184,8 @@ |
162 | if (view_window_) |
163 | { |
164 | view_->SetupBackground(false); |
165 | - fade_in_animator_->Stop(); |
166 | - fade_out_animator_->Start(1.0 - view_window_->GetOpacity()); |
167 | + fade_in_animator_.Stop(); |
168 | + fade_out_animator_.Start(1.0 - view_window_->GetOpacity()); |
169 | } |
170 | |
171 | if (show_timer_) |
172 | @@ -190,5 +198,15 @@ |
173 | return visible_; |
174 | } |
175 | |
176 | +bool Controller::IsEnabled() |
177 | +{ |
178 | + return enabled_; |
179 | +} |
180 | + |
181 | +void Controller::SetEnabled(bool enabled) |
182 | +{ |
183 | + enabled_ = enabled; |
184 | +} |
185 | + |
186 | } // namespace shortcut |
187 | } // namespace unity |
188 | |
189 | === modified file 'plugins/unityshell/src/ShortcutController.h' |
190 | --- plugins/unityshell/src/ShortcutController.h 2011-12-13 23:31:20 +0000 |
191 | +++ plugins/unityshell/src/ShortcutController.h 2012-01-19 23:43:23 +0000 |
192 | @@ -29,6 +29,7 @@ |
193 | #include "Animator.h" |
194 | #include "ShortcutModel.h" |
195 | #include "ShortcutView.h" |
196 | +#include "UBusWrapper.h" |
197 | |
198 | namespace unity |
199 | { |
200 | @@ -49,13 +50,15 @@ |
201 | void Hide(); |
202 | |
203 | bool Visible(); |
204 | + bool IsEnabled(); |
205 | |
206 | void SetWorkspace(nux::Geometry const& geo); |
207 | + void SetEnabled(bool enabled); |
208 | |
209 | private: |
210 | // Private Methods |
211 | void ConstructView(); |
212 | - static void OnBackgroundUpdate(GVariant* data, Controller* self); |
213 | + void OnBackgroundUpdate(GVariant* data); |
214 | void OnFadeInUpdated(double opacity); |
215 | void OnFadeInEnded(); |
216 | void OnFadeOutUpdated(double opacity); |
217 | @@ -72,13 +75,15 @@ |
218 | nux::HLayout* main_layout_; |
219 | |
220 | bool visible_; |
221 | + bool enabled_; |
222 | nux::Color bg_color_; |
223 | guint show_timer_; |
224 | - guint bg_update_handle_; |
225 | |
226 | - Animator* fade_in_animator_; |
227 | - Animator* fade_out_animator_; |
228 | -}; |
229 | + Animator fade_in_animator_; |
230 | + Animator fade_out_animator_; |
231 | + |
232 | + UBusManager ubus_manager_; |
233 | +}; |
234 | |
235 | } // namespace shortcut |
236 | } // namespace unity |
237 | |
238 | === modified file 'plugins/unityshell/src/unityshell.cpp' |
239 | --- plugins/unityshell/src/unityshell.cpp 2012-01-19 15:13:35 +0000 |
240 | +++ plugins/unityshell/src/unityshell.cpp 2012-01-19 23:43:23 +0000 |
241 | @@ -52,7 +52,6 @@ |
242 | |
243 | #include "unitya11y.h" |
244 | |
245 | -#include "ubus-server.h" |
246 | #include "UBusMessages.h" |
247 | #include "UScreen.h" |
248 | |
249 | @@ -294,26 +293,16 @@ |
250 | optionSetLauncherSwitcherPrevInitiate(boost::bind(&UnityScreen::launcherSwitcherPrevInitiate, this, _1, _2, _3)); |
251 | optionSetLauncherSwitcherForwardTerminate(boost::bind(&UnityScreen::launcherSwitcherTerminate, this, _1, _2, _3)); |
252 | |
253 | - optionSetShowMinimizedWindowsNotify (boost::bind (&UnityScreen::optionChanged, this, _1, _2)); |
254 | - |
255 | - for (unsigned int i = 0; i < G_N_ELEMENTS(_ubus_handles); i++) |
256 | - _ubus_handles[i] = 0; |
257 | - |
258 | - UBusServer* ubus = ubus_server_get_default(); |
259 | - _ubus_handles[0] = ubus_server_register_interest(ubus, |
260 | - UBUS_LAUNCHER_START_KEY_NAV, |
261 | - (UBusCallback)&UnityScreen::OnLauncherStartKeyNav, |
262 | - this); |
263 | - |
264 | - _ubus_handles[1] = ubus_server_register_interest(ubus, |
265 | - UBUS_LAUNCHER_END_KEY_NAV, |
266 | - (UBusCallback)&UnityScreen::OnLauncherEndKeyNav, |
267 | - this); |
268 | - |
269 | - _ubus_handles[2] = ubus_server_register_interest(ubus, |
270 | - UBUS_QUICKLIST_END_KEY_NAV, |
271 | - (UBusCallback)&UnityScreen::OnQuicklistEndKeyNav, |
272 | - this); |
273 | + optionSetShowMinimizedWindowsNotify(boost::bind(&UnityScreen::optionChanged, this, _1, _2)); |
274 | + |
275 | + ubus_manager_.RegisterInterest(UBUS_LAUNCHER_START_KEY_NAV, |
276 | + sigc::mem_fun(this, &UnityScreen::OnLauncherStartKeyNav)); |
277 | + |
278 | + ubus_manager_.RegisterInterest(UBUS_LAUNCHER_END_KEY_NAV, |
279 | + sigc::mem_fun(this, &UnityScreen::OnLauncherEndKeyNav)); |
280 | + |
281 | + ubus_manager_.RegisterInterest(UBUS_QUICKLIST_END_KEY_NAV, |
282 | + sigc::mem_fun(this, &UnityScreen::OnQuicklistEndKeyNav)); |
283 | |
284 | g_idle_add_full (G_PRIORITY_DEFAULT, &UnityScreen::initPluginActions, this, NULL); |
285 | super_keypressed_ = false; |
286 | @@ -343,13 +332,6 @@ |
287 | |
288 | unity_a11y_finalize(); |
289 | |
290 | - UBusServer* ubus = ubus_server_get_default(); |
291 | - for (unsigned int i = 0; i < G_N_ELEMENTS(_ubus_handles); i++) |
292 | - { |
293 | - if (_ubus_handles[i] != 0) |
294 | - ubus_server_unregister_interest(ubus, _ubus_handles[i]); |
295 | - } |
296 | - |
297 | if (relayoutSourceId != 0) |
298 | g_source_remove(relayoutSourceId); |
299 | |
300 | @@ -1129,7 +1111,16 @@ |
301 | key_string[result] = 0; |
302 | if (super_keypressed_) |
303 | { |
304 | - shortcut_controller_->Hide(); |
305 | + g_idle_add([] (gpointer data) -> gboolean { |
306 | + auto self = static_cast<UnityScreen*>(data); |
307 | + if (!self->launcher_controller_->launcher().KeySwitcherIsActive()) |
308 | + { |
309 | + self->shortcut_controller_->SetEnabled(false); |
310 | + self->shortcut_controller_->Hide(); |
311 | + } |
312 | + return FALSE; |
313 | + }, this); |
314 | + |
315 | skip_other_plugins = launcher.CheckSuperShortcutPressed(screen->dpy(), key_sym, event->xkey.keycode, event->xkey.state, key_string); |
316 | if (!skip_other_plugins) |
317 | { |
318 | @@ -1225,10 +1216,9 @@ |
319 | PluginAdapter::Default()->NotifyCompizEvent(plugin, event, option); |
320 | compiz::CompizMinimizedWindowHandler<UnityScreen, UnityWindow>::handleCompizEvent (plugin, event, option); |
321 | |
322 | - if (dash_is_open_ && |
323 | - strcmp(event, "start_viewport_switch") == 0) |
324 | + if (dash_is_open_ && g_strcmp0(event, "start_viewport_switch") == 0) |
325 | { |
326 | - ubus_server_send_message(ubus_server_get_default(), UBUS_PLACE_VIEW_CLOSE_REQUEST, NULL); |
327 | + ubus_manager_.SendMessage(UBUS_PLACE_VIEW_CLOSE_REQUEST); |
328 | } |
329 | |
330 | screen->handleCompizEvent(plugin, event, option); |
331 | @@ -1245,33 +1235,33 @@ |
332 | super_keypressed_ = true; |
333 | launcher_controller_->launcher().StartKeyShowLauncher(); |
334 | EnsureSuperKeybindings (); |
335 | - |
336 | - if (enable_shortcut_overlay_ and !shortcut_controller_->Visible()) |
337 | + |
338 | + if (!shortcut_controller_->Visible() && shortcut_controller_->IsEnabled()) |
339 | { |
340 | static nux::Geometry last_geo; |
341 | UScreen* uscreen = UScreen::GetDefault(); |
342 | int primary_monitor = uscreen->GetPrimaryMonitor(); |
343 | auto monitor_geo = uscreen->GetMonitorGeometry(primary_monitor); |
344 | - |
345 | + |
346 | int width = 970; |
347 | int height = 680; |
348 | int launcher_width = optionGetIconSize() + 18; |
349 | int panel_height = 24; |
350 | int x = monitor_geo.x + launcher_width + (monitor_geo.width - launcher_width- width) / 2; |
351 | int y = monitor_geo.y + panel_height + (monitor_geo.height - panel_height - height) / 2; |
352 | - |
353 | + |
354 | nux::Geometry geo (x, y, width, height); |
355 | - |
356 | + |
357 | if (last_geo != geo) |
358 | { |
359 | shortcut_controller_->SetWorkspace(geo); |
360 | last_geo = geo; |
361 | } |
362 | - |
363 | + |
364 | if (last_geo.x > monitor_geo.x and last_geo.y > monitor_geo.y) |
365 | shortcut_controller_->Show(); |
366 | } |
367 | - |
368 | + |
369 | return false; |
370 | } |
371 | |
372 | @@ -1282,6 +1272,8 @@ |
373 | super_keypressed_ = false; |
374 | launcher_controller_->launcher().EndKeyShowLauncher(); |
375 | launcher_controller_->launcher().KeySwitcherTerminate(); |
376 | + |
377 | + shortcut_controller_->SetEnabled(enable_shortcut_overlay_); |
378 | shortcut_controller_->Hide(); |
379 | return false; |
380 | } |
381 | @@ -1370,12 +1362,8 @@ |
382 | |
383 | void UnityScreen::SendExecuteCommand() |
384 | { |
385 | - ubus_server_send_message(ubus_server_get_default(), |
386 | - UBUS_PLACE_ENTRY_ACTIVATE_REQUEST, |
387 | - g_variant_new("(sus)", |
388 | - "commands.lens", |
389 | - 0, |
390 | - "")); |
391 | + ubus_manager_.SendMessage(UBUS_PLACE_ENTRY_ACTIVATE_REQUEST, |
392 | + g_variant_new("(sus)", "commands.lens", 0, "")); |
393 | } |
394 | |
395 | bool UnityScreen::executeCommand(CompAction* action, |
396 | @@ -1563,13 +1551,12 @@ |
397 | return false; |
398 | } |
399 | |
400 | -void UnityScreen::OnLauncherStartKeyNav(GVariant* data, void* value) |
401 | +void UnityScreen::OnLauncherStartKeyNav(GVariant* data) |
402 | { |
403 | - UnityScreen* self = reinterpret_cast<UnityScreen*>(value); |
404 | - self->startLauncherKeyNav(); |
405 | + startLauncherKeyNav(); |
406 | } |
407 | |
408 | -void UnityScreen::OnLauncherEndKeyNav(GVariant* data, void* value) |
409 | +void UnityScreen::OnLauncherEndKeyNav(GVariant* data) |
410 | { |
411 | bool preserve_focus = false; |
412 | |
413 | @@ -1584,10 +1571,9 @@ |
414 | PluginAdapter::Default ()->restoreInputFocus (); |
415 | } |
416 | |
417 | -void UnityScreen::OnQuicklistEndKeyNav(GVariant* data, void* value) |
418 | +void UnityScreen::OnQuicklistEndKeyNav(GVariant* data) |
419 | { |
420 | - UnityScreen* self = reinterpret_cast<UnityScreen*>(value); |
421 | - self->restartLauncherKeyNav(); |
422 | + restartLauncherKeyNav(); |
423 | } |
424 | |
425 | gboolean UnityScreen::initPluginActions(gpointer data) |
426 | @@ -2242,6 +2228,7 @@ |
427 | break; |
428 | case UnityshellOptions::ShortcutOverlay: |
429 | enable_shortcut_overlay_ = optionGetShortcutOverlay(); |
430 | + shortcut_controller_->SetEnabled(enable_shortcut_overlay_); |
431 | break; |
432 | case UnityshellOptions::ShowDesktopIcon: |
433 | launcher_controller_->SetShowDesktopIcon(optionGetShowDesktopIcon()); |
434 | |
435 | === modified file 'plugins/unityshell/src/unityshell.h' |
436 | --- plugins/unityshell/src/unityshell.h 2012-01-14 13:05:16 +0000 |
437 | +++ plugins/unityshell/src/unityshell.h 2012-01-19 23:43:23 +0000 |
438 | @@ -245,10 +245,10 @@ |
439 | |
440 | void OnDashRealized (); |
441 | |
442 | - static void OnQuicklistEndKeyNav(GVariant* data, void* value); |
443 | - static void OnLauncherStartKeyNav(GVariant* data, void* value); |
444 | - static void OnLauncherEndKeyNav(GVariant* data, void* value); |
445 | - |
446 | + void OnQuicklistEndKeyNav(GVariant* data); |
447 | + void OnLauncherStartKeyNav(GVariant* data); |
448 | + void OnLauncherEndKeyNav(GVariant* data); |
449 | + |
450 | void InitHints(); |
451 | |
452 | dash::Settings dash_settings_; |
453 | @@ -277,8 +277,7 @@ |
454 | guint _edge_trigger_handle; |
455 | guint32 _redraw_handle; |
456 | gint _edge_pointerY; |
457 | - guint _ubus_handles[3]; |
458 | - |
459 | + |
460 | typedef std::shared_ptr<CompAction> CompActionPtr; |
461 | typedef std::vector<CompActionPtr> ShortcutActions; |
462 | ShortcutActions _shortcut_actions; |
>Plus, some code improvements and fixed an issue that caused the shortcut hint to show when pressing Super and clicking over the BFB to show the dash.
Which issue?