Ignore:
Timestamp:
Dec 2, 1999, 5:34:43 PM (26 years ago)
Author:
cbratschi
Message:

Show/HideCaret fix, removed TextOut workaround

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/caret.cpp

    r1446 r1944  
    1 /* $Id: caret.cpp,v 1.7 1999-10-25 20:17:16 sandervl Exp $ */
     1/* $Id: caret.cpp,v 1.8 1999-12-02 16:34:43 cbratschi Exp $ */
    22
    33/*
     
    3737static int CaretWidth, CaretHeight;
    3838static int CaretPosX, CaretPosY;
    39 static BOOL CaretIsVisible;
     39static INT CaretIsVisible; //visible if > 0
    4040
    4141#pragma data_seg()
     
    6262       if (rc)
    6363       {
    64            hwndCaret   = hwnd;
    65            hbmCaret    = hBmp;
    66            CaretWidth  = width;
    67            CaretHeight = height;
     64           hwndCaret      = hwnd;
     65           hbmCaret       = hBmp;
     66           CaretWidth     = width;
     67           CaretHeight    = height;
     68           CaretIsVisible = 0;
    6869       }
    6970
     
    8384   CaretWidth     = 0;
    8485   CaretHeight    = 0;
    85    CaretIsVisible = FALSE;
     86   CaretIsVisible = 0;
    8687
    8788   rc = _DestroyCaret();
     
    218219   dprintf(("USER32:  ShowCaret %x", hwnd));
    219220
    220    CaretIsVisible = TRUE;
    221    rc = _ShowCaret (Win32BaseWindow::Win32ToOS2Handle (hwnd));
     221   CaretIsVisible++;
     222   if (CaretIsVisible == 1)
     223     rc = _ShowCaret (Win32BaseWindow::Win32ToOS2Handle (hwnd));
     224   else
     225     rc = TRUE;
    222226
    223227   return (rc);
     
    230234   dprintf(("USER32:  HideCaret"));
    231235
    232    CaretIsVisible = FALSE;
    233    rc = _HideCaret (Win32BaseWindow::Win32ToOS2Handle (hwnd));
     236   CaretIsVisible--;
     237   if (CaretIsVisible == 0)
     238     rc = _HideCaret (Win32BaseWindow::Win32ToOS2Handle (hwnd));
     239   else
     240     rc = TRUE;
    234241
    235242   return (rc);
     
    239246{
    240247   CURSORINFO cursorInfo;
     248   INT x;
    241249
    242250   if ((hwndFocus != 0) && (hwndCaret == hwndFocus) &&
     
    247255      CreateCaret (hwndCaret, hbmCaret, CaretWidth, CaretHeight);
    248256      SetCaretPos (CaretPosX, CaretPosY);
    249       if (CaretIsVisible)
    250          ShowCaret (hwndCaret);
    251    }
    252 }
     257      if (CaretIsVisible > 0)
     258        _ShowCaret(Win32BaseWindow::Win32ToOS2Handle(hwndCaret));
     259   }
     260}
Note: See TracChangeset for help on using the changeset viewer.