Changeset 398


Ignore:
Timestamp:
Apr 16, 2010, 6:57:38 PM (12 years ago)
Author:
dmik
Message:

Fixed: The mouse pointer could be auto-hidden in fullscreen while the file open dialog is shown.

Location:
trunk/Lucide/gui
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Lucide/gui/docViewer.cpp

    r396 r398  
    6565#define VERT_SPACE      2
    6666#define NO_MOUSE_TIMER  1
     67#define NO_MOUSE_TIME   3000 // ms
    6768#define SB_PAGEDRAG     100
    6869
     
    155156    // fullscreen
    156157    fullscreen     = false;
    157     secondsNoMouse = 0;
    158158    mouseHidden    = false;
     159    inFocus        = false;
    159160    xLastPos       = 0;
    160161    yLastPos       = 0;
     
    214215
    215216    drawThreadId = _beginthread( drawthread, NULL, 262144, this );
    216     WinStartTimer( hab, hWndDoc, NO_MOUSE_TIMER, 1000 );
    217217}
    218218
     
    570570    WinSendMsg( hWndDocFrame, WM_UPDATEFRAME, MPVOID, MPVOID );
    571571
     572    unhideMouse();
     573}
     574
     575void DocumentViewer::unhideMouse()
     576{
    572577    if ( mouseHidden ) {
    573578        WinShowPointer( HWND_DESKTOP, TRUE );
    574579        mouseHidden = false;
     580    }
     581
     582    if ( fullscreen && inFocus ) {
     583        WinStartTimer( hab, hWndDoc, NO_MOUSE_TIMER, NO_MOUSE_TIME );
    575584    }
    576585}
     
    18851894    if ( ( xpos != xLastPos ) || ( ypos != yLastPos ) ) // only if mouse really moved
    18861895    {
    1887         secondsNoMouse = 0;
    1888         if ( fullscreen && mouseHidden )
    1889         {
    1890             WinShowPointer( HWND_DESKTOP, TRUE );
    1891             mouseHidden = false;
    1892         }
     1896        unhideMouse();
    18931897    }
    18941898    xLastPos = xpos;
     
    24812485    if ( idTimer == NO_MOUSE_TIMER )
    24822486    {
    2483         secondsNoMouse++;
    2484 
    2485         if ( fullscreen && !mouseHidden && ( secondsNoMouse > 3 ) )
     2487        if ( fullscreen && !mouseHidden && inFocus )
    24862488        {
    24872489            WinShowPointer( HWND_DESKTOP, FALSE );
    24882490            mouseHidden = true;
     2491            WinStopTimer( hab, hWndDoc, NO_MOUSE_TIMER );
    24892492        }
    24902493    }
     
    25172520        }
    25182521
     2522        case WM_SETFOCUS:
     2523            _this->inFocus = SHORT1FROMMP( mp2 ) == TRUE;
     2524            _this->unhideMouse();
     2525            break;
     2526
    25192527        case DM_DRAGOVER:
    25202528            return _this->wmDragOver( (PDRAGINFO)mp1 );
  • trunk/Lucide/gui/docViewer.h

    r390 r398  
    9696        long getRotation() { return rotation; }
    9797        void selectAll();
     98        void unhideMouse();
    9899        void copyToClipbrd();
    99100        void searchDocument( const char *_searchString, bool _caseSensitive,
     
    205206        // fullscreen
    206207        bool fullscreen;
    207         long secondsNoMouse;
    208208        bool mouseHidden;
     209        bool inFocus;
    209210        SHORT xLastPos;
    210211        SHORT yLastPos;
Note: See TracChangeset for help on using the changeset viewer.