本文整理汇总了C++中ToolHandler::getToolType方法的典型用法代码示例。如果您正苦于以下问题:C++ ToolHandler::getToolType方法的具体用法?C++ ToolHandler::getToolType怎么用?C++ ToolHandler::getToolType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ToolHandler
的用法示例。
在下文中一共展示了ToolHandler::getToolType方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: onMotionNotifyEvent
bool PageView::onMotionNotifyEvent(GtkWidget * widget, GdkEventMotion * event) {
XOJ_CHECK_TYPE(PageView);
double zoom = xournal->getZoom();
double x = event->x / zoom;
double y = event->y / zoom;
ToolHandler * h = xournal->getControl()->getToolHandler();
if (this->inputHandler->onMotionNotifyEvent(event)) {
//input handler used this event
} else if (this->selection) {
this->selection->currentPos(x, y);
} else if (this->verticalSpace) {
this->verticalSpace->currentPos(x, y);
} else if (this->textEditor) {
Cursor * cursor = getXournal()->getCursor();
cursor->setInvisible(false);
Text * text = this->textEditor->getText();
this->textEditor->mouseMoved(x - text->getX(), y - text->getY());
} else if (h->getToolType() == TOOL_ERASER && h->getEraserType() != ERASER_TYPE_WHITEOUT && this->inEraser) {
this->eraser->erase(x, y);
}
return false;
}
示例2: addPointToTmpStroke
void InputHandler::addPointToTmpStroke(GdkEventMotion * event) {
XOJ_CHECK_TYPE(InputHandler);
double zoom = xournal->getZoom();
double x = event->x / zoom;
double y = event->y / zoom;
bool presureSensitivity = xournal->getControl()->getSettings()->isPresureSensitivity();
if (tmpStroke->getPointCount() > 0) {
Point p = tmpStroke->getPoint(tmpStroke->getPointCount() - 1);
if (hypot(p.x - x, p.y - y) < PIXEL_MOTION_THRESHOLD) {
return; // not a meaningful motion
}
}
ToolHandler * h = xournal->getControl()->getToolHandler();
if (h->isRuler()) {
int count = tmpStroke->getPointCount();
if (count < 2) {
tmpStroke->addPoint(Point(x, y));
} else {
tmpStroke->setLastPoint(x, y);
}
Point p = tmpStroke->getPoint(0);
//Draw the initial stroke or else rerender it
//The rerenderelement is bugged up on Debian Squeeze
//Until this is fixed just repaint.
this->redrawable->rerenderElement(this->tmpStroke);
this->redrawable->repaintElement(this->tmpStroke);
return;
}
if (presureSensitivity) {
double pressure = Point::NO_PRESURE;
if (h->getToolType() == TOOL_PEN) {
if (getPressureMultiplier((GdkEvent *) event, pressure)) {
pressure = pressure * tmpStroke->getWidth();
} else {
pressure = Point::NO_PRESURE;
}
}
tmpStroke->setLastPressure(pressure);
}
tmpStroke->addPoint(Point(x, y));
drawTmpStroke();
}
示例3: gtk_xournal_motion_notify_event
gboolean gtk_xournal_motion_notify_event(GtkWidget * widget, GdkEventMotion * event) {
#ifdef INPUT_DEBUG
bool is_core = (event->device == gdk_device_get_core_pointer());
INPUTDBG("MotionNotify (%s) (x,y)=(%.2f,%.2f), modifier %x", is_core ? "core" : "xinput", event->x, event->y, event->state);
#endif
XInputUtils::fixXInputCoords((GdkEvent*) event, widget);
GtkXournal * xournal = GTK_XOURNAL(widget);
ToolHandler * h = xournal->view->getControl()->getToolHandler();
if (h->getToolType() == TOOL_HAND) {
if (xournal->inScrolling) {
gtk_xournal_scroll_mouse_event(xournal, event);
return true;
}
return false;
} else if (xournal->selection) {
EditSelection * selection = xournal->selection;
PageView * view = selection->getView();
GdkEventMotion ev = *event;
view->translateEvent((GdkEvent*) &ev, xournal->x, xournal->y);
if (xournal->selection->isMoving()) {
selection->mouseMove(ev.x, ev.y);
} else {
CursorSelectionType selType = selection->getSelectionTypeForPos(ev.x, ev.y, xournal->view->getZoom());
xournal->view->getCursor()->setMouseSelectionType(selType);
}
return true;
}
PageView * pv = gtk_xournal_get_page_view_for_pos_cached(xournal, event->x, event->y);
xournal->view->getCursor()->setInsidePage(pv != NULL);
if (pv) {
// allow events only to a single page!
if (xournal->currentInputPage == NULL || pv == xournal->currentInputPage) {
pv->translateEvent((GdkEvent*) event, xournal->x, xournal->y);
return pv->onMotionNotifyEvent(widget, event);;
}
}
return false;
}
示例4: change_tool
static bool change_tool(Settings* settings, GdkEventButton* event,
GtkXournal* xournal)
{
ButtonConfig* cfg = NULL;
ButtonConfig* cfgTouch = settings->getTouchButtonConfig();
ToolHandler* h = xournal->view->getControl()->getToolHandler();
if (event->button == 2) // Middle Button
{
cfg = settings->getMiddleButtonConfig();
}
else if (event->button == 3 && !xournal->selection) // Right Button
{
cfg = settings->getRightButtonConfig();
}
else if (event->device->source == GDK_SOURCE_ERASER)
{
cfg = settings->getEraserButtonConfig();
}
else if (cfgTouch->device == event->device->name)
{
cfg = cfgTouch;
// If an action is defined we do it, even if it's a drawing action...
if (cfg->getDisableDrawing() && cfg->getAction() == TOOL_NONE)
{
ToolType tool = h->getToolType();
if (tool == TOOL_PEN || tool == TOOL_ERASER || tool == TOOL_HILIGHTER)
{
printf("ignore touchscreen for drawing!\n");
return true;
}
}
}
if (cfg && cfg->getAction() != TOOL_NONE)
{
h->copyCurrentConfig();
cfg->acceptActions(h);
}
return false;
}
示例5: setMouseDown
void Cursor::setMouseDown(bool mouseDown)
{
XOJ_CHECK_TYPE(Cursor);
if (this->mouseDown == mouseDown)
{
return;
}
this->mouseDown = mouseDown;
ToolHandler* handler = control->getToolHandler();
ToolType type = handler->getToolType();
// Not always an update is needed
if (type == TOOL_HAND || type == TOOL_VERTICAL_SPACE)
{
updateCursor();
}
}
示例6: onButtonPressEvent
bool PageView::onButtonPressEvent(GtkWidget * widget, GdkEventButton * event) {
XOJ_CHECK_TYPE(PageView);
if ((event->state & (GDK_CONTROL_MASK | GDK_MOD1_MASK)) != 0) {
return false; // not handled here
}
if (!this->selected) {
xournal->getControl()->firePageSelected(this->page);
}
ToolHandler * h = xournal->getControl()->getToolHandler();
double x = event->x;
double y = event->y;
if ((x < 0 || y < 0) && !extendedWarningDisplayd && settings->isXinputEnabled()) {
GtkWidget * dialog = gtk_message_dialog_new((GtkWindow *) *xournal->getControl()->getWindow(), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR,
GTK_BUTTONS_NONE, _("There was a wrong input event, input is not working.\nDo you want to disable \"Extended Input\"?"));
gtk_dialog_add_button(GTK_DIALOG(dialog), "Disable \"Extended Input\"", 1);
gtk_dialog_add_button(GTK_DIALOG(dialog), "Cancel", 2);
this->extendedWarningDisplayd = true;
gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(this->xournal->getControl()->getWindow()->getWindow()));
if (gtk_dialog_run(GTK_DIALOG(dialog)) == 1) {
settings->setXinputEnabled(false);
xournal->updateXEvents();
}
gtk_widget_destroy(dialog);
return true;
}
double zoom = xournal->getZoom();
x /= zoom;
y /= zoom;
Cursor * cursor = xournal->getCursor();
cursor->setMouseDown(true);
if (h->getToolType() == TOOL_PEN) {
this->inputHandler->startStroke(event, STROKE_TOOL_PEN, x, y);
} else if (h->getToolType() == TOOL_HILIGHTER) {
this->inputHandler->startStroke(event, STROKE_TOOL_HIGHLIGHTER, x, y);
} else if (h->getToolType() == TOOL_ERASER) {
if (h->getEraserType() == ERASER_TYPE_WHITEOUT) {
this->inputHandler->startStroke(event, STROKE_TOOL_ERASER, x, y);
this->inputHandler->getTmpStroke()->setColor(0xffffff); // White
} else {
this->eraser->erase(x, y);
this->inEraser = true;
}
} else if (h->getToolType() == TOOL_VERTICAL_SPACE) {
this->verticalSpace = new VerticalToolHandler(this, this->page, y, zoom);
} else if (h->getToolType() == TOOL_SELECT_RECT || h->getToolType() == TOOL_SELECT_REGION || h->getToolType() == TOOL_SELECT_OBJECT) {
if (h->getToolType() == TOOL_SELECT_RECT) {
if (this->selection) {
delete this->selection;
this->selection = NULL;
repaintPage();
}
this->selection = new RectSelection(x, y, this);
} else if (h->getToolType() == TOOL_SELECT_REGION) {
if (this->selection) {
delete this->selection;
this->selection = NULL;
repaintPage();
}
this->selection = new RegionSelect(x, y, this);
} else if (h->getToolType() == TOOL_SELECT_OBJECT) {
selectObjectAt(x, y);
}
} else if (h->getToolType() == TOOL_TEXT) {
startText(x, y);
} else if (h->getToolType() == TOOL_IMAGE) {
ImageHandler imgHandler(xournal->getControl(), this);
imgHandler.insertImage(x, y);
}
return true;
}
示例7: gtk_xournal_button_press_event
gboolean gtk_xournal_button_press_event(GtkWidget* widget,
GdkEventButton* event)
{
/**
* true: Core event, false: XInput event
*/
gboolean isCore = (event->device == gdk_device_get_core_pointer());
INPUTDBG("ButtonPress (%s) (x,y)=(%.2f,%.2f), button %d, modifier %x, isCore %i",
gdk_device_get_name(event->device), event->x, event->y,
event->button, event->state, isCore);
GtkXournal* xournal = GTK_XOURNAL(widget);
Settings* settings = xournal->view->getControl()->getSettings();
if(isCore && settings->isXinputEnabled() && settings->isIgnoreCoreEvents())
{
INPUTDBG2("gtk_xournal_button_press_event return false (ignore core)");
return false;
}
XInputUtils::fixXInputCoords((GdkEvent*) event, widget);
if (event->type != GDK_BUTTON_PRESS)
{
INPUTDBG2("gtk_xournal_button_press_event return false (event->type != GDK_BUTTON_PRESS)");
return false; // this event is not handled here
}
if (event->button > 3) // scroll wheel events
{
XInputUtils::handleScrollEvent(event, widget);
INPUTDBG2("gtk_xournal_button_press_event return true handled scroll event");
return true;
}
gtk_widget_grab_focus(widget);
// none button release event was sent, send one now
if (xournal->currentInputPage)
{
INPUTDBG2("gtk_xournal_button_press_event (xournal->currentInputPage != NULL)");
GdkEventButton ev = *event;
xournal->currentInputPage->translateEvent((GdkEvent*) &ev, xournal->x,
xournal->y);
xournal->currentInputPage->onButtonReleaseEvent(widget, &ev);
}
ToolHandler* h = xournal->view->getControl()->getToolHandler();
// Change the tool depending on the key or device
if(change_tool(settings, event, xournal))
return true;
// hand tool don't change the selection, so you can scroll e.g.
// with your touchscreen without remove the selection
if (h->getToolType() == TOOL_HAND)
{
Cursor* cursor = xournal->view->getCursor();
cursor->setMouseDown(true);
xournal->lastMousePositionX = 0;
xournal->lastMousePositionY = 0;
xournal->inScrolling = true;
gtk_widget_get_pointer(widget, &xournal->lastMousePositionX,
&xournal->lastMousePositionY);
INPUTDBG2("gtk_xournal_button_press_event (h->getToolType() == TOOL_HAND) return true");
return true;
}
else if (xournal->selection)
{
EditSelection* selection = xournal->selection;
PageView* view = selection->getView();
GdkEventButton ev = *event;
view->translateEvent((GdkEvent*) &ev, xournal->x, xournal->y);
CursorSelectionType selType = selection->getSelectionTypeForPos(ev.x, ev.y,
xournal->view->getZoom());
if (selType)
{
if(selType == CURSOR_SELECTION_MOVE && event->button == 3)
{
selection->copySelection();
}
xournal->view->getCursor()->setMouseDown(true);
xournal->selection->mouseDown(selType, ev.x, ev.y);
INPUTDBG2("gtk_xournal_button_press_event (selection) return true");
return true;
}
else
{
xournal->view->clearSelection();
if(change_tool(settings, event, xournal))
return true;
}
}
//.........这里部分代码省略.........
示例8: gtk_xournal_button_press_event
gboolean gtk_xournal_button_press_event(GtkWidget * widget, GdkEventButton * event) {
/**
* true: Core event, false: XInput event
*/
gboolean isCore = (event->device == gdk_device_get_core_pointer());
INPUTDBG("ButtonPress (%s) (x,y)=(%.2f,%.2f), button %d, modifier %x, isCore %i", gdk_device_get_name(event->device), event->x, event->y,
event->button, event->state, isCore);
GtkXournal * xournal = GTK_XOURNAL(widget);
Settings * settings = xournal->view->getControl()->getSettings();
if(isCore && settings->isXinputEnabled() && settings->isIgnoreCoreEvents()) {
INPUTDBG2("gtk_xournal_button_press_event return false (ignore core)");
return false;
}
XInputUtils::fixXInputCoords((GdkEvent*) event, widget);
if (event->type != GDK_BUTTON_PRESS) {
INPUTDBG2("gtk_xournal_button_press_event return false (event->type != GDK_BUTTON_PRESS)");
return false; // this event is not handled here
}
if (event->button > 3) { // scroll wheel events
XInputUtils::handleScrollEvent(event, widget);
INPUTDBG2("gtk_xournal_button_press_event return true handled scroll event");
return true;
}
gtk_widget_grab_focus(widget);
ToolHandler * h = xournal->view->getControl()->getToolHandler();
// none button release event was sent, send one now
if (xournal->currentInputPage) {
INPUTDBG2("gtk_xournal_button_press_event (xournal->currentInputPage != NULL)");
GdkEventButton ev = *event;
xournal->currentInputPage->translateEvent((GdkEvent*) &ev, xournal->x, xournal->y);
xournal->currentInputPage->onButtonReleaseEvent(widget, &ev);
}
// Change the tool depending on the key or device
ButtonConfig * cfg = NULL;
ButtonConfig * cfgTouch = settings->getTouchButtonConfig();
if (event->button == 2) { // Middle Button
cfg = settings->getMiddleButtonConfig();
} else if (event->button == 3) { // Right Button
cfg = settings->getRightButtonConfig();
} else if (event->device->source == GDK_SOURCE_ERASER) {
cfg = settings->getEraserButtonConfig();
} else if (cfgTouch->device == event->device->name) {
cfg = cfgTouch;
// If an action is defined we do it, even if it's a drawing action...
if (cfg->getDisableDrawing() && cfg->getAction() == TOOL_NONE) {
ToolType tool = h->getToolType();
if (tool == TOOL_PEN || tool == TOOL_ERASER || tool == TOOL_HILIGHTER) {
printf("ignore touchscreen for drawing!\n");
return true;
}
}
}
if (cfg && cfg->getAction() != TOOL_NONE) {
h->copyCurrentConfig();
cfg->acceptActions(h);
}
// hand tool don't change the selection, so you can scroll e.g.
// with your touchscreen without remove the selection
if (h->getToolType() == TOOL_HAND) {
Cursor * cursor = xournal->view->getCursor();
cursor->setMouseDown(true);
xournal->lastMousePositionX = 0;
xournal->lastMousePositionY = 0;
xournal->inScrolling = true;
gtk_widget_get_pointer(widget, &xournal->lastMousePositionX, &xournal->lastMousePositionY);
INPUTDBG2("gtk_xournal_button_press_event (h->getToolType() == TOOL_HAND) return true");
return true;
} else if (xournal->selection) {
EditSelection * selection = xournal->selection;
PageView * view = selection->getView();
GdkEventButton ev = *event;
view->translateEvent((GdkEvent*) &ev, xournal->x, xournal->y);
CursorSelectionType selType = selection->getSelectionTypeForPos(ev.x, ev.y, xournal->view->getZoom());
if (selType) {
xournal->view->getCursor()->setMouseDown(true);
xournal->selection->mouseDown(selType, ev.x, ev.y);
INPUTDBG2("gtk_xournal_button_press_event (selection) return true");
return true;
} else {
xournal->view->clearSelection();
}
}
PageView * pv = gtk_xournal_get_page_view_for_pos_cached(xournal, event->x, event->y);
//.........这里部分代码省略.........
示例9: updateCursor
void Cursor::updateCursor()
{
XOJ_CHECK_TYPE(Cursor);
MainWindow* win = control->getWindow();
if (!win)
{
return;
}
XournalView* xournal = win->getXournal();
if (!xournal)
{
return;
}
GdkCursor* cursor = NULL;
if (this->busy)
{
cursor = gdk_cursor_new(GDK_WATCH);
}
else
{
ToolHandler* handler = control->getToolHandler();
ToolType type = handler->getToolType();
if (type == TOOL_HAND)
{
if (this->mouseDown)
{
cursor = gdk_cursor_new(GDK_FLEUR);
}
else
{
cursor = gdk_cursor_new(GDK_HAND1);
}
}
else if(!this->insidePage)
{
// not inside page: so use default cursor
}
else if (this->selectionType)
{
switch (this->selectionType)
{
case CURSOR_SELECTION_MOVE:
cursor = gdk_cursor_new(GDK_FLEUR);
break;
case CURSOR_SELECTION_TOP_LEFT:
cursor = gdk_cursor_new(GDK_TOP_LEFT_CORNER);
break;
case CURSOR_SELECTION_TOP_RIGHT:
cursor = gdk_cursor_new(GDK_TOP_RIGHT_CORNER);
break;
case CURSOR_SELECTION_BOTTOM_LEFT:
cursor = gdk_cursor_new(GDK_BOTTOM_LEFT_CORNER);
break;
case CURSOR_SELECTION_BOTTOM_RIGHT:
cursor = gdk_cursor_new(GDK_BOTTOM_RIGHT_CORNER);
break;
case CURSOR_SELECTION_LEFT:
case CURSOR_SELECTION_RIGHT:
cursor = gdk_cursor_new(GDK_SB_H_DOUBLE_ARROW);
break;
case CURSOR_SELECTION_TOP:
case CURSOR_SELECTION_BOTTOM:
cursor = gdk_cursor_new(GDK_SB_V_DOUBLE_ARROW);
break;
}
}
else if (type == TOOL_PEN)
{
cursor = getPenCursor();
}
else if (type == TOOL_ERASER)
{
GdkColor bg = { 0, 65535, 65535, 65535 };
GdkColor fg = { 0, 0, 0, 0 };
GdkPixmap* source = gdk_bitmap_create_from_data(NULL, (gchar*) CURSOR_HIGLIGHTER_BITS,
16, 16);
GdkPixmap* mask = gdk_bitmap_create_from_data(NULL, (gchar*) CURSOR_HILIGHTER_MASK,
16, 16);
cursor = gdk_cursor_new_from_pixmap(source, mask, &fg, &bg, 7, 7);
gdk_bitmap_unref(source);
gdk_bitmap_unref(mask);
}
else if (type == TOOL_HILIGHTER)
{
GdkColor fg = { 0, 0, 0, 0 };
GdkColor bg = handler->getGdkColor();
GdkPixmap* source = gdk_bitmap_create_from_data(NULL, (gchar*) CURSOR_HIGLIGHTER_BITS,
16, 16);
GdkPixmap* mask = gdk_bitmap_create_from_data(NULL, (gchar*) CURSOR_HILIGHTER_MASK,
16, 16);
cursor = gdk_cursor_new_from_pixmap(source, mask, &fg, &bg, 7, 7);
gdk_bitmap_unref(source);
gdk_bitmap_unref(mask);
}
//.........这里部分代码省略.........
示例10: changeTool
/**
* Change the tool according to the device and button
* @return true to ignore event
*/
bool InputSequence::changeTool()
{
XOJ_CHECK_TYPE(InputSequence);
Settings* settings = inputHandler->getSettings();
ButtonConfig* cfgTouch = settings->getTouchButtonConfig();
ToolHandler* h = inputHandler->getToolHandler();
GtkXournal* xournal = inputHandler->getXournal();
ButtonConfig* cfg = NULL;
if (gdk_device_get_source(device) == GDK_SOURCE_PEN)
{
penDevice = true;
if (button == 2)
{
cfg = settings->getStylusButton1Config();
}
else if (button == 3)
{
cfg = settings->getStylusButton2Config();
}
}
else if (button == 2 /* Middle Button */ && !xournal->selection)
{
cfg = settings->getMiddleButtonConfig();
}
else if (button == 3 /* Right Button */ && !xournal->selection)
{
cfg = settings->getRightButtonConfig();
}
else if (gdk_device_get_source(device) == GDK_SOURCE_ERASER)
{
penDevice = true;
cfg = settings->getEraserButtonConfig();
}
else if (cfgTouch->device == gdk_device_get_name(device))
{
cfg = cfgTouch;
// If an action is defined we do it, even if it's a drawing action...
if (cfg->getDisableDrawing() && cfg->getAction() == TOOL_NONE)
{
ToolType tool = h->getToolType();
if (tool == TOOL_PEN || tool == TOOL_ERASER || tool == TOOL_HILIGHTER)
{
g_message("ignore touchscreen for drawing!\n");
return true;
}
}
}
if (cfg && cfg->getAction() != TOOL_NONE)
{
h->copyCurrentConfig();
cfg->acceptActions(h);
}
else
{
h->restoreLastConfig();
}
return false;
}
示例11: actionStart
/**
* Mouse / Pen down / touch start
*/
bool InputSequence::actionStart(guint32 time)
{
XOJ_CHECK_TYPE(InputSequence);
this->eventTime = time;
inputHandler->focusWidget();
checkCanStartInput();
if (!inputRunning)
{
return false;
}
// none button release event was sent, send one now
// only for this device, other devices may still have unfinished input
if (currentInputPage)
{
PositionInputData pos = getInputDataRelativeToCurrentPage(currentInputPage);
currentInputPage->onButtonReleaseEvent(pos);
}
// Change the tool depending on the key or device
if (changeTool())
{
return true;
}
GtkXournal* xournal = inputHandler->getXournal();
// hand tool don't change the selection, so you can scroll e.g.
// with your touchscreen without remove the selection
ToolHandler* h = inputHandler->getToolHandler();
if (h->getToolType() == TOOL_HAND)
{
XournalppCursor* cursor = xournal->view->getCursor();
cursor->setMouseDown(true);
inScrolling = true;
// set reference
lastMousePositionX = rootX;
lastMousePositionY = rootY;
return true;
}
else if (xournal->selection)
{
EditSelection* selection = xournal->selection;
XojPageView* view = selection->getView();
PositionInputData pos = getInputDataRelativeToCurrentPage(view);
CursorSelectionType selType = selection->getSelectionTypeForPos(pos.x, pos.y, xournal->view->getZoom());
if (selType)
{
if (selType == CURSOR_SELECTION_MOVE && button == 3)
{
selection->copySelection();
}
xournal->view->getCursor()->setMouseDown(true);
xournal->selection->mouseDown(selType, pos.x, pos.y);
return true;
}
else
{
xournal->view->clearSelection();
if (changeTool())
{
return true;
}
}
}
XojPageView* pv = getPageAtCurrentPosition();
current_view = pv;
if (pv)
{
currentInputPage = pv;
PositionInputData pos = getInputDataRelativeToCurrentPage(pv);
return pv->onButtonPressEvent(pos);
}
// not handled
return false;
}
示例12: actionMoved
/**
* Mouse / Pen / Touch move
*/
bool InputSequence::actionMoved(guint32 time)
{
XOJ_CHECK_TYPE(InputSequence);
GtkXournal* xournal = inputHandler->getXournal();
ToolHandler* h = inputHandler->getToolHandler();
this->eventTime = time;
changeTool();
if (xournal->view->getControl()->getWindow()->isGestureActive())
{
return false;
}
if (h->getToolType() == TOOL_HAND)
{
if (inScrolling)
{
handleScrollEvent();
return true;
}
return false;
}
else if (xournal->selection)
{
EditSelection* selection = xournal->selection;
XojPageView* view = selection->getView();
PositionInputData pos = getInputDataRelativeToCurrentPage(view);
if (xournal->selection->isMoving())
{
selection->mouseMove(pos.x, pos.y);
}
else
{
CursorSelectionType selType = selection->getSelectionTypeForPos(pos.x, pos.y, xournal->view->getZoom());
xournal->view->getCursor()->setMouseSelectionType(selType);
}
return true;
}
XojPageView* pv = NULL;
if (current_view)
{
pv = current_view;
}
else
{
pv = getPageAtCurrentPosition();
}
xournal->view->getCursor()->setInsidePage(pv != NULL);
if (pv && inputRunning)
{
// allow events only to a single page!
if (currentInputPage == NULL || pv == currentInputPage)
{
PositionInputData pos = getInputDataRelativeToCurrentPage(pv);
return pv->onMotionNotifyEvent(pos);
}
}
return false;
}