Chromium Code Reviews| Index: native_client_sdk/src/libraries/ppapi_simple/ps_instance.cc |
| diff --git a/native_client_sdk/src/libraries/ppapi_simple/ps_instance.cc b/native_client_sdk/src/libraries/ppapi_simple/ps_instance.cc |
| index 3f59e08b48ac2a12b0b96e8e8bad81c6f0385856..d2d824b004e0d0b0bb92b0ff145f6d59db7ddae1 100644 |
| --- a/native_client_sdk/src/libraries/ppapi_simple/ps_instance.cc |
| +++ b/native_client_sdk/src/libraries/ppapi_simple/ps_instance.cc |
| @@ -238,6 +238,11 @@ bool PSInstance::ProcessProperties() { |
| if (tty_resize) |
| RegisterMessageHandler(tty_resize, MessageHandlerResizeStatic, this); |
| + const char* tty_rows = getenv("PS_TTY_ROWS"); |
| + const char* tty_cols = getenv("PS_TTY_COLS"); |
| + if (tty_rows && tty_cols) |
| + HandleResize(atoi(tty_cols), atoi(tty_rows)); |
|
binji
2013/11/09 00:55:08
better error messaging here? What if only one is s
Sam Clegg
2013/11/09 01:12:58
Done.
|
| + |
| tioc_nacl_output handler; |
| handler.handler = TtyOutputHandlerStatic; |
| handler.user_data = this; |
| @@ -372,16 +377,22 @@ void PSInstance::MessageHandlerInput(const pp::Var& message) { |
| } |
| } |
| +void PSInstance::HandleResize(int width, int height){ |
| + struct winsize size; |
| + memset(&size, 0, sizeof(size)); |
| + size.ws_col = width; |
| + size.ws_row = height; |
| + ioctl(tty_fd_, TIOCSWINSZ, reinterpret_cast<char*>(&size)); |
| +} |
| + |
| void PSInstance::MessageHandlerResize(const pp::Var& message) { |
| assert(message.is_array()); |
| pp::VarArray array(message); |
| assert(array.GetLength() == 2); |
| - struct winsize size; |
| - memset(&size, 0, sizeof(size)); |
| - size.ws_col = array.Get(0).AsInt(); |
| - size.ws_row = array.Get(1).AsInt(); |
| - ioctl(tty_fd_, TIOCSWINSZ, reinterpret_cast<char*>(&size)); |
| + int width = array.Get(0).AsInt(); |
| + int height = array.Get(1).AsInt(); |
| + HandleResize(width, height); |
| } |
| ssize_t PSInstance::TtyOutputHandlerStatic(const char* buf, |