mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-31 05:40:48 +00:00
2015-09-13 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSTextView.m: Invalidate insertion point timer in dealloc. * Source/NSToolbarItem.m: Check for drawing rect within bounds before drawing toolbar item. Patch by Marcian Lytwyn <gna@advcsi.com>. 2015-09-10 Doug Simons <doug.simons@testplant.com> and Paul Landers <paul.landers@testplant.com> * Source/NSLayoutManager.m: Fix a bug that would try to adjust the length of the selected range to a negative number, leading to an exception and eventual crashes. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@38986 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
d2302076ad
commit
2f1ec7948f
4 changed files with 54 additions and 30 deletions
|
@ -141,6 +141,8 @@ Interface for a bunch of internal methods that need to be cleaned up.
|
|||
* Used to implement the blinking insertion point
|
||||
*/
|
||||
- (void) _blink: (NSTimer *)t;
|
||||
- (void) _stopInsertionTimer;
|
||||
- (void) _startInsertionTimer;
|
||||
|
||||
/*
|
||||
* these NSLayoutManager- like method is here only informally
|
||||
|
@ -1118,6 +1120,7 @@ that makes decoding and encoding compatible with the old code.
|
|||
name: NSTextDidChangeNotification
|
||||
object: self];
|
||||
[_textCheckingTimer invalidate];
|
||||
[self _stopInsertionTimer];
|
||||
|
||||
[[NSRunLoop currentRunLoop] cancelPerformSelector: @selector(_updateState:)
|
||||
target: self
|
||||
|
@ -4178,32 +4181,6 @@ Figure out how the additional layout stuff is supposed to work.
|
|||
return nil;
|
||||
}
|
||||
|
||||
- (void) _stopInsertionTimer
|
||||
{
|
||||
if (_insertionPointTimer != nil)
|
||||
{
|
||||
[_insertionPointTimer invalidate];
|
||||
DESTROY(_insertionPointTimer);
|
||||
}
|
||||
}
|
||||
|
||||
- (void) _startInsertionTimer
|
||||
{
|
||||
if (_insertionPointTimer != nil)
|
||||
{
|
||||
NSWarnMLog(@"Starting insertion timer with existing one running");
|
||||
[self _stopInsertionTimer];
|
||||
}
|
||||
_insertionPointTimer = [NSTimer scheduledTimerWithTimeInterval: 0.5
|
||||
target: self
|
||||
selector: @selector(_blink:)
|
||||
userInfo: nil
|
||||
repeats: YES];
|
||||
[[NSRunLoop currentRunLoop] addTimer: _insertionPointTimer
|
||||
forMode: NSModalPanelRunLoopMode];
|
||||
RETAIN(_insertionPointTimer);
|
||||
}
|
||||
|
||||
- (void) updateInsertionPointStateAndRestartTimer: (BOOL)restartFlag
|
||||
{
|
||||
NSRect new;
|
||||
|
@ -6167,6 +6144,32 @@ or add guards
|
|||
[self displayIfNeeded];
|
||||
}
|
||||
|
||||
- (void) _stopInsertionTimer
|
||||
{
|
||||
if (_insertionPointTimer != nil)
|
||||
{
|
||||
[_insertionPointTimer invalidate];
|
||||
DESTROY(_insertionPointTimer);
|
||||
}
|
||||
}
|
||||
|
||||
- (void) _startInsertionTimer
|
||||
{
|
||||
if (_insertionPointTimer != nil)
|
||||
{
|
||||
NSWarnMLog(@"Starting insertion timer with existing one running");
|
||||
[self _stopInsertionTimer];
|
||||
}
|
||||
_insertionPointTimer = [NSTimer scheduledTimerWithTimeInterval: 0.5
|
||||
target: self
|
||||
selector: @selector(_blink:)
|
||||
userInfo: nil
|
||||
repeats: YES];
|
||||
[[NSRunLoop currentRunLoop] addTimer: _insertionPointTimer
|
||||
forMode: NSModalPanelRunLoopMode];
|
||||
RETAIN(_insertionPointTimer);
|
||||
}
|
||||
|
||||
- (NSRect) rectForCharacterRange: (NSRange)aRange
|
||||
{
|
||||
NSRange glyphRange;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue