From c68b174be563fc49c1c1b2ac41dc4e77a4200e55 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Mon, 8 Jul 2013 14:31:06 +0100 Subject: [PATCH] Fixed: appkit_tag_dom_elements support by CPImageView. Without this fix, the `appkit_tag_dom_elements` flag would only affect CPImageViews unarchived from a coder (e.g. in a collection view, from a cib). It would have no effect on a CPImageView created in code. This change refactors the _DOMImageElement code to a shared method, reducing redundancy while fixing the bug. --- AppKit/CPImageView.j | 46 ++++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/AppKit/CPImageView.j b/AppKit/CPImageView.j index a56f62c07..dd2aa4a27 100644 --- a/AppKit/CPImageView.j +++ b/AppKit/CPImageView.j @@ -87,26 +87,34 @@ var CPImageViewEmptyPlaceholderImage = nil; if (self) { #if PLATFORM(DOM) - _DOMImageElement = document.createElement("img"); - _DOMImageElement.style.position = "absolute"; - _DOMImageElement.style.left = "0px"; - _DOMImageElement.style.top = "0px"; - - if ([CPPlatform supportsDragAndDrop]) - { - _DOMImageElement.setAttribute("draggable", "true"); - _DOMImageElement.style["-khtml-user-drag"] = "element"; - } + [self _createDOMImageElement]; CPDOMDisplayServerAppendChild(_DOMElement, _DOMImageElement); - - _DOMImageElement.style.visibility = "hidden"; #endif } return self; } +- (void)_createDOMImageElement +{ + _DOMImageElement = document.createElement("img"); + _DOMImageElement.style.position = "absolute"; + _DOMImageElement.style.left = "0px"; + _DOMImageElement.style.top = "0px"; + + if ([CPPlatform supportsDragAndDrop]) + { + _DOMImageElement.setAttribute("draggable", "true"); + _DOMImageElement.style["-khtml-user-drag"] = "element"; + } + + _DOMImageElement.style.visibility = "hidden"; + + if (typeof(appkit_tag_dom_elements) !== "undefined" && !!appkit_tag_dom_elements) + _DOMImageElement.setAttribute("data-cappuccino-view", [self className]); +} + /*! Returns the view's image. */ @@ -518,19 +526,7 @@ var CPImageViewImageKey = @"CPImageViewImageKey", - (id)initWithCoder:(CPCoder)aCoder { #if PLATFORM(DOM) - _DOMImageElement = document.createElement("img"); - _DOMImageElement.style.position = "absolute"; - _DOMImageElement.style.left = "0px"; - _DOMImageElement.style.top = "0px"; - _DOMImageElement.style.visibility = "hidden"; - if ([CPPlatform supportsDragAndDrop]) - { - _DOMImageElement.setAttribute("draggable", "true"); - _DOMImageElement.style["-khtml-user-drag"] = "element"; - } - - if (typeof(appkit_tag_dom_elements) !== "undefined" && !!appkit_tag_dom_elements) - _DOMImageElement.setAttribute("data-cappuccino-view", [self className]); + [self _createDOMImageElement]; #endif self = [super initWithCoder:aCoder];