Ignore:
Timestamp:
Dec 8, 2009, 3:57:08 PM (12 years ago)
Author:
Jean-Yves Lamoureux
Message:
  • Improved X10 mouse emulation, mc now accepts its click. Added MOUSER command to client/server as 'Mouse Release' command.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • neercs/trunk/src/client.c

    r4098 r4110  
    4949    screen_list->cv = caca_create_canvas(0, 0);
    5050    screen_list->dp = caca_create_display(screen_list->cv);
     51    screen_list->mouse_button = 0;
    5152
    5253    if (!screen_list->dp)
     
    9899        char buf[52];
    99100        int bytes;
     101        screen_list->mouse_button = caca_get_event_mouse_button(&ev);
    100102        bytes = snprintf(buf, sizeof(buf) - 1, "MOUSEP %10d %10d %10d",
    101103                         caca_get_mouse_x(screen_list->dp),
    102104                         caca_get_mouse_y(screen_list->dp),
    103                          caca_get_event_mouse_button(&ev));
     105                         screen_list->mouse_button);
    104106        buf[bytes] = '\0';
    105107        debug("Sending '%s', %d bytes\n", buf, strlen(buf));
     
    107109                     strlen(buf) + 1) <= 0;
    108110    }
     111    else if (t & CACA_EVENT_MOUSE_RELEASE)
     112    {
     113        char buf[52];
     114        int bytes;
     115        bytes = snprintf(buf, sizeof(buf) - 1, "MOUSER %10d %10d %10d",
     116                         caca_get_mouse_x(screen_list->dp),
     117                         caca_get_mouse_y(screen_list->dp),
     118                         screen_list->mouse_button);
     119        buf[bytes] = '\0';
     120        screen_list->mouse_button = 0;
     121        debug("Sending '%s', %d bytes\n", buf, strlen(buf));
     122        return write(screen_list->comm.socket[SOCK_SERVER], buf,
     123                     strlen(buf) + 1) <= 0;
     124    }
    109125    else if (t & CACA_EVENT_MOUSE_MOTION)
    110126    {
    111127        int x = caca_get_mouse_x(screen_list->dp);
    112128        int y = caca_get_mouse_y(screen_list->dp);
     129        int b = screen_list->mouse_button;
     130        debug("Mouse motion, button %d\n", b);
    113131        if (x != screen_list->old_x || y != screen_list->old_y)
    114132        {
    115133            screen_list->old_x = caca_get_mouse_x(screen_list->dp);
    116134            screen_list->old_y = caca_get_mouse_y(screen_list->dp);
    117 
     135           
    118136            char buf[52];
    119137            int bytes;
    120             bytes = snprintf(buf, sizeof(buf) - 1, "MOUSEM %10d %10d",
     138            bytes = snprintf(buf, sizeof(buf) - 1, "MOUSEM %10d %10d %10d",
    121139                             caca_get_mouse_x(screen_list->dp),
    122                              caca_get_mouse_y(screen_list->dp));
     140                             caca_get_mouse_y(screen_list->dp),
     141                             b>=0?b:0);
    123142            buf[bytes] = '\0';
    124143            debug("Sending '%s', %d bytes\n", buf, strlen(buf));
Note: See TracChangeset for help on using the changeset viewer.