Ejemplo n.º 1
0
void QNitpickerPlatformWindow::setGeometry(const QRect &rect)
{
	if (qnpw_verbose)
	    qDebug() << "QNitpickerPlatformWindow::setGeometry(" << rect << ")";

	_adjust_and_set_geometry(rect);

	if (qnpw_verbose)
	    qDebug() << "QNitpickerPlatformWindow::setGeometry() finished";
}
Ejemplo n.º 2
0
QNitpickerPlatformWindow::QNitpickerPlatformWindow(Genode::Env &env, QWindow *window,
                                                   Genode::Signal_receiver &signal_receiver,
                                                   int screen_width, int screen_height)
: QPlatformWindow(window),
  _env(env),
  _nitpicker_session(env),
  _framebuffer_session(_nitpicker_session.framebuffer_session()),
  _framebuffer(0),
  _framebuffer_changed(false),
  _geometry_changed(false),
  _signal_receiver(signal_receiver),
  _view_handle(_create_view()),
  _input_session(env.rm(), _nitpicker_session.input_session()),
  _ev_buf(env.rm(), _input_session.dataspace()),
  _keyboard_handler("", _evdevkeyboard_fd, false, false, ""),
  _resize_handle(!window->flags().testFlag(Qt::Popup)),
  _decoration(!window->flags().testFlag(Qt::Popup)),
  _egl_surface(EGL_NO_SURFACE),
  _key_repeat_timer(this),
  _last_keycode(0),
  _input_signal_dispatcher(_signal_receiver, *this,
                           &QNitpickerPlatformWindow::_input),
  _mode_changed_signal_dispatcher(_signal_receiver, *this,
                                  &QNitpickerPlatformWindow::_mode_changed),
  _touch_device(_init_touch_device())
{
	if (qnpw_verbose)
		if (window->transientParent())
			qDebug() << "QNitpickerPlatformWindow(): child window of" << window->transientParent();

	_input_session.sigh(_input_signal_dispatcher);

	_nitpicker_session.mode_sigh(_mode_changed_signal_dispatcher);

	_adjust_and_set_geometry(geometry());

	if (_view_handle.valid()) {

		/* bring the view to the top */
		typedef Nitpicker::Session::Command Command;
		_nitpicker_session.enqueue<Command::To_front>(_view_handle);
		_nitpicker_session.execute();
	}

	connect(this, SIGNAL(_input(unsigned int)),
	        this, SLOT(_handle_input(unsigned int)),
	        Qt::QueuedConnection);

	connect(this, SIGNAL(_mode_changed(unsigned int)),
	        this, SLOT(_handle_mode_changed(unsigned int)),
	        Qt::QueuedConnection);

	connect(_key_repeat_timer, SIGNAL(timeout()),
	        this, SLOT(_key_repeat()));
}
Ejemplo n.º 3
0
QNitpickerPlatformWindow::QNitpickerPlatformWindow(QWindow *window, Genode::Rpc_entrypoint &ep,
		                 int screen_width, int screen_height)
: QPlatformWindow(window),
  _framebuffer_session(_nitpicker_session.framebuffer_session()),
  _framebuffer(0),
  _framebuffer_changed(false),
  _geometry_changed(false),
  _view_handle(_create_view()),
  _input_session(_nitpicker_session.input_session()),
  _timer(this),
  _keyboard_handler("", -1, false, false, ""),
  _resize_handle(!window->flags().testFlag(Qt::Popup)),
  _decoration(!window->flags().testFlag(Qt::Popup)),
  _egl_surface(EGL_NO_SURFACE)
{
	if (qnpw_verbose)
		if (window->transientParent())
			qDebug() << "QNitpickerPlatformWindow(): child window of" << window->transientParent();

	_mode_changed_signal_context_capability = _signal_receiver.manage(&_mode_changed_signal_context);
	_nitpicker_session.mode_sigh(_mode_changed_signal_context_capability);

	_adjust_and_set_geometry(geometry());

	_ev_buf = static_cast<Input::Event *>
			  (Genode::env()->rm_session()->attach(_input_session.dataspace()));

	if (_view_handle.valid()) {

		/* bring the view to the top */
		typedef Nitpicker::Session::Command Command;
		_nitpicker_session.enqueue<Command::To_front>(_view_handle);
		_nitpicker_session.execute();
	}

	connect(_timer, SIGNAL(timeout()), this, SLOT(handle_events()));
	_timer->start(10);
}