Revision: 7441
http://skim-app.svn.sourceforge.net/skim-app/?rev=7441&view=rev
Author: hofman
Date: 2011-08-23 11:31:49 +0000 (Tue, 23 Aug 2011)
Log Message:
-----------
Prevent Lion from changing the scroller style when there's a placard view
Modified Paths:
--------------
trunk/NSScrollView_SKExtensions.m
Modified: trunk/NSScrollView_SKExtensions.m
===================================================================
--- trunk/NSScrollView_SKExtensions.m 2011-08-22 14:33:15 UTC (rev 7440)
+++ trunk/NSScrollView_SKExtensions.m 2011-08-23 11:31:49 UTC (rev 7441)
@@ -65,6 +65,7 @@
static void (*original_setHasHorizontalScroller)(id, SEL, BOOL) = NULL;
static void (*original_setAutohidesScrollers)(id, SEL, BOOL) = NULL;
+static void (*original_setScrollerStyle)(id, SEL, BOOL) = NULL;
static void (*original_dealloc)(id, SEL) = NULL;
static void (*original_tile)(id, SEL) = NULL;
@@ -88,6 +89,12 @@
original_setAutohidesScrollers(self, _cmd, flag);
}
+- (void)replacement_setScrollerStyle:(NSScrollerStyle)newScrollerStyle;
+{
+ if ([scrollViewPlacardViews objectForKey:self] == nil)
+ original_setScrollerStyle(self, _cmd, flag);
+}
+
- (void)replacement_tile {
original_tile(self, _cmd);
@@ -107,6 +114,7 @@
+ (void)load {
original_setHasHorizontalScroller = (void (*)(id, SEL,
BOOL))SKReplaceInstanceMethodImplementationFromSelector(self,
@selector(setHasHorizontalScroller:),
@selector(replacement_setHasHorizontalScroller:));
original_setAutohidesScrollers = (void (*)(id, SEL,
BOOL))SKReplaceInstanceMethodImplementationFromSelector(self,
@selector(setAutohidesScrollers:),
@selector(replacement_setAutohidesScrollers:));
+ original_setScrollerStyle = (void (*)(id, SEL,
BOOL))SKReplaceInstanceMethodImplementationFromSelector(self,
@selector(setAutohidesScrollers:), @selector(replacement_setScrollerStyle:));
original_dealloc = (void (*)(id,
SEL))SKReplaceInstanceMethodImplementationFromSelector(self,
@selector(dealloc), @selector(replacement_dealloc));
original_tile = (void (*)(id,
SEL))SKReplaceInstanceMethodImplementationFromSelector(self, @selector(tile),
@selector(replacement_tile));
@@ -133,12 +141,12 @@
if ([newPlacards count] != 0) {
original_setHasHorizontalScroller(self,
@selector(setHasHorizontalScroller:), YES);
original_setAutohidesScrollers(self,
@selector(setAutohidesScrollers:), NO);
- if ([NSScroller
instancesRespondToSelector:@selector(setScrollerStyle:)])
- [[self horizontalScroller]
setScrollerStyle:NSScrollerStyleOverlay];
+ if (original_setScrollerStyle != NULL)
+ original_setScrollerStyle(NSScrollerStyleOverlay);
} else if (placardView) {
[scrollViewPlacardViews removeObjectForKey:self];
- if ([NSScroller
instancesRespondToSelector:@selector(setScrollerStyle:)] && [NSScroller
respondsToSelector:@selector(preferredScrollerStyle)])
- [[self horizontalScroller] setScrollerStyle:[NSScroller
preferredScrollerStyle]];
+ if (original_setScrollerStyle != NULL && [NSScroller
respondsToSelector:@selector(preferredScrollerStyle)])
+ original_setScrollerStyle([NSScroller preferredScrollerStyle]);
}
[placardView release];
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Get a FREE DOWNLOAD! and learn more about uberSVN rich system,
user administration capabilities and model configuration. Take
the hassle out of deploying and managing Subversion and the
tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit