diff --git a/src/MacVim/MMBackend.m b/src/MacVim/MMBackend.m index 1933f75555..855992408f 100644 --- a/src/MacVim/MMBackend.m +++ b/src/MacVim/MMBackend.m @@ -2013,6 +2013,14 @@ - (void)handleInputEvent:(int)msgid data:(NSData *)data // based. int idx = *((int*)bytes); + // Also, this index doesn't take itself into account, so if the move is + // to a later tab, need to add one to it since Vim's tabpage_move *does* + // count the current tab. + int curtab_index = tabpage_index(curtab); + if (idx >= curtab_index) { + idx += 1; + } + tabpage_move(idx); } else if (SetTextDimensionsMsgID == msgid || LiveResizeMsgID == msgid || SetTextDimensionsNoResizeWindowMsgID == msgid diff --git a/src/MacVim/PSMTabBarControl/source/PSMTabBarCell.m b/src/MacVim/PSMTabBarControl/source/PSMTabBarCell.m index 65b3b25052..6f1a06e462 100644 --- a/src/MacVim/PSMTabBarControl/source/PSMTabBarCell.m +++ b/src/MacVim/PSMTabBarControl/source/PSMTabBarCell.m @@ -338,7 +338,10 @@ - (NSImage*)dragImageForRect:(NSRect)cellFrame if(([self state] == NSOnState) && ([[_controlView styleName] isEqualToString:@"Metal"])) cellFrame.size.width += 1.0; [_controlView lockFocus]; - NSBitmapImageRep *rep = [[[NSBitmapImageRep alloc] initWithFocusedViewRect:cellFrame] autorelease]; + + NSBitmapImageRep *rep = [[self controlView] bitmapImageRepForCachingDisplayInRect:cellFrame]; + [[self controlView] cacheDisplayInRect:cellFrame toBitmapImageRep:rep]; + [_controlView unlockFocus]; NSImage *image = [[[NSImage alloc] initWithSize:[rep size]] autorelease]; [image addRepresentation:rep];