2 * Adium is the legal property of its developers, whose names are listed in the copyright file included
3 * with this source distribution.
5 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
6 * General Public License as published by the Free Software Foundation; either version 2 of the License,
7 * or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
10 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
11 * Public License for more details.
13 * You should have received a copy of the GNU General Public License along with this program; if not,
14 * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 #import "AIBorderlessListOutlineView.h"
18 #import <AIUtilities/AIEventAdditions.h>
20 @implementation AIBorderlessListOutlineView
22 //Forward mouse down events to our containing window (when command is pressed) to allow dragging
23 - (void)mouseDown:(NSEvent *)theEvent
25 if (![theEvent cmdKey]) {
26 //Wait for the next event
27 NSEvent *nextEvent = [[self window] nextEventMatchingMask:(NSLeftMouseUpMask | NSLeftMouseDraggedMask | NSPeriodicMask)
28 untilDate:[NSDate distantFuture]
29 inMode:NSEventTrackingRunLoopMode
32 //Pass along the event (either to ourself or our window, depending on what it is)
33 switch ([nextEvent type]) {
35 [super mouseDown:theEvent];
36 [super mouseUp:nextEvent];
38 case NSLeftMouseDragged:
39 [[self window] mouseDown:theEvent];
40 [[self window] mouseDragged:nextEvent];
43 [[self window] mouseDown:theEvent];
47 [super mouseDown:theEvent];
50 - (void)mouseDragged:(NSEvent *)theEvent
52 if (![theEvent cmdKey]) {
53 [[self window] mouseDragged:theEvent];
55 [super mouseDragged:theEvent];
59 - (void)mouseUp:(NSEvent *)theEvent
61 if (![theEvent cmdKey]) {
62 [[self window] mouseUp:theEvent];
64 [super mouseUp:theEvent];
70 return [super totalHeight] + 1;