Пример #1
0
static gboolean button_release_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data)
{
    if (event->button == 1) {
        injectTouchEvent(0, event->x, event->y);
    }

    return TRUE;
}
Пример #2
0
static gboolean button_press_event(GtkWidget *widget, GdkEventButton *event)
{
    if (event->button == 1) {
        injectTouchEvent(1, event->x, event->y);
    }

    return TRUE;
}
Пример #3
0
static void ptrevent(int buttonMask, int x, int y, rfbClientPtr cl)
{
    /* Indicates either pointer movement or a pointer button press or release. The pointer is
    now at (x-position, y-position), and the current state of buttons 1 to 8 are represented
    by bits 0 to 7 of button-mask respectively, 0 meaning up, 1 meaning down (pressed).
    On a conventional mouse, buttons 1, 2 and 3 correspond to the left, middle and right
    buttons on the mouse. On a wheel mouse, each step of the wheel upwards is represented
    by a press and release of button 4, and each step downwards is represented by
    a press and release of button 5.
    From: http://www.vislab.usyd.edu.au/blogs/index.php/2009/05/22/an-headerless-indexed-protocol-for-input-1?blog=61 */

    //printf("Got ptrevent: %04x (x=%d, y=%d)\n", buttonMask, x, y);
    if(buttonMask & 1) {
        // Simulate left mouse event as touch event
        injectTouchEvent(1, x, y);
        injectTouchEvent(0, x, y);
    }
}
Пример #4
0
static gboolean motion_notify_event(GtkWidget *widget, GdkEventMotion *event, gpointer user_data)
{
    int x, y;
    GdkModifierType state;

    if (event->is_hint) {
        gdk_window_get_pointer(event->window, &x, &y, &state);
    } else {
        x = event->x;
        y = event->y;
        state = event->state;
    }

    if (state & GDK_BUTTON1_MASK) {
        injectTouchEvent(1, x, y);
    } else {
        injectTouchEvent(0, x, y);
    }

    return TRUE;
}