[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/w32fns.c
From: |
Jason Rumney |
Subject: |
[Emacs-diffs] Changes to emacs/src/w32fns.c |
Date: |
Sun, 20 Jan 2002 18:13:29 -0500 |
Index: emacs/src/w32fns.c
diff -c emacs/src/w32fns.c:1.149 emacs/src/w32fns.c:1.150
*** emacs/src/w32fns.c:1.149 Sun Jan 20 09:57:54 2002
--- emacs/src/w32fns.c Sun Jan 20 18:13:29 2002
***************
*** 315,324 ****
extern Lisp_Object Vw32_recognize_altgr;
extern HWND w32_system_caret_hwnd;
! extern int w32_system_caret_width;
extern int w32_system_caret_height;
extern int w32_system_caret_x;
extern int w32_system_caret_y;
/* Error if we are not connected to MS-Windows. */
--- 315,327 ----
extern Lisp_Object Vw32_recognize_altgr;
extern HWND w32_system_caret_hwnd;
!
extern int w32_system_caret_height;
extern int w32_system_caret_x;
extern int w32_system_caret_y;
+ extern int w32_use_visible_system_caret;
+
+ HWND w32_visible_system_caret_hwnd;
/* Error if we are not connected to MS-Windows. */
***************
*** 4878,4883 ****
--- 4881,4887 ----
{
DestroyCaret ();
w32_system_caret_hwnd = NULL;
+ w32_visible_system_caret_hwnd = NULL;
}
case WM_MOVE:
case WM_SIZE:
***************
*** 5023,5041 ****
DragAcceptFiles ((HWND) wParam, FALSE);
return DestroyWindow ((HWND) wParam);
case WM_EMACS_DESTROY_CARET:
w32_system_caret_hwnd = NULL;
return DestroyCaret ();
case WM_EMACS_TRACK_CARET:
/* If there is currently no system caret, create one. */
if (w32_system_caret_hwnd == NULL)
{
w32_system_caret_hwnd = hwnd;
! CreateCaret (hwnd, NULL, w32_system_caret_width,
w32_system_caret_height);
}
! return SetCaretPos (w32_system_caret_x, w32_system_caret_y);
case WM_EMACS_TRACKPOPUPMENU:
{
--- 5027,5072 ----
DragAcceptFiles ((HWND) wParam, FALSE);
return DestroyWindow ((HWND) wParam);
+ case WM_EMACS_HIDE_CARET:
+ return HideCaret (hwnd);
+
+ case WM_EMACS_SHOW_CARET:
+ return ShowCaret (hwnd);
+
case WM_EMACS_DESTROY_CARET:
w32_system_caret_hwnd = NULL;
+ w32_visible_system_caret_hwnd = NULL;
return DestroyCaret ();
case WM_EMACS_TRACK_CARET:
/* If there is currently no system caret, create one. */
if (w32_system_caret_hwnd == NULL)
{
+ /* Use the default caret width, and avoid changing it
+ unneccesarily, as it confuses screen reader software. */
w32_system_caret_hwnd = hwnd;
! CreateCaret (hwnd, NULL, 0,
w32_system_caret_height);
}
!
! if (!SetCaretPos (w32_system_caret_x, w32_system_caret_y))
! return 0;
! /* Ensure visible caret gets turned on when requested. */
! else if (w32_use_visible_system_caret
! && w32_visible_system_caret_hwnd != hwnd)
! {
! w32_visible_system_caret_hwnd = hwnd;
! return ShowCaret (hwnd);
! }
! /* Ensure visible caret gets turned off when requested. */
! else if (!w32_use_visible_system_caret
! && w32_visible_system_caret_hwnd)
! {
! w32_visible_system_caret_hwnd = NULL;
! return HideCaret (hwnd);
! }
! else
! return 1;
case WM_EMACS_TRACKPOPUPMENU:
{
- [Emacs-diffs] Changes to emacs/src/w32fns.c, Jason Rumney, 2002/01/04
- [Emacs-diffs] Changes to emacs/src/w32fns.c, Jason Rumney, 2002/01/13
- [Emacs-diffs] Changes to emacs/src/w32fns.c, Jason Rumney, 2002/01/19
- [Emacs-diffs] Changes to emacs/src/w32fns.c, Jason Rumney, 2002/01/19
- [Emacs-diffs] Changes to emacs/src/w32fns.c, Jason Rumney, 2002/01/20
- [Emacs-diffs] Changes to emacs/src/w32fns.c, Jason Rumney, 2002/01/20
- [Emacs-diffs] Changes to emacs/src/w32fns.c,
Jason Rumney <=
- [Emacs-diffs] Changes to emacs/src/w32fns.c, Jason Rumney, 2002/01/23
- [Emacs-diffs] Changes to emacs/src/w32fns.c, Jason Rumney, 2002/01/24
- [Emacs-diffs] Changes to emacs/src/w32fns.c, Jason Rumney, 2002/01/24