~mir-team/qtmir/trunk

« back to all changes in this revision

Viewing changes to src/platforms/mirserver/mirserver.cpp

  • Committer: CI Train Bot
  • Author(s): Alan Griffiths
  • Date: 2016-05-25 13:54:52 UTC
  • mfrom: (482.5.4 qtmir1)
  • Revision ID: ci-train-bot@canonical.com-20160525135452-6lc0urytlgfhndnv
Remove workaround for lp:1502200
Approved by: Unity8 CI Bot, Daniel d'Andrada

Show diffs side-by-side

added added

removed removed

Lines of Context:
48
48
namespace msh = mir::shell;
49
49
namespace ms = mir::scene;
50
50
 
 
51
namespace
 
52
{
 
53
void usingHiddenCursor(mir::Server& server);
 
54
}
 
55
 
51
56
MirServer::MirServer(int &argc, char **argv,
52
57
                     const QSharedPointer<ScreensModel> &screensModel, QObject* parent)
53
58
    : QObject(parent)
130
135
        screensModel->init(the_display(), the_compositor());
131
136
    });
132
137
 
 
138
    usingHiddenCursor(*this);
 
139
 
133
140
    try {
134
141
        apply_settings();
135
142
    } catch (const std::exception &ex) {
141
148
        argc = 1;
142
149
    }
143
150
 
144
 
    // We will draw our own cursor.
145
 
    // FIXME: Call override_the_cusor() instead once this method becomes available in a
146
 
    //        future version of Mir.
147
 
    add_init_callback([this]() {
148
 
        the_cursor()->hide();
149
 
        // Hack to work around https://bugs.launchpad.net/mir/+bug/1502200
150
 
        static_cast<QtCompositor*>(the_compositor().get())->setCursor(the_cursor());
151
 
    });
152
 
 
153
151
    qCDebug(QTMIR_MIR_MESSAGES) << "MirServer created";
154
152
    qCDebug(QTMIR_MIR_MESSAGES) << "Command line arguments passed to Qt:" << QCoreApplication::arguments();
155
153
}
211
209
{
212
210
    return m_windowManager.lock().get();
213
211
}
 
212
 
 
213
namespace
 
214
{
 
215
struct HiddenCursorWrapper : mg::Cursor
 
216
{
 
217
    HiddenCursorWrapper(std::shared_ptr<mg::Cursor> const& wrapped) :
 
218
        wrapped{wrapped} { wrapped->hide(); }
 
219
    void show() override { }
 
220
    void show(mg::CursorImage const&) override { }
 
221
    void hide() override { wrapped->hide(); }
 
222
 
 
223
    void move_to(mir::geometry::Point position) override { wrapped->move_to(position); }
 
224
 
 
225
private:
 
226
    std::shared_ptr<mg::Cursor> const wrapped;
 
227
};
 
228
 
 
229
void usingHiddenCursor(mir::Server& server)
 
230
{
 
231
    server.wrap_cursor([&](std::shared_ptr<mg::Cursor> const& wrapped)
 
232
        { return std::make_shared<HiddenCursorWrapper>(wrapped); });
 
233
};
 
234
}