commit 7d9c0f0f0e041051d3105404ada074cf983cd6ad from: Russ Cox date: Tue Jan 05 05:25:07 2010 UTC devdraw: release multitouch mouse when app is collapsed (minimized) R=rsc CC=plalonde, r http://codereview.appspot.com/181129 commit - 100ec44e5170878bbd7fd28f7f68d884d0618173 commit + 7d9c0f0f0e041051d3105404ada074cf983cd6ad blob - 20bdb4ca1af9d939f770c7907989218e976568cf blob + 0a791c30835935956064f440e50939ca93ab2a64 --- src/cmd/devdraw/osx-screen-carbon.m +++ src/cmd/devdraw/osx-screen-carbon.m @@ -60,6 +60,7 @@ struct { int infullscreen; int kalting; // last keystroke was Kalt int touched; // last mouse event was touchCallback + int collapsed; // parked in dock NSMutableArray* devicelist; } osx; @@ -383,6 +384,8 @@ _screeninit(void) { kEventClassCommand, kEventCommandProcess }, { kEventClassWindow, kEventWindowActivated }, { kEventClassWindow, kEventWindowDeactivated }, + { kEventClassWindow, kEventWindowCollapsed }, + { kEventClassWindow, kEventWindowExpanded }, }; const EventTypeSpec events[] = { { kEventClassApplication, kEventAppShown }, @@ -517,13 +520,24 @@ eventhandler(EventHandlerCallRef next, EventRef event, break; case kEventWindowActivated: - activated(1); + if(!osx.collapsed) + activated(1); return eventNotHandledErr; case kEventWindowDeactivated: + activated(0); + return eventNotHandledErr; + + case kEventWindowCollapsed: + osx.collapsed = 1; activated(0); return eventNotHandledErr; + case kEventWindowExpanded: + osx.collapsed = 0; + activated(1); + return eventNotHandledErr; + default: return eventNotHandledErr; }