diff options
author | Alex Merry <alex.merry@cs.ox.ac.uk> | 2012-12-14 15:45:25 +0000 |
---|---|---|
committer | Alex Merry <alex.merry@cs.ox.ac.uk> | 2012-12-14 15:45:25 +0000 |
commit | 2c6c704e9633f7e92c9299e7150f209cb1055cd1 (patch) | |
tree | a6032b2d910bea7185735fe73eb68dcb39395939 /tikzit | |
parent | 3230de30f3e96158e54a7f9467264ebd6d6d0a65 (diff) |
Don't grab the tool except on clicks
Diffstat (limited to 'tikzit')
-rw-r--r-- | tikzit/src/gtk/GraphEditorPanel.m | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/tikzit/src/gtk/GraphEditorPanel.m b/tikzit/src/gtk/GraphEditorPanel.m index d2a1831..4c7312a 100644 --- a/tikzit/src/gtk/GraphEditorPanel.m +++ b/tikzit/src/gtk/GraphEditorPanel.m @@ -93,6 +93,10 @@ } } +- (BOOL) hasTool { + return [tool activeRenderer] == renderer; +} + - (void) grabTool { if ([tool activeRenderer] != renderer) { [[tool activeRenderer] setPostRenderer:nil]; @@ -141,7 +145,8 @@ } - (void) mouseReleaseAt:(NSPoint)pos withButton:(MouseButton)button andMask:(InputMask)mask { - [panel grabTool]; + if (![panel hasTool]) + return; id<Tool> tool = [panel activeTool]; if ([tool respondsToSelector:@selector(mouseReleaseAt:withButton:andMask:)]) { [tool mouseReleaseAt:pos withButton:button andMask:mask]; @@ -149,7 +154,8 @@ } - (void) mouseMoveTo:(NSPoint)pos withButtons:(MouseButton)buttons andMask:(InputMask)mask { - [panel grabTool]; + if (![panel hasTool]) + return; id<Tool> tool = [panel activeTool]; if ([tool respondsToSelector:@selector(mouseMoveTo:withButtons:andMask:)]) { [tool mouseMoveTo:pos withButtons:buttons andMask:mask]; @@ -157,7 +163,6 @@ } - (void) mouseScrolledAt:(NSPoint)pos inDirection:(ScrollDirection)dir withMask:(InputMask)mask { - [panel grabTool]; id<Tool> tool = [panel activeTool]; if (mask == ControlMask) { if (dir == ScrollUp) { @@ -165,7 +170,7 @@ } else if (dir == ScrollDown) { [panel zoomOutAboutPoint:pos]; } - } else if ([tool respondsToSelector:@selector(mouseScrolledAt:inDirection:withMask:)]) { + } else if ([panel hasTool] && [tool respondsToSelector:@selector(mouseScrolledAt:inDirection:withMask:)]) { [tool mouseScrolledAt:pos inDirection:dir withMask:mask]; } } |