forked from mirrors/gecko-dev
		
	 53663750f7
			
		
	
	
		53663750f7
		
	
	
	
	
		
			
			MouseTrailer, using a 200ms timer, was used to track whether a pointer was still present over a window. Windows has, since Windows 2000, offered to do this for us via an API called TrackMouseEvent. (It'll also give us hover timings and non-client area versions if we want) I'm all for having Windows do the work for us, and it'll save us from waking up the main thread five times a second. --HG-- extra : rebase_source : 9e56fd40929257d847c5cddb8a998c3ca2381655
		
			
				
	
	
		
			81 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 | |
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| #include "nsToolkit.h"
 | |
| #include "nsAppShell.h"
 | |
| #include "nsWindow.h"
 | |
| #include "nsWidgetsCID.h"
 | |
| #include "prmon.h"
 | |
| #include "prtime.h"
 | |
| #include "nsIServiceManager.h"
 | |
| #include "nsComponentManagerUtils.h"
 | |
| #include <objbase.h>
 | |
| #include "WinUtils.h"
 | |
| 
 | |
| #include "nsUXThemeData.h"
 | |
| 
 | |
| // unknwn.h is needed to build with WIN32_LEAN_AND_MEAN
 | |
| #include <unknwn.h>
 | |
| 
 | |
| using namespace mozilla::widget;
 | |
| 
 | |
| nsToolkit* nsToolkit::gToolkit = nullptr;
 | |
| HINSTANCE nsToolkit::mDllInstance = 0;
 | |
| 
 | |
| //-------------------------------------------------------------------------
 | |
| //
 | |
| // constructor
 | |
| //
 | |
| //-------------------------------------------------------------------------
 | |
| nsToolkit::nsToolkit()  
 | |
| {
 | |
|     MOZ_COUNT_CTOR(nsToolkit);
 | |
| 
 | |
| #if defined(MOZ_STATIC_COMPONENT_LIBS)
 | |
|     nsToolkit::Startup(GetModuleHandle(nullptr));
 | |
| #endif
 | |
| }
 | |
| 
 | |
| 
 | |
| //-------------------------------------------------------------------------
 | |
| //
 | |
| // destructor
 | |
| //
 | |
| //-------------------------------------------------------------------------
 | |
| nsToolkit::~nsToolkit()
 | |
| {
 | |
|     MOZ_COUNT_DTOR(nsToolkit);
 | |
| }
 | |
| 
 | |
| void
 | |
| nsToolkit::Startup(HMODULE hModule)
 | |
| {
 | |
|     nsToolkit::mDllInstance = hModule;
 | |
|     WinUtils::Initialize();
 | |
|     nsUXThemeData::Initialize();
 | |
| }
 | |
| 
 | |
| void
 | |
| nsToolkit::Shutdown()
 | |
| {
 | |
|     delete gToolkit;
 | |
|     gToolkit = nullptr;
 | |
| }
 | |
| 
 | |
| //-------------------------------------------------------------------------
 | |
| //
 | |
| // Return the nsToolkit for the current thread.  If a toolkit does not
 | |
| // yet exist, then one will be created...
 | |
| //
 | |
| //-------------------------------------------------------------------------
 | |
| // static
 | |
| nsToolkit* nsToolkit::GetToolkit()
 | |
| {
 | |
|   if (!gToolkit) {
 | |
|     gToolkit = new nsToolkit();
 | |
|   }
 | |
| 
 | |
|   return gToolkit;
 | |
| }
 |