desktop-events.cpp revision d262df351f32b4f6bb9964ca9ff04bb3e37b968f
0N/A#ifdef HAVE_CONFIG_H
868N/A#include "desktop-handles.h"
0N/A#include "dialogs/dialog-events.h"
0N/A#include "display/canvas-axonomgrid.h"
0N/A#include "display/canvas-grid.h"
0N/A#include "display/guideline.h"
0N/A#include "display/snap-indicator.h"
0N/A#include "document.h"
0N/A#include "event-context.h"
0N/A#include "helper/unit-menu.h"
0N/A#include "message-context.h"
338N/A#include "preferences.h"
0N/A#include "sp-guide.h"
338N/A#include "sp-metrics.h"
0N/A#include "sp-namedview.h"
0N/A#include "tools-switch.h"
0N/A#include "widgets/desktop-widget.h"
0N/Astatic void init_extended();
0N/Astatic gint sp_dt_ruler_event(GtkWidget *widget, GdkEvent *event, SPDesktopWidget *dtw, bool horiz)
0N/A gdk_window_get_geometry(gtk_widget_get_window (GTK_WIDGET(dtw->canvas)), NULL /*x*/, NULL /*y*/, &width, &height, NULL/*depth*/);
0N/A case GDK_BUTTON_PRESS:
0N/A case GDK_MOTION_NOTIFY:
0N/A case GDK_BUTTON_RELEASE:
0N/A sp_event_context_snap_delay_handler(dtw->desktop->event_context, (gpointer) widget, (gpointer) dtw, (GdkEventMotion *)event, DelayedSnapEvent::GUIDE_HRULER);
0N/A sp_event_context_snap_delay_handler(dtw->desktop->event_context, (gpointer) widget, (gpointer) dtw, (GdkEventMotion *)event, DelayedSnapEvent::GUIDE_VRULER);
0N/A//static bool reset_drag_origin = false; // when Ctrl is pressed while dragging, this is used to trigger resetting of the
0N/A SPDesktop *desktop = static_cast<SPDesktop*>(g_object_get_data(G_OBJECT(item->canvas), "SPDesktop"));
0N/A case GDK_2BUTTON_PRESS:
0N/A case GDK_BUTTON_PRESS:
0N/A case GDK_MOTION_NOTIFY:
sp_event_context_snap_delay_handler(desktop->event_context, (gpointer) item, data, (GdkEventMotion *)event, DelayedSnapEvent::GUIDE_HANDLER);
Geom::Point origin = (drag_type == SP_DRAG_ROTATE) ? guide->point_on_line : Geom::rot90(guide->normal_to_line);
m.unSetup();
switch (drag_type) {
case SP_DRAG_TRANSLATE:
case SP_DRAG_ROTATE:
if (snaps) {
if (relative_snaps) {
case SP_DRAG_MOVE_ORIGIN:
case SP_DRAG_NONE:
moved = true;
case GDK_BUTTON_RELEASE:
if (moved) {
Geom::Point origin = (drag_type == SP_DRAG_ROTATE) ? guide->point_on_line : Geom::rot90(guide->normal_to_line);
m.unSetup();
switch (drag_type) {
case SP_DRAG_TRANSLATE:
case SP_DRAG_ROTATE:
if (snaps) {
if (relative_snaps) {
case SP_DRAG_MOVE_ORIGIN:
case SP_DRAG_NONE:
moved = false;
case GDK_ENTER_NOTIFY:
gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(sp_desktop_canvas(desktop))), guide_cursor);
desktop->guidesMessageContext()->setF(Inkscape::NORMAL_MESSAGE, _("<b>Guideline</b>: %s"), guide_description);
case GDK_LEAVE_NOTIFY:
gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(sp_desktop_canvas(desktop))), desktop->event_context->cursor);
case GDK_KEY_PRESS:
case GDK_Delete:
case GDK_KP_Delete:
case GDK_BackSpace:
case GDK_Shift_L:
case GDK_Shift_R:
gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(sp_desktop_canvas(desktop))), guide_cursor);
case GDK_KEY_RELEASE:
case GDK_Shift_L:
case GDK_Shift_R:
gdk_window_set_cursor(gtk_widget_get_window (GTK_WIDGET(sp_desktop_canvas(desktop))), guide_cursor);
return ret;
static void init_extended()
if ( devices ) {
if ( devName
switch ( devSrc ) {
case GDK_SOURCE_PEN:
case GDK_SOURCE_ERASER:
case GDK_SOURCE_CURSOR:
case GDK_MOTION_NOTIFY:
case GDK_BUTTON_PRESS:
case GDK_2BUTTON_PRESS:
case GDK_3BUTTON_PRESS:
case GDK_BUTTON_RELEASE:
case GDK_SCROLL:
case GDK_PROXIMITY_IN:
case GDK_PROXIMITY_OUT:
//g_message("Changed device %s -> %s", lastName.c_str(), name.c_str());