GUI2: small fixups to touch event backend

This commit is contained in:
Charles Dang 2017-02-10 02:13:59 +11:00
parent fb27d61f07
commit 823d5b423d
2 changed files with 22 additions and 3 deletions

View file

@ -78,6 +78,19 @@ typedef std::function<void(dispatcher& dispatcher,
const utf8::string& unicode)>
signal_keyboard_function;
/**
* Callback function signature.
*
* This function is used for the callbacks in set_event_touch.
*/
typedef std::function<void(dispatcher& dispatcher,
const ui_event event,
bool& handled,
bool& halt,
const point& pos,
const point& distance)>
signal_touch_function;
/**
* Callback function signature.
*
@ -375,7 +388,7 @@ public:
*/
template <ui_event E>
typename std::enable_if<has_key<set_event_touch, E>::value>::type
connect_signal(const set_event_touch& signal,
connect_signal(const signal_touch_function& signal,
const queue_position position = back_child)
{
signal_touch_queue_.connect_signal(E, position, signal);
@ -393,7 +406,7 @@ public:
*/
template <ui_event E>
typename std::enable_if<has_key<set_event_touch, E>::value>::type
disconnect_signal(const set_event_touch& signal,
disconnect_signal(const signal_touch_function& signal,
const queue_position position = back_child)
{
signal_touch_queue_.disconnect_signal(E, position, signal);
@ -699,7 +712,7 @@ private:
signal_queue<signal_keyboard_function> signal_keyboard_queue_;
/** Signal queue for callbacks in set_event_touch. */
signal_queue<set_event_touch> signal_touch_queue_;
signal_queue<signal_touch_function> signal_touch_queue_;
/** Signal queue for callbacks in set_event_notification. */
signal_queue<signal_notification_function> signal_notification_queue_;

View file

@ -413,6 +413,10 @@ void sdl_event_handler::handle_event(const SDL_Event& event)
text_input(event.text.text);
break;
case SDL_FINGERMOTION:
// TODO?
break;
#if(defined(_X11) && !defined(__APPLE__)) || defined(_WIN32)
case SDL_SYSWMEVENT:
/* DO NOTHING */
@ -422,6 +426,8 @@ void sdl_event_handler::handle_event(const SDL_Event& event)
// Silently ignored events.
case SDL_KEYUP:
case DOUBLE_CLICK_EVENT:
case SDL_FINGERUP:
case SDL_FINGERDOWN:
break;
default: