mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-24 06:28:54 +00:00
Backport patches from trunk
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/branches/stable@26854 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
bbd1c7cd16
commit
fc639dae72
13 changed files with 291 additions and 76 deletions
80
ChangeLog
80
ChangeLog
|
@ -1,3 +1,83 @@
|
|||
2008-09-08 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/GSInfoPanel.m (-keyDown:, -copy:): Added functionality to
|
||||
copy the text content of the info panel to the pasteboard.
|
||||
Fixes #23831.
|
||||
|
||||
2008-09-08 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/NSSavePanel.m (-browser:createRowsForColumn:inMatrix:):
|
||||
Use flushWindow instead of [GSCurrentContext() flushGraphics].
|
||||
Should fix #24200.
|
||||
|
||||
2008-08-30 13:33-EDT Gregory John Casamento <greg_casamento@yahoo.com>
|
||||
|
||||
* ChangeLog
|
||||
* Images/GNUmakefile: Remove reference to Images copyright file
|
||||
reference since they images are now under the GPL.
|
||||
|
||||
2008-08-30 13:32-EDT Gregory John Casamento <greg_casamento@yahoo.com>
|
||||
|
||||
* Images/GNUmakefile
|
||||
* Source/GSNibTemplates.m
|
||||
|
||||
2008-08-21 Yavor Doganov <yavor@gnu.org> (tiny change)
|
||||
|
||||
* Source/GNUmakefile.preamble (LIBRARIES_DEPEND_UPON):
|
||||
Unconditionally link against $(OBJC_LIBS) on all platforms to
|
||||
avoid undefined symbols.
|
||||
Reported by Funda Wang (bug #24109).
|
||||
|
||||
2008-08-21 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Source/NSBezierPath.m: ([transformUsingAffineTransform:]) corrected
|
||||
code which was casting an array of items of one type to be an array
|
||||
of items of another type whose size differs on 64bit machines.
|
||||
|
||||
2008-08-15 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/NSWindow.m (-makeKeyAndOrderFront:): Unhide the application.
|
||||
* Source/NSApplication.m (-hide:, -unhideWithoutActivation):
|
||||
Better handling for miniaturized windows.
|
||||
Patch by Hubert Chathi <hubert@uhoreg.ca>.
|
||||
|
||||
2008-08-11 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/NSWindow.m (-endEditingFor:): Change the first responder
|
||||
first to avoid recusion.
|
||||
|
||||
2008-08-08 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
* Source/NSBitmapImageRep+JPEG.m: Handle patched jpeg library
|
||||
found on CYGWIN.
|
||||
|
||||
2008-08-02 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/NSScrollView.m (-initWithCoder:): Handle non-retained
|
||||
ivars correctly.
|
||||
* Source/NSWindowController.m (-loadWindow): Release the loaded
|
||||
window once, as it got retained by the NIB loading mechanism.
|
||||
|
||||
2008-07-13 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/NSGlyphGenerator.m (-generateGlyphsForGlyphStorage:...):
|
||||
Add fallback glyph when no glyph can be found for current character.
|
||||
|
||||
2008-07-13 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/GSLayoutManager.m: Protect all access to the glyph arrays.
|
||||
|
||||
2008-07-12 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/GSLayoutManager.m (-_glyphForCharacter:index:positions::),
|
||||
* Source/NSGlyphGenerator.m (-generateGlyphsForGlyphStorage:...):
|
||||
Add some more protection against inconsistent state.
|
||||
|
||||
2008-07-12 Fred Kiefer <FredKiefer@gmx.de>
|
||||
|
||||
* Source/NSSavePanel.m (-ok:): Standardize path before checking
|
||||
for existance.
|
||||
|
||||
2008-07-08 16:15-EDT Gregory John Casamento <greg_casamento@yahoo.com>
|
||||
|
||||
* Source/NSMenu.m: Beginning of support for windows style menus on the
|
||||
|
|
|
@ -33,7 +33,6 @@ include ../Version
|
|||
imagedir = $(GNUSTEP_LIBRARY)/Images
|
||||
|
||||
IMAGE_FILES = \
|
||||
GNUstep_Images_Copyright \
|
||||
LogoGNUstep.tiff \
|
||||
common_3DArrowUp.tiff \
|
||||
common_3DArrowLeft.tiff \
|
||||
|
|
|
@ -90,12 +90,5 @@ ADDITIONAL_INSTALL_DIRS = $(GNUSTEP_HEADERS)/AppKit $(GNUSTEP_HEADERS)/Cocoa
|
|||
# systems where building a shared library requires to pass to the linker
|
||||
# all the libraries the target library depends upon.
|
||||
|
||||
LIBRARIES_DEPEND_UPON = -l$(FOUNDATION_LIBRARY_NAME) $(ADDITIONAL_DEPENDS)
|
||||
|
||||
ifeq ($(GNUSTEP_TARGET_OS),mingw32)
|
||||
libgnustep-gui_LIBRARIES_DEPEND_UPON += -lobjc
|
||||
endif
|
||||
ifeq ($(GNUSTEP_TARGET_OS),cygwin)
|
||||
libgnustep-gui_LIBRARIES_DEPEND_UPON += -lobjc
|
||||
endif
|
||||
|
||||
LIBRARIES_DEPEND_UPON = -l$(FOUNDATION_LIBRARY_NAME) $(ADDITIONAL_DEPENDS) \
|
||||
$(OBJC_LIBS)
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
#include <Foundation/NSBundle.h>
|
||||
#include <Foundation/NSDictionary.h>
|
||||
#include <Foundation/NSEnumerator.h>
|
||||
#include <Foundation/NSString.h>
|
||||
#include <Foundation/NSProcessInfo.h>
|
||||
|
||||
|
@ -37,6 +38,7 @@
|
|||
#include "AppKit/NSFont.h"
|
||||
#include "AppKit/NSImage.h"
|
||||
#include "AppKit/NSImageView.h"
|
||||
#include "AppKit/NSPasteboard.h"
|
||||
#include "AppKit/NSTextField.h"
|
||||
#include "GNUstepGUI/GSInfoPanel.h"
|
||||
#include "GNUstepGUI/GSTheme.h"
|
||||
|
@ -645,4 +647,50 @@ new_label (NSString *value)
|
|||
return self;
|
||||
}
|
||||
|
||||
- (void) copy: (id)sender
|
||||
{
|
||||
NSArray *types = [NSArray arrayWithObject: NSStringPboardType];
|
||||
NSPasteboard *pboard = [NSPasteboard generalPasteboard];
|
||||
NSMutableString *text = [[NSMutableString alloc] init];
|
||||
NSView *cv = [self contentView];
|
||||
NSEnumerator *enumerator = [[cv subviews] objectEnumerator];
|
||||
NSView *subview;
|
||||
|
||||
// Loop over all the text subviews and collect the information
|
||||
while ((subview = [enumerator nextObject]) != nil)
|
||||
{
|
||||
if ([subview isKindOfClass: [NSTextField class]])
|
||||
{
|
||||
[text appendString: [(NSTextField*)subview stringValue]];
|
||||
[text appendString: @"\n"];
|
||||
}
|
||||
}
|
||||
|
||||
[pboard declareTypes: types owner: self];
|
||||
[pboard setString: text
|
||||
forType: NSStringPboardType];
|
||||
RELEASE(text);
|
||||
}
|
||||
|
||||
- (void) keyDown: (NSEvent*)theEvent
|
||||
{
|
||||
NSString *characters = [theEvent characters];
|
||||
unichar character = 0;
|
||||
|
||||
if ([characters length] > 0)
|
||||
{
|
||||
character = [characters characterAtIndex: 0];
|
||||
}
|
||||
|
||||
// FIXME: Hard coded
|
||||
if (character == 'c' &&
|
||||
[theEvent modifierFlags] & NSCommandKeyMask)
|
||||
{
|
||||
[self copy: nil];
|
||||
return;
|
||||
}
|
||||
|
||||
[super keyDown: theEvent];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -769,7 +769,20 @@ Fills in all glyph holes up to last. only looking at levels below level
|
|||
|
||||
r = run_for_character_index(target, glyphs, &pos, &cpos);
|
||||
if (!r)
|
||||
return NULL;
|
||||
{
|
||||
[NSException raise: NSRangeException
|
||||
format: @"%s character index %d out of range", __PRETTY_FUNCTION__, target];
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!r->glyphs)
|
||||
{
|
||||
// range, but no glyphs, may be an empty glyph run
|
||||
*rindex = i;
|
||||
*rpos = pos;
|
||||
*rcpos = cpos;
|
||||
return r;
|
||||
}
|
||||
|
||||
target -= cpos;
|
||||
|
||||
|
@ -848,7 +861,7 @@ Fills in all glyph holes up to last. only looking at levels below level
|
|||
}
|
||||
|
||||
r = run_for_glyph_index(glyphIndex, glyphs, &pos, NULL);
|
||||
if (!r) /* shouldn't happen */
|
||||
if (!r || !r->glyphs) /* shouldn't happen */
|
||||
return NSNullGlyph;
|
||||
|
||||
*isValidIndex = YES;
|
||||
|
@ -960,6 +973,11 @@ Fills in all glyph holes up to last. only looking at levels below level
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (r->head.glyph_length <= glyphIndex - pos)
|
||||
{
|
||||
return cpos;
|
||||
}
|
||||
|
||||
return cpos + r->glyphs[glyphIndex - pos].char_offset;
|
||||
}
|
||||
|
||||
|
@ -998,7 +1016,14 @@ Fills in all glyph holes up to last. only looking at levels below level
|
|||
return NSMakeRange(0, 0);
|
||||
}
|
||||
|
||||
j = cpos + r->glyphs[glyphRange.location - pos].char_offset;
|
||||
if (r->head.glyph_length <= glyphRange.location - pos)
|
||||
{
|
||||
j = cpos;
|
||||
}
|
||||
else
|
||||
{
|
||||
j = cpos + r->glyphs[glyphRange.location - pos].char_offset;
|
||||
}
|
||||
char_range.location = j;
|
||||
|
||||
/* scan backwards to find the real first glyph */
|
||||
|
@ -1011,7 +1036,8 @@ Fills in all glyph holes up to last. only looking at levels below level
|
|||
r2 = r;
|
||||
adj = pos;
|
||||
cadj = cpos;
|
||||
while (r2->glyphs[i].char_offset + cadj == j)
|
||||
while ((r2->head.glyph_length > i) &&
|
||||
(r2->glyphs[i].char_offset + cadj == j))
|
||||
{
|
||||
i--;
|
||||
while (i < 0)
|
||||
|
@ -1040,7 +1066,14 @@ Fills in all glyph holes up to last. only looking at levels below level
|
|||
return NSMakeRange(0, 0);
|
||||
}
|
||||
|
||||
j = cpos + r->glyphs[glyphRange.location + glyphRange.length - 1 - pos].char_offset;
|
||||
if (r->head.glyph_length <= glyphRange.location + glyphRange.length - 1 - pos)
|
||||
{
|
||||
j = cpos;
|
||||
}
|
||||
else
|
||||
{
|
||||
j = cpos + r->glyphs[glyphRange.location + glyphRange.length - 1 - pos].char_offset;
|
||||
}
|
||||
|
||||
/* scan forwards to find the real last glyph */
|
||||
{
|
||||
|
@ -1053,7 +1086,8 @@ Fills in all glyph holes up to last. only looking at levels below level
|
|||
r2 = r;
|
||||
adj = pos;
|
||||
cadj = cpos;
|
||||
while (r2->glyphs[i].char_offset + cadj == j)
|
||||
while ((r2->head.glyph_length > i) &&
|
||||
(r2->glyphs[i].char_offset + cadj == j))
|
||||
{
|
||||
GLYPH_STEP_FORWARD(r2,i,adj,cadj)
|
||||
if (i==r2->head.glyph_length)
|
||||
|
@ -1062,7 +1096,14 @@ Fills in all glyph holes up to last. only looking at levels below level
|
|||
goto found;
|
||||
}
|
||||
}
|
||||
last = r2->glyphs[i].char_offset + cadj;
|
||||
if (r2->head.glyph_length > i)
|
||||
{
|
||||
last = r2->glyphs[i].char_offset + cadj;
|
||||
}
|
||||
else
|
||||
{
|
||||
last = j;
|
||||
}
|
||||
found:
|
||||
real_range.length = i + adj - real_range.location;
|
||||
char_range.length = last - char_range.location;
|
||||
|
@ -1120,17 +1161,26 @@ Fills in all glyph holes up to last. only looking at levels below level
|
|||
index: &i
|
||||
positions: &pos : &cpos];
|
||||
glyph_range.location = i + pos;
|
||||
char_range.location = r->glyphs[i].char_offset + cpos;
|
||||
if (r->head.glyph_length > i)
|
||||
{
|
||||
char_range.location = r->glyphs[i].char_offset + cpos;
|
||||
}
|
||||
else
|
||||
{
|
||||
char_range.location = cpos;
|
||||
}
|
||||
|
||||
target = NSMaxRange(charRange) - 1;
|
||||
r = [self _glyphForCharacter: target
|
||||
index: &i
|
||||
positions: &pos : &cpos];
|
||||
|
||||
GLYPH_SCAN_FORWARD(r, i, pos, cpos, r->glyphs[i].char_offset + cpos <= target)
|
||||
if (r->head.glyph_length > i)
|
||||
{
|
||||
GLYPH_SCAN_FORWARD(r, i, pos, cpos, r->glyphs[i].char_offset + cpos <= target)
|
||||
}
|
||||
|
||||
glyph_range.length = i + pos - glyph_range.location;
|
||||
if (i == r->head.glyph_length)
|
||||
if (i >= r->head.glyph_length)
|
||||
char_range.length = glyphs->char_length - char_range.location;
|
||||
else
|
||||
char_range.length = r->glyphs[i].char_offset + cpos - char_range.location;
|
||||
|
|
|
@ -2247,7 +2247,7 @@ image.</p><p>See Also: -applicationIconImage</p>
|
|||
|
||||
while ((win = [iter nextObject]))
|
||||
{
|
||||
if ([win isVisible] == NO)
|
||||
if ([win isVisible] == NO && ![win isMiniaturized])
|
||||
{
|
||||
continue; /* Already invisible */
|
||||
}
|
||||
|
@ -2335,9 +2335,14 @@ image.</p><p>See Also: -applicationIconImage</p>
|
|||
|
||||
count = [_hidden count];
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
[[_hidden objectAtIndex: i] orderFrontRegardless];
|
||||
}
|
||||
{
|
||||
NSWindow *win = [_hidden objectAtIndex: i];
|
||||
[win orderFrontRegardless];
|
||||
if ([win isMiniaturized])
|
||||
{
|
||||
[GSServerForWindow(win) miniwindow: [win windowNumber]];
|
||||
}
|
||||
}
|
||||
[_hidden removeAllObjects];
|
||||
[[_app_icon_window contentView] setNeedsDisplay: YES];
|
||||
|
||||
|
|
|
@ -1966,40 +1966,36 @@ static NSPoint point_on_curve(double t, NSPoint a, NSPoint b, NSPoint c,
|
|||
{
|
||||
NSBezierPathElement type;
|
||||
int i, count;
|
||||
PathElement *elments = (PathElement *)GSIArrayItems(pathElements);
|
||||
GSIArrayItem *elments = GSIArrayItems(pathElements);
|
||||
SEL transformPointSel = @selector(transformPoint:);
|
||||
NSPoint (*transformPointImp)(NSAffineTransform*, SEL, NSPoint);
|
||||
|
||||
transformPointImp = (NSPoint (*)(NSAffineTransform*, SEL, NSPoint))
|
||||
[transform methodForSelector: transformPointSel];
|
||||
[transform methodForSelector: transformPointSel];
|
||||
|
||||
count = GSIArrayCount(pathElements);
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
type = elments[i].type;
|
||||
type = elments[i].ext.type;
|
||||
switch(type)
|
||||
{
|
||||
case NSMoveToBezierPathElement:
|
||||
case NSLineToBezierPathElement:
|
||||
elments[i].points[0] = (*transformPointImp)(transform,
|
||||
transformPointSel,
|
||||
elments[i].points[0]);
|
||||
break;
|
||||
elments[i].ext.points[0] = (*transformPointImp)(transform,
|
||||
transformPointSel, elments[i].ext.points[0]);
|
||||
break;
|
||||
case NSCurveToBezierPathElement:
|
||||
elments[i].points[0] = (*transformPointImp)(transform,
|
||||
transformPointSel,
|
||||
elments[i].points[0]);
|
||||
elments[i].points[1] = (*transformPointImp)(transform,
|
||||
transformPointSel,
|
||||
elments[i].points[1]);
|
||||
elments[i].points[2] = (*transformPointImp)(transform,
|
||||
transformPointSel,
|
||||
elments[i].points[2]);
|
||||
break;
|
||||
elments[i].ext.points[0] = (*transformPointImp)(transform,
|
||||
transformPointSel, elments[i].ext.points[0]);
|
||||
elments[i].ext.points[1] = (*transformPointImp)(transform,
|
||||
transformPointSel, elments[i].ext.points[1]);
|
||||
elments[i].ext.points[2] = (*transformPointImp)(transform,
|
||||
transformPointSel, elments[i].ext.points[2]);
|
||||
break;
|
||||
case NSClosePathBezierPathElement:
|
||||
break;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
INVALIDATE_CACHE();
|
||||
|
|
|
@ -50,6 +50,10 @@
|
|||
#endif
|
||||
#endif
|
||||
#include <jpeglib.h>
|
||||
#if defined(__CYGWIN__)
|
||||
/* Cygwin uses a patched jpeg */
|
||||
#define GSTEP_PROGRESSIVE_CODEC
|
||||
#endif
|
||||
|
||||
#include <setjmp.h>
|
||||
|
||||
|
@ -465,7 +469,11 @@ static void gs_jpeg_memory_dest_destroy (j_compress_ptr cinfo)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef GSTEP_PROGRESSIVE_CODEC
|
||||
isProgressive = (cinfo.process == JPROC_PROGRESSIVE);
|
||||
#else
|
||||
isProgressive = cinfo.progressive_mode;
|
||||
#endif
|
||||
|
||||
/* done */
|
||||
jpeg_finish_decompress(&cinfo);
|
||||
|
@ -599,7 +607,12 @@ static void gs_jpeg_memory_dest_destroy (j_compress_ptr cinfo)
|
|||
progressiveNumber = [properties objectForKey: NSImageProgressive];
|
||||
if (progressiveNumber != nil)
|
||||
{
|
||||
#ifdef GSTEP_PROGRESSIVE_CODEC
|
||||
if ([progressiveNumber boolValue])
|
||||
cinfo.process = JPROC_PROGRESSIVE;
|
||||
#else
|
||||
cinfo.progressive_mode = [progressiveNumber boolValue];
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -110,12 +110,19 @@ fb04 'ffl'
|
|||
= (BOOL(*)(id, SEL, unichar)) [cs methodForSelector: cim_sel];
|
||||
SEL gfc_sel = @selector(glyphForCharacter:);
|
||||
NSGlyph (*glyphForCharacter)(id, SEL, unichar);
|
||||
NSGlyph fallback = NSNullGlyph;
|
||||
|
||||
[[attrstr string] getCharacters: buf range: maxRange];
|
||||
attributes = [attrstr attributesAtIndex: *index
|
||||
longestEffectiveRange: &curRange
|
||||
inRange: maxRange];
|
||||
fi = [[self fontForCharactersWithAttributes: attributes] fontInfo];
|
||||
if (!fi)
|
||||
{
|
||||
[NSException raise: NSGenericException
|
||||
format: @"Glyph generation with no font."];
|
||||
return;
|
||||
}
|
||||
glyphForCharacter = (NSGlyph(*)(id, SEL, unichar)) [fi methodForSelector: gfc_sel];
|
||||
|
||||
n = [attributes objectForKey: NSLigatureAttributeName];
|
||||
|
@ -232,8 +239,11 @@ fb04 'ffl'
|
|||
g++;
|
||||
if (surr)
|
||||
SEND_GLYPHS();
|
||||
|
||||
continue;
|
||||
}
|
||||
else if (ch < 0x10000)
|
||||
|
||||
if (ch < 0x10000)
|
||||
{
|
||||
unichar *decomp;
|
||||
|
||||
|
@ -251,13 +261,24 @@ fb04 'ffl'
|
|||
g++;
|
||||
SEND_GLYPHS();
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
// No glyph found add fallback
|
||||
if (fallback == NSNullGlyph)
|
||||
{
|
||||
// On a NSNullGLyph, send all previous glyphs
|
||||
SEND_GLYPHS();
|
||||
// FIXME: Find a suitable fallback glyph
|
||||
unichar uc = '?';
|
||||
|
||||
fallback = glyphForCharacter(fi, gfc_sel, uc);
|
||||
}
|
||||
*g = fallback;
|
||||
g++;
|
||||
|
||||
// On a NSNullGLyph, send all previous glyphs
|
||||
SEND_GLYPHS();
|
||||
}
|
||||
|
||||
// Send all remaining glyphs
|
||||
|
|
|
@ -1124,15 +1124,11 @@ selectCellWithString: (NSString*)title
|
|||
|
||||
ASSIGN (_directory, pathToColumn(_browser, [_browser lastColumn]));
|
||||
filename = [[_form cellAtIndex: 0] stringValue];
|
||||
if ([filename isAbsolutePath] == YES)
|
||||
if ([filename isAbsolutePath] == NO)
|
||||
{
|
||||
ASSIGN (_fullFileName, filename);
|
||||
}
|
||||
else
|
||||
{
|
||||
ASSIGN (_fullFileName, [_directory stringByAppendingPathComponent:
|
||||
filename]);
|
||||
filename = [_directory stringByAppendingPathComponent: filename];
|
||||
}
|
||||
ASSIGN (_fullFileName, [filename stringByStandardizingPath]);
|
||||
|
||||
if (_delegateHasUserEnteredFilename)
|
||||
{
|
||||
|
@ -1561,7 +1557,7 @@ createRowsForColumn: (int)column
|
|||
progressString = [@"Reading Directory " stringByAppendingString: path];
|
||||
[super setTitle: progressString];
|
||||
// Is the following really safe?
|
||||
[GSCurrentContext() flushGraphics];
|
||||
[self flushWindow];
|
||||
}
|
||||
|
||||
//TODO: Sort after creation of matrix so we do not sort
|
||||
|
@ -1580,12 +1576,12 @@ createRowsForColumn: (int)column
|
|||
{
|
||||
// Update displayed message if needed
|
||||
if (display_progress && (i > (base_frac * (reached_frac + 1))))
|
||||
{
|
||||
reached_frac++;
|
||||
progressString = [progressString stringByAppendingString: @"."];
|
||||
[super setTitle: progressString];
|
||||
[GSCurrentContext() flushGraphics];
|
||||
}
|
||||
{
|
||||
reached_frac++;
|
||||
progressString = [progressString stringByAppendingString: @"."];
|
||||
[super setTitle: progressString];
|
||||
[self flushWindow];
|
||||
}
|
||||
// Now the real code
|
||||
file = [files objectAtIndex: i];
|
||||
extension = [file pathExtension];
|
||||
|
@ -1635,7 +1631,7 @@ createRowsForColumn: (int)column
|
|||
if (display_progress)
|
||||
{
|
||||
[super setTitle: @""];
|
||||
[GSCurrentContext() flushGraphics];
|
||||
[self flushWindow];
|
||||
}
|
||||
|
||||
RELEASE (pool);
|
||||
|
|
|
@ -254,6 +254,14 @@ static float scrollerWidth;
|
|||
{
|
||||
_contentView = nil;
|
||||
}
|
||||
if (aView == _headerClipView)
|
||||
{
|
||||
_headerClipView = nil;
|
||||
}
|
||||
if (aView == _cornerView)
|
||||
{
|
||||
_cornerView = nil;
|
||||
}
|
||||
[super removeSubview: aView];
|
||||
}
|
||||
|
||||
|
@ -1511,12 +1519,7 @@ static float scrollerWidth;
|
|||
[content setFrame: frame];
|
||||
}
|
||||
|
||||
// FIXME: No idea what is going on here.
|
||||
// retain the view and reset the content view...
|
||||
RETAIN(content);
|
||||
[self setContentView: content];
|
||||
RELEASE(content);
|
||||
ASSIGN(_contentView, content);
|
||||
}
|
||||
|
||||
if (hScroller != nil && _hasHorizScroller)
|
||||
|
@ -1533,8 +1536,7 @@ static float scrollerWidth;
|
|||
{
|
||||
_hasHeaderView = YES;
|
||||
_hasCornerView = YES;
|
||||
ASSIGN(_headerClipView,
|
||||
[aDecoder decodeObjectForKey: @"NSHeaderClipView"]);
|
||||
_headerClipView = [aDecoder decodeObjectForKey: @"NSHeaderClipView"];
|
||||
}
|
||||
|
||||
[self tile];
|
||||
|
@ -1543,7 +1545,7 @@ static float scrollerWidth;
|
|||
{
|
||||
int version = [aDecoder versionForClassName: @"NSScrollView"];
|
||||
NSDebugLLog(@"NSScrollView", @"NSScrollView: start decoding\n");
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_contentView];
|
||||
_contentView = [aDecoder decodeObject];
|
||||
[aDecoder decodeValueOfObjCType: @encode(NSBorderType) at: &_borderType];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_scrollsDynamically];
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_rulersVisible];
|
||||
|
@ -1572,7 +1574,7 @@ static float scrollerWidth;
|
|||
{
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_hasHeaderView];
|
||||
if (_hasHeaderView)
|
||||
[aDecoder decodeValueOfObjCType: @encode(id) at: &_headerClipView];
|
||||
_headerClipView = [aDecoder decodeObject];
|
||||
|
||||
[aDecoder decodeValueOfObjCType: @encode(BOOL) at: &_hasCornerView];
|
||||
}
|
||||
|
|
|
@ -1371,13 +1371,14 @@ many times.
|
|||
|
||||
if (t && (_firstResponder == t))
|
||||
{
|
||||
// Change first responder first to avoid recusion.
|
||||
_firstResponder = self;
|
||||
[_firstResponder becomeFirstResponder];
|
||||
[nc postNotificationName: NSTextDidEndEditingNotification
|
||||
object: t];
|
||||
[t setText: @""];
|
||||
[t setDelegate: nil];
|
||||
[t removeFromSuperview];
|
||||
_firstResponder = self;
|
||||
[_firstResponder becomeFirstResponder];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1542,6 +1543,12 @@ many times.
|
|||
- (void) makeKeyAndOrderFront: (id)sender
|
||||
{
|
||||
[self deminiaturize: self];
|
||||
/*
|
||||
* If a window is ordered in, make sure that the application isn't hidden,
|
||||
* and is active.
|
||||
*/
|
||||
if ([self canBecomeKeyWindow])
|
||||
[NSApp unhide: self];
|
||||
[self orderFrontRegardless];
|
||||
[self makeKeyWindow];
|
||||
/*
|
||||
|
|
|
@ -444,8 +444,13 @@
|
|||
|
||||
if (_window == nil && _document != nil && _owner == _document)
|
||||
{
|
||||
[self setWindow: [_document _transferWindowOwnership]];
|
||||
}
|
||||
[self setWindow: [_document _transferWindowOwnership]];
|
||||
}
|
||||
else
|
||||
{
|
||||
// The window was already retained by the NIB loading.
|
||||
RELEASE(_window);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue