From 798c96e2afafa0dfd41b455a90da12046fee0ac5 Mon Sep 17 00:00:00 2001 From: Bjorn Winckler Date: Sun, 9 Jun 2013 15:34:36 +0200 Subject: [PATCH] Respond to backing properties changes This fixes a bug which caused the window to be white after moving it between a Retina and normal display. --- src/MacVim/MMBackend.m | 2 ++ src/MacVim/MMWindowController.m | 5 +++++ src/MacVim/MacVim.h | 1 + src/MacVim/MacVim.m | 1 + 4 files changed, 9 insertions(+) diff --git a/src/MacVim/MMBackend.m b/src/MacVim/MMBackend.m index 4b52cda947..05b8f7a109 100644 --- a/src/MacVim/MMBackend.m +++ b/src/MacVim/MMBackend.m @@ -2092,6 +2092,8 @@ static void netbeansReadCallback(CFSocketRef s, [self setImState:YES]; } else if (DeactivatedImMsgID == msgid) { [self setImState:NO]; + } else if (BackingPropertiesChangedMsgID == msgid) { + [self redrawScreen]; } else { ASLogWarn(@"Unknown message received (msgid=%d)", msgid); } diff --git a/src/MacVim/MMWindowController.m b/src/MacVim/MMWindowController.m index e3400a47e4..b6c6786bf1 100644 --- a/src/MacVim/MMWindowController.m +++ b/src/MacVim/MMWindowController.m @@ -1002,6 +1002,11 @@ [vimView setFrameSize:[self contentSize]]; } +- (void)windowDidChangeBackingProperties:(NSNotification *)notification +{ + [vimController sendMessage:BackingPropertiesChangedMsgID data:nil]; +} + // This is not an NSWindow delegate method, our custom MMWindow class calls it // instead of the usual windowWillUseStandardFrame:defaultFrame:. - (IBAction)zoom:(id)sender diff --git a/src/MacVim/MacVim.h b/src/MacVim/MacVim.h index b5d74b017c..691c9b4847 100644 --- a/src/MacVim/MacVim.h +++ b/src/MacVim/MacVim.h @@ -192,6 +192,7 @@ enum { SetTooltipDelayMsgID, GestureMsgID, AddToMRUMsgID, + BackingPropertiesChangedMsgID, LastMsgID // NOTE: MUST BE LAST MESSAGE IN ENUM! }; diff --git a/src/MacVim/MacVim.m b/src/MacVim/MacVim.m index 14519d987e..f210c72ea6 100644 --- a/src/MacVim/MacVim.m +++ b/src/MacVim/MacVim.m @@ -99,6 +99,7 @@ char *MessageStrings[] = "SetTooltipDelayMsgID", "GestureMsgID", "AddToMRUMsgID", + "BackingPropertiesChangedMsgID", "END OF MESSAGE IDs" // NOTE: Must be last! };