Merge lp:~unity-api-team/indicator-network/lp1393488-15.04 into lp:indicator-network/15.04

Proposed by Antti Kaijanmäki
Status: Merged
Approved by: Jussi Pakkanen
Approved revision: 463
Merged at revision: 466
Proposed branch: lp:~unity-api-team/indicator-network/lp1393488-15.04
Merge into: lp:indicator-network/15.04
Diff against target: 81 lines (+22/-17)
3 files modified
src/indicator/quick-access-section.cpp (+17/-13)
src/menumodel-cpp/gio-helpers/util.cpp (+4/-3)
src/menumodel-cpp/gio-helpers/util.h (+1/-1)
To merge this branch: bzr merge lp:~unity-api-team/indicator-network/lp1393488-15.04
Reviewer Review Type Date Requested Status
Jussi Pakkanen (community) Approve
Review via email: mp+244153@code.launchpad.net

Commit message

fix flighmode switch bouncing on krillin.

To post a comment you must log in.
Revision history for this message
Jussi Pakkanen (jpakkane) wrote :

Yup.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/indicator/quick-access-section.cpp'
--- src/indicator/quick-access-section.cpp 2014-10-29 18:12:05 +0000
+++ src/indicator/quick-access-section.cpp 2014-12-09 14:57:16 +0000
@@ -76,19 +76,23 @@
76 });76 });
77 });77 });
78 m_flightModeSwitch->activated().connect([this](){78 m_flightModeSwitch->activated().connect([this](){
79 if (m_flightModeSwitch->state().get()) {79 bool state = m_flightModeSwitch->state().get();
80 try {80 auto manager = m_manager;
81 m_manager->enableFlightMode();81 GMainLoopDispatch([manager, state](){
82 } catch (const std::exception &e) {82 if (state) {
83 std::cerr << e.what() << std::endl;83 try {
84 }84 manager->enableFlightMode();
85 } else {85 } catch (const std::exception &e) {
86 try {86 std::cerr << e.what() << std::endl;
87 m_manager->disableFlightMode();87 }
88 } catch (const std::exception &e) {88 } else {
89 std::cerr << e.what() << std::endl;89 try {
90 }90 manager->disableFlightMode();
91 }91 } catch (const std::exception &e) {
92 std::cerr << e.what() << std::endl;
93 }
94 }
95 }, G_PRIORITY_LOW, true);
92 });96 });
9397
94 m_actionGroupMerger->add(*m_flightModeSwitch);98 m_actionGroupMerger->add(*m_flightModeSwitch);
9599
=== modified file 'src/menumodel-cpp/gio-helpers/util.cpp'
--- src/menumodel-cpp/gio-helpers/util.cpp 2014-10-29 19:11:05 +0000
+++ src/menumodel-cpp/gio-helpers/util.cpp 2014-12-09 14:57:16 +0000
@@ -36,11 +36,12 @@
36 return G_SOURCE_REMOVE;36 return G_SOURCE_REMOVE;
37}37}
3838
39GMainLoopDispatch::GMainLoopDispatch(Func func)39GMainLoopDispatch::GMainLoopDispatch(Func func, int priority, bool force_delayed)
40{40{
41 std::unique_lock<std::mutex> lock(_lock);41 std::unique_lock<std::mutex> lock(_lock);
4242
43 if (g_main_context_acquire(g_main_context_default())) {43 if (!force_delayed &&
44 g_main_context_acquire(g_main_context_default())) {
44 // already running inside GMainLoop..45 // already running inside GMainLoop..
45 // free the lock and dispatch immediately.46 // free the lock and dispatch immediately.
46 lock.unlock();47 lock.unlock();
@@ -49,7 +50,7 @@
49 } else {50 } else {
50 std::function<void()> *funcPtr = new std::function<void()>(func);51 std::function<void()> *funcPtr = new std::function<void()>(func);
51 if (_funcs.empty()) {52 if (_funcs.empty()) {
52 g_idle_add_full(G_PRIORITY_HIGH,53 g_idle_add_full(priority,
53 GSourceFunc(GMainLoopDispatch::dispatch_cb),54 GSourceFunc(GMainLoopDispatch::dispatch_cb),
54 NULL,55 NULL,
55 NULL);56 NULL);
5657
=== modified file 'src/menumodel-cpp/gio-helpers/util.h'
--- src/menumodel-cpp/gio-helpers/util.h 2014-10-31 13:50:05 +0000
+++ src/menumodel-cpp/gio-helpers/util.h 2014-12-09 14:57:16 +0000
@@ -77,7 +77,7 @@
77 static std::list<Func *> _funcs;77 static std::list<Func *> _funcs;
7878
79 //GMainLoopDispatch() = delete;79 //GMainLoopDispatch() = delete;
80 GMainLoopDispatch(Func func);80 GMainLoopDispatch(Func func, int priority=G_PRIORITY_HIGH, bool force_delayed=false);
81};81};
8282
83struct GObjectDeleter {83struct GObjectDeleter {

Subscribers

People subscribed via source and target branches