public override bool CursorVisible
{
- get { return cursorVisible; }
+ get
+ {
+ return cursorVisible;
+ }
set
{
- if (value == cursorVisible) return;
- if (value && !cursorVisible)
- {
- SetCursorVisible(true);
- }
- else if (!value && cursorVisible)
+ if (value != cursorVisible)
{
- SetCursorVisible(false);
+ SetCursorVisible(value);
+ cursorVisible = value;
}
- cursorVisible = value;
}
}
}
set
{
- if (value == is_cursor_visible) return;
lock (sync)
{
- if (Exists)
+ if (Exists && value != is_cursor_visible)
{
GrabCursor(!value);
is_cursor_visible = value;
public override bool CursorVisible
{
- get { return cursor_visible_count >= 0; }
+ get
+ {
+ return cursor_visible_count >= 0;
+ }
set
{
- if (value && cursor_visible_count < 0)
+ if (value == CursorVisible)
+ {
+ return;
+ }
+ if (value)
{
do
{
UngrabCursor();
}
- else if (!value && cursor_visible_count >= 0)
+ else
{
do
{
public override bool CursorVisible
{
- get { return cursor_visible; }
+ get
+ {
+ return cursor_visible;
+ }
set
{
- if (value && !cursor_visible)
+ if (value == cursor_visible)
{
- using (new XLock(window.Display))
+ return;
+ }
+ using (new XLock(window.Display))
+ {
+ if (value)
{
UngrabMouse();
// Note: if cursorHandle = IntPtr.Zero, this restores the default cursor
// (equivalent to calling XUndefineCursor)
Functions.XDefineCursor(window.Display, window.Handle, cursorHandle);
- cursor_visible = true;
}
- }
- else if (!value && cursor_visible)
- {
- using (new XLock(window.Display))
+ else
{
GrabMouse();
- cursor_visible = false;
}
+ cursor_visible = value;
}
}
}