Commit Diff


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;
 		}