diff --git a/gdk/broadway/broadway-output.c b/gdk/broadway/broadway-output.c index 4666acb61f..b2b15f8362 100644 --- a/gdk/broadway/broadway-output.c +++ b/gdk/broadway/broadway-output.c @@ -114,7 +114,7 @@ broadway_output_set_next_serial (BroadwayOutput *output, ************************************************************************/ static void -append_char (BroadwayOutput *output, char c) +append_uint8 (BroadwayOutput *output, guint8 c) { g_string_append_c (output->buf, c); } @@ -173,7 +173,7 @@ patch_uint32 (BroadwayOutput *output, guint32 v, gsize offset) static void write_header(BroadwayOutput *output, char op) { - append_char (output, op); + append_uint8 (output, op); append_uint32 (output, output->serial++); } diff --git a/gdk/broadway/broadway-protocol.h b/gdk/broadway/broadway-protocol.h index 9d1c2c03d4..3f73f13771 100644 --- a/gdk/broadway/broadway-protocol.h +++ b/gdk/broadway/broadway-protocol.h @@ -51,44 +51,41 @@ static const char *broadway_node_type_names[] G_GNUC_UNUSED = { }; typedef enum { - BROADWAY_EVENT_ENTER = 'e', - BROADWAY_EVENT_LEAVE = 'l', - BROADWAY_EVENT_POINTER_MOVE = 'm', - BROADWAY_EVENT_BUTTON_PRESS = 'b', - BROADWAY_EVENT_BUTTON_RELEASE = 'B', - BROADWAY_EVENT_TOUCH = 't', - BROADWAY_EVENT_SCROLL = 's', - BROADWAY_EVENT_KEY_PRESS = 'k', - BROADWAY_EVENT_KEY_RELEASE = 'K', - BROADWAY_EVENT_GRAB_NOTIFY = 'g', - BROADWAY_EVENT_UNGRAB_NOTIFY = 'u', - BROADWAY_EVENT_CONFIGURE_NOTIFY = 'w', - BROADWAY_EVENT_SCREEN_SIZE_CHANGED = 'd', - BROADWAY_EVENT_FOCUS = 'f', - BROADWAY_EVENT_ROUNDTRIP_NOTIFY = 'F', + BROADWAY_EVENT_ENTER = 0, + BROADWAY_EVENT_LEAVE = 1, + BROADWAY_EVENT_POINTER_MOVE = 2, + BROADWAY_EVENT_BUTTON_PRESS = 3, + BROADWAY_EVENT_BUTTON_RELEASE = 4, + BROADWAY_EVENT_TOUCH = 5, + BROADWAY_EVENT_SCROLL = 6, + BROADWAY_EVENT_KEY_PRESS = 7, + BROADWAY_EVENT_KEY_RELEASE = 8, + BROADWAY_EVENT_GRAB_NOTIFY = 9, + BROADWAY_EVENT_UNGRAB_NOTIFY = 10, + BROADWAY_EVENT_CONFIGURE_NOTIFY = 11, + BROADWAY_EVENT_SCREEN_SIZE_CHANGED = 12, + BROADWAY_EVENT_FOCUS = 13, + BROADWAY_EVENT_ROUNDTRIP_NOTIFY = 14, } BroadwayEventType; typedef enum { - BROADWAY_OP_GRAB_POINTER = 'g', - BROADWAY_OP_UNGRAB_POINTER = 'u', - BROADWAY_OP_NEW_SURFACE = 's', - BROADWAY_OP_SHOW_SURFACE = 'S', - BROADWAY_OP_HIDE_SURFACE = 'H', - BROADWAY_OP_RAISE_SURFACE = 'r', - BROADWAY_OP_LOWER_SURFACE = 'R', - BROADWAY_OP_DESTROY_SURFACE = 'd', - BROADWAY_OP_MOVE_RESIZE = 'm', - BROADWAY_OP_SET_TRANSIENT_FOR = 'p', - BROADWAY_OP_PUT_RGB = 'i', - BROADWAY_OP_REQUEST_AUTH = 'l', - BROADWAY_OP_AUTH_OK = 'L', - BROADWAY_OP_DISCONNECTED = 'D', - BROADWAY_OP_SURFACE_UPDATE = 'b', - BROADWAY_OP_SET_SHOW_KEYBOARD = 'k', - BROADWAY_OP_UPLOAD_TEXTURE = 't', - BROADWAY_OP_RELEASE_TEXTURE = 'T', - BROADWAY_OP_SET_NODES = 'n', - BROADWAY_OP_ROUNDTRIP = 'F', + BROADWAY_OP_GRAB_POINTER = 0, + BROADWAY_OP_UNGRAB_POINTER = 1, + BROADWAY_OP_NEW_SURFACE = 2, + BROADWAY_OP_SHOW_SURFACE = 3, + BROADWAY_OP_HIDE_SURFACE = 4, + BROADWAY_OP_RAISE_SURFACE = 5, + BROADWAY_OP_LOWER_SURFACE = 6, + BROADWAY_OP_DESTROY_SURFACE = 7, + BROADWAY_OP_MOVE_RESIZE = 8, + BROADWAY_OP_SET_TRANSIENT_FOR = 9, + BROADWAY_OP_DISCONNECTED = 10, + BROADWAY_OP_SURFACE_UPDATE = 11, + BROADWAY_OP_SET_SHOW_KEYBOARD = 12, + BROADWAY_OP_UPLOAD_TEXTURE = 13, + BROADWAY_OP_RELEASE_TEXTURE = 14, + BROADWAY_OP_SET_NODES = 15, + BROADWAY_OP_ROUNDTRIP = 16, } BroadwayOpType; typedef struct { diff --git a/gdk/broadway/broadway-server.c b/gdk/broadway/broadway-server.c index d52decbeab..24fd7bf51c 100644 --- a/gdk/broadway/broadway-server.c +++ b/gdk/broadway/broadway-server.c @@ -622,6 +622,7 @@ parse_input_message (BroadwayInput *input, const unsigned char *message) msg.base.type = ntohl (*p++); msg.base.serial = ntohl (*p++); + time_ = ntohl (*p++); if (time_ == 0) { diff --git a/gdk/broadway/broadway.js b/gdk/broadway/broadway.js index 4ab39c9627..0952399673 100644 --- a/gdk/broadway/broadway.js +++ b/gdk/broadway/broadway.js @@ -21,42 +21,39 @@ const BROADWAY_NODE_OP_MOVE_AFTER_CHILD = 2; const BROADWAY_NODE_OP_PATCH_TEXTURE = 3; const BROADWAY_NODE_OP_PATCH_TRANSFORM = 4; -const BROADWAY_OP_GRAB_POINTER = 'g'; -const BROADWAY_OP_UNGRAB_POINTER = 'u'; -const BROADWAY_OP_NEW_SURFACE = 's'; -const BROADWAY_OP_SHOW_SURFACE = 'S'; -const BROADWAY_OP_HIDE_SURFACE = 'H'; -const BROADWAY_OP_RAISE_SURFACE = 'r'; -const BROADWAY_OP_LOWER_SURFACE = 'R'; -const BROADWAY_OP_DESTROY_SURFACE = 'd'; -const BROADWAY_OP_MOVE_RESIZE = 'm'; -const BROADWAY_OP_SET_TRANSIENT_FOR = 'p'; -const BROADWAY_OP_PUT_RGB = 'i'; -const BROADWAY_OP_REQUEST_AUTH = 'l'; -const BROADWAY_OP_AUTH_OK = 'L'; -const BROADWAY_OP_DISCONNECTED = 'D'; -const BROADWAY_OP_SURFACE_UPDATE = 'b'; -const BROADWAY_OP_SET_SHOW_KEYBOARD = 'k'; -const BROADWAY_OP_UPLOAD_TEXTURE = 't'; -const BROADWAY_OP_RELEASE_TEXTURE = 'T'; -const BROADWAY_OP_SET_NODES = 'n'; -const BROADWAY_OP_ROUNDTRIP = 'F'; +const BROADWAY_OP_GRAB_POINTER = 0; +const BROADWAY_OP_UNGRAB_POINTER = 1; +const BROADWAY_OP_NEW_SURFACE = 2; +const BROADWAY_OP_SHOW_SURFACE = 3; +const BROADWAY_OP_HIDE_SURFACE = 4; +const BROADWAY_OP_RAISE_SURFACE = 5; +const BROADWAY_OP_LOWER_SURFACE = 6; +const BROADWAY_OP_DESTROY_SURFACE = 7; +const BROADWAY_OP_MOVE_RESIZE = 8; +const BROADWAY_OP_SET_TRANSIENT_FOR = 9; +const BROADWAY_OP_DISCONNECTED = 10; +const BROADWAY_OP_SURFACE_UPDATE = 11; +const BROADWAY_OP_SET_SHOW_KEYBOARD = 12; +const BROADWAY_OP_UPLOAD_TEXTURE = 13; +const BROADWAY_OP_RELEASE_TEXTURE = 14; +const BROADWAY_OP_SET_NODES = 15; +const BROADWAY_OP_ROUNDTRIP = 16; -const BROADWAY_EVENT_ENTER = 'e'; -const BROADWAY_EVENT_LEAVE = 'l'; -const BROADWAY_EVENT_POINTER_MOVE = 'm'; -const BROADWAY_EVENT_BUTTON_PRESS = 'b'; -const BROADWAY_EVENT_BUTTON_RELEASE = 'B'; -const BROADWAY_EVENT_TOUCH = 't'; -const BROADWAY_EVENT_SCROLL = 's'; -const BROADWAY_EVENT_KEY_PRESS = 'k'; -const BROADWAY_EVENT_KEY_RELEASE = 'K'; -const BROADWAY_EVENT_GRAB_NOTIFY = 'g'; -const BROADWAY_EVENT_UNGRAB_NOTIFY = 'u'; -const BROADWAY_EVENT_CONFIGURE_NOTIFY = 'w'; -const BROADWAY_EVENT_SCREEN_SIZE_CHANGED = 'd'; -const BROADWAY_EVENT_FOCUS = 'f'; -const BROADWAY_EVENT_ROUNDTRIP_NOTIFY = 'F'; +const BROADWAY_EVENT_ENTER = 0; +const BROADWAY_EVENT_LEAVE = 1; +const BROADWAY_EVENT_POINTER_MOVE = 2; +const BROADWAY_EVENT_BUTTON_PRESS = 3; +const BROADWAY_EVENT_BUTTON_RELEASE = 4; +const BROADWAY_EVENT_TOUCH = 5; +const BROADWAY_EVENT_SCROLL = 6; +const BROADWAY_EVENT_KEY_PRESS = 7; +const BROADWAY_EVENT_KEY_RELEASE = 8; +const BROADWAY_EVENT_GRAB_NOTIFY = 9; +const BROADWAY_EVENT_UNGRAB_NOTIFY = 10; +const BROADWAY_EVENT_CONFIGURE_NOTIFY = 11; +const BROADWAY_EVENT_SCREEN_SIZE_CHANGED = 12; +const BROADWAY_EVENT_FOCUS = 13; +const BROADWAY_EVENT_ROUNDTRIP_NOTIFY = 14; const DISPLAY_OP_REPLACE_CHILD = 0; const DISPLAY_OP_APPEND_CHILD = 1; @@ -960,7 +957,7 @@ function handleCommands(cmd, display_commands, new_textures, modified_trees) while (res && cmd.pos < cmd.length) { var id, x, y, w, h, q, surface; var saved_pos = cmd.pos; - var command = cmd.get_char(); + var command = cmd.get_uint8(); lastSerial = cmd.get_32(); switch (command) { case BROADWAY_OP_DISCONNECTED: @@ -1196,8 +1193,8 @@ function BinCommands(message) { this.pos = 0; } -BinCommands.prototype.get_char = function() { - return String.fromCharCode(this.dataview.getUint8(this.pos++)); +BinCommands.prototype.get_uint8 = function() { + return this.dataview.getUint8(this.pos++); }; BinCommands.prototype.get_bool = function() { return this.dataview.getUint8(this.pos++) != 0; @@ -1264,7 +1261,7 @@ function sendInput(cmd, args) if (inputSocket == null) return; - var fullArgs = [cmd.charCodeAt(0), lastSerial, lastTimeStamp].concat(args); + var fullArgs = [cmd, lastSerial, lastTimeStamp].concat(args); var buffer = new ArrayBuffer(fullArgs.length * 4); var view = new DataView(buffer); fullArgs.forEach(function(arg, i) { diff --git a/gdk/broadway/gdkeventsource.c b/gdk/broadway/gdkeventsource.c index b9f0cdfe27..f0672bd8c4 100644 --- a/gdk/broadway/gdkeventsource.c +++ b/gdk/broadway/gdkeventsource.c @@ -160,14 +160,14 @@ _gdk_broadway_events_got_input (GdkDisplay *display, break; case BROADWAY_EVENT_BUTTON_PRESS: case BROADWAY_EVENT_BUTTON_RELEASE: - if (message->base.type != 'b' && + if (message->base.type != BROADWAY_EVENT_BUTTON_PRESS && _gdk_broadway_moveresize_handle_event (display, message)) break; surface = g_hash_table_lookup (display_broadway->id_ht, GINT_TO_POINTER (message->pointer.event_surface_id)); if (surface) { - event = gdk_event_new (message->base.type == 'b' ? GDK_BUTTON_PRESS : GDK_BUTTON_RELEASE); + event = gdk_event_new (message->base.type == BROADWAY_EVENT_BUTTON_PRESS ? GDK_BUTTON_PRESS : GDK_BUTTON_RELEASE); event->any.surface = g_object_ref (surface); event->button.time = message->base.time; event->button.x = message->pointer.win_x; @@ -262,7 +262,7 @@ _gdk_broadway_events_got_input (GdkDisplay *display, GINT_TO_POINTER (message->key.surface_id)); if (surface) { - event = gdk_event_new (message->base.type == 'k' ? GDK_KEY_PRESS : GDK_KEY_RELEASE); + event = gdk_event_new (message->base.type == BROADWAY_EVENT_KEY_PRESS ? GDK_KEY_PRESS : GDK_KEY_RELEASE); event->any.surface = g_object_ref (surface); event->key.time = message->base.time; event->key.keyval = message->key.key;