#ifdef Q_WS_MAEMO_5
#include <QtMaemo5>
#include <QX11Info>
+#include <QDBusConnection>
+
+#include <mce/mode-names.h>
+#include <mce/dbus-names.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
toolbar, SLOT(setVisible(bool)));
connect(show_toolbar, SIGNAL(toggled(bool)),
this, SLOT(updateScreenSpaceDelayed()));
+#ifdef Q_WS_MAEMO_5
+ QDBusConnection::systemBus().connect("", MCE_SIGNAL_PATH, MCE_SIGNAL_IF, MCE_DISPLAY_SIG,
+ this, SLOT(displayStateChanged(QString)));
+#endif
setCentralWidget(scroll_area);
vnc_view->useFastTransformations(false);
}
+void MainWindow::displayStateChanged(QString state)
+{
+ const bool display_on = (state != "off");
+ if(vnc_view)
+ vnc_view->setDisplayOff(!display_on);
+}
+
void MainWindow::sendTab() { vnc_view->sendKey(Qt::Key_Tab); }
void MainWindow::sendEsc() { vnc_view->sendKey(Qt::Key_Escape); }
void MainWindow::sendPgUp() { vnc_view->sendKey(Qt::Key_PageUp); }
void statusChanged(RemoteView::RemoteStatus status);
void toggleFullscreen();
void zoomSliderReleased();
+ void displayStateChanged(QString state);
protected:
void closeEvent(QCloseEvent*);
void resizeEvent(QResizeEvent *event);
: RemoteView(parent),
m_initDone(false),
m_buttonMask(0),
- cursor_x(0),
- cursor_y(0),
+ cursor_x(0),
+ cursor_y(0),
m_quitFlag(false),
m_firstPasswordTry(true),
m_dontSendClipboard(false),
m_horizontalFactor(1.0),
m_verticalFactor(1.0),
m_forceLocalCursor(false),
- quality(quality),
- listen_port(listen_port),
- transformation_mode(Qt::FastTransformation)
+ quality(quality),
+ listen_port(listen_port),
+ transformation_mode(Qt::FastTransformation),
+ display_off(false)
{
m_url = url;
m_host = url.host();
void VncView::updateImage(int x, int y, int w, int h)
{
- if(!QApplication::focusWidget()) { //no focus, we're probably minimized
+ //don't update if window is out of focus / display is off
+ if(!QApplication::focusWidget() || display_off) {
return;
}
void showDotCursor(DotCursorState state);
void useFastTransformations(bool enabled);
QPoint cursorPosition() { return QPoint(cursor_x, cursor_y); }
+ void setDisplayOff(bool off) { display_off = off; }
public slots:
void setZoomLevel(int level = -1); //'level' doesn't correspond to actual magnification, though mapping is done here
int left_zoom, right_zoom;
bool disable_tapping;
RemoteView::Quality quality;
- int listen_port;
- Qt::TransformationMode transformation_mode;
+ int listen_port;
+ Qt::TransformationMode transformation_mode;
+ bool display_off;
void keyEventHandler(QKeyEvent *e);
void unpressModifiers();