mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-10-15 21:14:29 +00:00
Coat tailed CPEvents on native DOM events if they exist, saving the creation of many objects.
Reviewed by me.
This commit is contained in:
1 parent
de9ab95b55
commit
95f594131b
6 files changed
+38
-21
No files matched your search
+25
-1
@@ -206,6 +206,7 @@ var _CPEventPeriodicEventPeriod = 0,
|
||||
unsigned _clickCount;
|
||||
float _pressure;
|
||||
CPWindow _window;
|
||||
Number _windowNumber;
|
||||
CPString _characters;
|
||||
CPString _charactersIgnoringModifiers
|
||||
BOOL _isARepeat;
|
||||
@@ -327,7 +328,7 @@ var _CPEventPeriodicEventPeriod = 0,
|
||||
_charactersIgnoringModifiers = unmodCharacters;
|
||||
_isARepeat = isARepeat;
|
||||
_keyCode = code;
|
||||
_window = [CPApp windowWithWindowNumber:aWindowNumber];
|
||||
_windowNumber = aWindowNumber;
|
||||
}
|
||||
|
||||
return self;
|
||||
@@ -397,6 +398,9 @@ var _CPEventPeriodicEventPeriod = 0,
|
||||
*/
|
||||
- (CPWindow)window
|
||||
{
|
||||
if (!_window)
|
||||
_window = [CPApp windowWithWindowNumber:_windowNumber];
|
||||
|
||||
return _window;
|
||||
}
|
||||
|
||||
@@ -532,3 +536,23 @@ function _CPEventFirePeriodEvent()
|
||||
[CPApp sendEvent:[CPEvent otherEventWithType:CPPeriodic location:_CGPointMakeZero() modifierFlags:0 timestamp:0 windowNumber:0 context:nil subtype:0 data1:0 data2:0]];
|
||||
}
|
||||
|
||||
var CPEventClass = [CPEvent class];
|
||||
|
||||
function _CPEventFromNativeMouseEvent(aNativeEvent, anEventType, aPoint, modifierFlags, aTimestamp, aWindowNumber, aGraphicsContext, anEventNumber, aClickCount, aPressure)
|
||||
{
|
||||
aNativeEvent.isa = CPEventClass;
|
||||
|
||||
aNativeEvent._type = anEventType;
|
||||
aNativeEvent._location = aPoint;
|
||||
aNativeEvent._modifierFlags = modifierFlags;
|
||||
aNativeEvent._timestamp = aTimestamp;
|
||||
aNativeEvent._windowNumber = aWindowNumber;
|
||||
aNativeEvent._window = nil;
|
||||
aNativeEvent._context = aGraphicsContext;
|
||||
aNativeEvent._eventNumber = anEventNumber;
|
||||
aNativeEvent._clickCount = aClickCount;
|
||||
aNativeEvent._pressure = aPressure;
|
||||
|
||||
return aNativeEvent;
|
||||
}
|
||||
|
||||
@@ -255,18 +255,6 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
/*!
|
||||
Returns a hash of the CPArray.
|
||||
@return an unsigned integer hash
|
||||
*/
|
||||
- (unsigned)hash
|
||||
{
|
||||
if (self.__address == nil)
|
||||
self.__address = _objj_generateObjectHash();
|
||||
|
||||
return self.__address;
|
||||
}
|
||||
|
||||
// Querying an array
|
||||
/*!
|
||||
Returns <code>YES</code> if the array contains <code>anObject</code>. Otherwise, it returns <code>NO</code>.
|
||||
|
||||
@@ -186,7 +186,7 @@ var __placeholder = new Number(),
|
||||
return anUnsignedShort;
|
||||
}
|
||||
|
||||
- (CPString)hash
|
||||
- (CPString)UID
|
||||
{
|
||||
if (!_CPNumberHashes[self])
|
||||
_CPNumberHashes[self] = _objj_generateObjectHash();
|
||||
|
||||
@@ -459,6 +459,14 @@ CPLog(@"Got some class: %@", inst);</pre>
|
||||
*/
|
||||
- (unsigned)hash
|
||||
{
|
||||
return [self UID];
|
||||
}
|
||||
|
||||
- (unsigned)UID
|
||||
{
|
||||
if (typeof self.__address === "undefined")
|
||||
self.__address = _objj_generateObjectHash();
|
||||
|
||||
return __address;
|
||||
}
|
||||
|
||||
|
||||
@@ -502,7 +502,7 @@ var CPStringHashes = new objj_dictionary();
|
||||
/*!
|
||||
Returns a hash of the string instance.
|
||||
*/
|
||||
- (unsigned)hash
|
||||
- (unsigned)UID
|
||||
{
|
||||
var hash = dictionary_getValue(CPStringHashes, self);
|
||||
|
||||
|
||||
@@ -472,12 +472,9 @@ function objj_msgSend(/*id*/ aReceiver, /*SEL*/ aSelector)
|
||||
|
||||
switch(arguments.length)
|
||||
{
|
||||
case 2:
|
||||
return implementation(aReceiver, aSelector);
|
||||
case 3:
|
||||
return implementation(aReceiver, aSelector, arguments[2]);
|
||||
case 4:
|
||||
return implementation(aReceiver, aSelector, arguments[2], arguments[3]);
|
||||
case 2: return implementation(aReceiver, aSelector);
|
||||
case 3: return implementation(aReceiver, aSelector, arguments[2]);
|
||||
case 4: return implementation(aReceiver, aSelector, arguments[2], arguments[3]);
|
||||
}
|
||||
|
||||
return implementation.apply(aReceiver, arguments);
|
||||
|
||||
Reference in new issue
Block a user