X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=src%2Fgui-msw.c;h=415d9e2ce06f457267d7669fcc7b0c251ef6eea5;hp=029d616f583b9f7114a5abf072e37f7294cae87f;hb=2fd9701a4f902054649dde9143a3f77809afee8f;hpb=3e447015251ce6dcde843cbed10d9033d5538622 diff --git a/src/gui-msw.c b/src/gui-msw.c index 029d616..415d9e2 100644 --- a/src/gui-msw.c +++ b/src/gui-msw.c @@ -36,7 +36,7 @@ Boston, MA 02111-1307, USA. */ * command if we return nil */ Lisp_Object -mswindows_handle_gui_wm_command (struct frame* f, HWND ctrl, DWORD id) +mswindows_handle_gui_wm_command (struct frame* f, HWND ctrl, LPARAM id) { /* Try to map the command id through the proper hash table */ Lisp_Object data, fn, arg, frame; @@ -50,11 +50,14 @@ mswindows_handle_gui_wm_command (struct frame* f, HWND ctrl, DWORD id) if (NILP (data) || UNBOUNDP (data)) return Qnil; - MARK_SUBWINDOWS_STATE_CHANGED; /* Ok, this is our one. Enqueue it. */ get_gui_callback (data, &fn, &arg); XSETFRAME (frame, f); mswindows_enqueue_misc_user_event (frame, fn, arg); + /* The result of this evaluation could cause other instances to change so + enqueue an update callback to check this. */ + mswindows_enqueue_misc_user_event (frame, Qeval, + list2 (Qupdate_widget_instances, frame)); return Qt; } @@ -92,9 +95,6 @@ otherwise it is an integer representing a ShowWindow flag: CHECK_STRING (document); - /* Just get the filename if we were given it. */ - document = Ffile_name_nondirectory (document); - if (NILP (current_dir)) current_dir = current_buffer->directory; @@ -118,7 +118,11 @@ otherwise it is an integer representing a ShowWindow flag: TO_EXTERNAL_FORMAT (LISP_STRING, document, C_STRING_ALLOCA, f, Qfile_name); +#ifdef __CYGWIN32__ + CYGWIN_WIN32_PATH (f, doc); +#else doc = f; +#endif } UNGCPRO; @@ -136,9 +140,9 @@ otherwise it is an integer representing a ShowWindow flag: if (ret > 32) return Qt; - if (ret == ERROR_FILE_NOT_FOUND || ret == SE_ERR_FNF) + if (ret == ERROR_FILE_NOT_FOUND) signal_simple_error ("file not found", document); - else if (ret == ERROR_PATH_NOT_FOUND || ret == SE_ERR_PNF) + else if (ret == ERROR_PATH_NOT_FOUND) signal_simple_error ("path not found", current_dir); else if (ret == ERROR_BAD_FORMAT) signal_simple_error ("bad executable format", document);