summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabiertxof <jabier.arraiza@marker.es>2018-11-13 18:16:18 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2018-12-01 16:17:15 +0000
commit138592aa56cfa2fc4fddcb016bb3186613f2f73b (patch)
treea74383e1cff281300bf03e2f9098cedcfd572950 /src
parentAdd actions and cleanup cairo draw (diff)
downloadinkscape-138592aa56cfa2fc4fddcb016bb3186613f2f73b.tar.gz
inkscape-138592aa56cfa2fc4fddcb016bb3186613f2f73b.zip
Add some Martin fixes and UX improvements
Diffstat (limited to 'src')
-rw-r--r--src/desktop.cpp9
-rw-r--r--src/desktop.h4
-rw-r--r--src/display/sp-canvas.cpp130
-rw-r--r--src/display/sp-canvas.h6
-rw-r--r--src/widgets/desktop-widget.cpp12
-rw-r--r--src/widgets/desktop-widget.h1
6 files changed, 46 insertions, 116 deletions
diff --git a/src/desktop.cpp b/src/desktop.cpp
index ad9c2efbd..a6bd3ef83 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -937,7 +937,7 @@ SPDesktop::get_vruler_thickness()
}
guint
-SPDesktop::get_hscrool_thickness()
+SPDesktop::get_hscroll_thickness()
{
Gtk::Window *parent = getToplevel();
if (parent) {
@@ -950,7 +950,7 @@ SPDesktop::get_hscrool_thickness()
}
guint
-SPDesktop::get_vscrool_thickness()
+SPDesktop::get_vscroll_thickness()
{
Gtk::Window *parent = getToplevel();
if (parent) {
@@ -964,8 +964,8 @@ SPDesktop::get_vscrool_thickness()
int get_hruler_thickness();
int get_vruler_thickness();
- int get_vscrool_thickness();
- int get_hscrool_thickness();
+ int get_vscroll_thickness();
+ int get_hscroll_thickness();
/**
* Zoom keeping the point 'c' fixed in the desktop window.
@@ -1612,7 +1612,6 @@ void SPDesktop::toggleSplitMode()
prefs->setBool("/window/splitcanvas/inverse", false);
prefs->setDouble("/window/splitcanvas/value", 0.5);
SPDesktopWidget *dtw = static_cast<SPDesktopWidget *>(parent->get_data("desktopwidget"));
- dtw->splitCanvas(_split_canvas);
GtkAllocation allocation;
gtk_widget_get_allocation(GTK_WIDGET(dtw->canvas), &allocation);
SPCanvas * canvas = getCanvas();
diff --git a/src/desktop.h b/src/desktop.h
index 1d291bea5..17b34b1a2 100644
--- a/src/desktop.h
+++ b/src/desktop.h
@@ -440,8 +440,8 @@ public:
void mouseout() override {}
guint get_hruler_thickness();
guint get_vruler_thickness();
- guint get_vscrool_thickness();
- guint get_hscrool_thickness();
+ guint get_vscroll_thickness();
+ guint get_hscroll_thickness();
virtual bool onDeleteUI (GdkEventAny*);
virtual bool onWindowStateEvent (GdkEventWindowState* event);
diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp
index 7cb7daf97..d61489863 100644
--- a/src/display/sp-canvas.cpp
+++ b/src/display/sp-canvas.cpp
@@ -981,10 +981,8 @@ static void sp_canvas_init(SPCanvas *canvas)
canvas->_forced_redraw_count = 0;
canvas->_forced_redraw_limit = -1;
- canvas->_oversplit_top = false;
- canvas->_oversplit_bottom = false;
- canvas->_oversplit_left = false;
- canvas->_oversplit_right = false;
+ canvas->_oversplit_vertical = false;
+ canvas->_oversplit_horizontal = false;
canvas->_spliter = Geom::OptIntRect();
canvas->_spliter = Geom::OptIntRect();
canvas->_spliter_control = Geom::OptIntRect();
@@ -1263,21 +1261,9 @@ int SPCanvas::emitEvent(GdkEvent *event)
ev->crossing.y += _y0;
break;
case GDK_MOTION_NOTIFY:
- ev->motion.x += _x0;
- ev->motion.y += _y0;
- break;
case GDK_BUTTON_PRESS:
- ev->motion.x += _x0;
- ev->motion.y += _y0;
- break;
case GDK_2BUTTON_PRESS:
- ev->motion.x += _x0;
- ev->motion.y += _y0;
- break;
case GDK_3BUTTON_PRESS:
- ev->motion.x += _x0;
- ev->motion.y += _y0;
- break;
case GDK_BUTTON_RELEASE:
ev->motion.x += _x0;
ev->motion.y += _y0;
@@ -1563,25 +1549,15 @@ gint SPCanvas::handle_button(GtkWidget *widget, GdkEventButton *event)
bool spliter_clicked = false;
bool reset = false;
if (!canvas->_splitdragging) {
- if(canvas->_oversplit_top) {
+ if(canvas->_oversplit_vertical) {
+ prefs->setBool("/window/splitcanvas/inverse", !inverse);
prefs->setBool("/window/splitcanvas/vertical", false);
- prefs->setBool("/window/splitcanvas/inverse", true);
reset = vertical? true: false;
spliter_clicked = true;
- } else if (canvas->_oversplit_bottom) {
- prefs->setBool("/window/splitcanvas/vertical", false);
- prefs->setBool("/window/splitcanvas/inverse", false);
- reset = vertical? true: false;
- spliter_clicked = true;
- } else if (canvas->_oversplit_left) {
+ } else if (canvas->_oversplit_horizontal) {
+ prefs->setBool("/window/splitcanvas/inverse", !inverse);
prefs->setBool("/window/splitcanvas/vertical", true);
- prefs->setBool("/window/splitcanvas/inverse", true);
- reset = vertical? false : true;
- spliter_clicked = true;
- } else if (canvas->_oversplit_right) {
- prefs->setBool("/window/splitcanvas/vertical", true);
- prefs->setBool("/window/splitcanvas/inverse", false);
- reset = vertical? false : true;
+ reset = !vertical? true: false;
spliter_clicked = true;
}
if (spliter_clicked) {
@@ -1629,8 +1605,7 @@ void SPCanvas::set_cursor(GtkWidget *widget)
if (desktop && desktop->splitMode()) {
GdkDisplay *display = gdk_display_get_default();
GdkCursor *cursor = nullptr;
- if (canvas->_oversplit_top)
- {
+ if (canvas->_oversplit_vertical) {
if (canvas->_changecursor != 1) {
cursor = gdk_cursor_new_from_name (display, "pointer");
gdk_window_set_cursor (gtk_widget_get_window(widget), cursor);
@@ -1638,7 +1613,7 @@ void SPCanvas::set_cursor(GtkWidget *widget)
canvas->paintSpliter();
}
canvas->_changecursor = 1;
- } else if (canvas->_oversplit_bottom) {
+ } else if (canvas->_oversplit_horizontal) {
if (canvas->_changecursor != 2) {
cursor = gdk_cursor_new_from_name (display, "pointer");
gdk_window_set_cursor (gtk_widget_get_window(widget), cursor);
@@ -1646,24 +1621,8 @@ void SPCanvas::set_cursor(GtkWidget *widget)
canvas->paintSpliter();
}
canvas->_changecursor = 2;
- } else if (canvas->_oversplit_left) {
- if (canvas->_changecursor != 3) {
- cursor = gdk_cursor_new_from_name (display, "pointer");
- gdk_window_set_cursor (gtk_widget_get_window(widget), cursor);
- g_object_unref (cursor);
- canvas->paintSpliter();
- }
- canvas->_changecursor = 3;
- } else if (canvas->_oversplit_right) {
- if (canvas->_changecursor != 4) {
- cursor = gdk_cursor_new_from_name (display, "pointer");
- gdk_window_set_cursor (gtk_widget_get_window(widget), cursor);
- g_object_unref (cursor);
- canvas->paintSpliter();
- }
- canvas->_changecursor = 4;
} else if (canvas->_oversplit) {
- if (canvas->_changecursor != 5) {
+ if (canvas->_changecursor != 3) {
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
bool vertical = prefs->getBool("/window/splitcanvas/vertical", true);
if(vertical) {
@@ -1675,16 +1634,13 @@ void SPCanvas::set_cursor(GtkWidget *widget)
g_object_unref (cursor);
canvas->paintSpliter();
}
- canvas->_changecursor = 5;
+ canvas->_changecursor = 3;
} else {
- if (desktop && desktop->event_context && !canvas->_splitpressed && canvas->_changecursor != 6) {
+ if (desktop && desktop->event_context && !canvas->_splitpressed && canvas->_changecursor != 4) {
desktop->event_context->sp_event_context_update_cursor();
canvas->paintSpliter();
}
- canvas->_changecursor = 6;
- }
- if(canvas->_splitpressed) {
- canvas->paintSpliter();
+ canvas->_changecursor = 4;
}
}
}
@@ -1711,26 +1667,28 @@ int SPCanvas::handle_motion(GtkWidget *widget, GdkEventMotion *event)
} else {
canvas->_oversplit = false;
}
- if (canvas->_spliter_top && (*canvas->_spliter_top).contains(cursor_pos) && !canvas->_is_dragging) {
- canvas->_oversplit_top = true;
- } else {
- canvas->_oversplit_top = false;
- }
- if (canvas->_spliter_bottom && (*canvas->_spliter_bottom).contains(cursor_pos) && !canvas->_is_dragging) {
- canvas->_oversplit_bottom = true;
- } else {
- canvas->_oversplit_bottom = false;
- }
- if (canvas->_spliter_left && (*canvas->_spliter_left).contains(cursor_pos) && !canvas->_is_dragging) {
- canvas->_oversplit_left = true;
+ if (canvas->_spliter_left &&
+ canvas->_spliter_right &&
+ ((*canvas->_spliter_left).contains(cursor_pos) ||
+ (*canvas->_spliter_right).contains(cursor_pos)) &&
+ !canvas->_is_dragging)
+ {
+ canvas->_oversplit_horizontal = true;
} else {
- canvas->_oversplit_left = false;
- }
- if (canvas->_spliter_right && (*canvas->_spliter_right).contains(cursor_pos) && !canvas->_is_dragging) {
- canvas->_oversplit_right = true;
+ canvas->_oversplit_horizontal = false;
+ }
+ if (!canvas->_oversplit_horizontal &&
+ canvas->_spliter_top &&
+ canvas->_spliter_bottom &&
+ ((*canvas->_spliter_top).contains(cursor_pos) ||
+ (*canvas->_spliter_bottom).contains(cursor_pos)) &&
+ !canvas->_is_dragging)
+ {
+ canvas->_oversplit_vertical = true;
} else {
- canvas->_oversplit_right = false;
+ canvas->_oversplit_vertical = false;
}
+
canvas->set_cursor(widget);
if (canvas->_splitpressed) {
GtkAllocation allocation;
@@ -1744,10 +1702,8 @@ int SPCanvas::handle_motion(GtkWidget *widget, GdkEventMotion *event)
desktop->toggleSplitMode();
canvas->_splitpressed = false;
canvas->_oversplit = false;
- canvas->_oversplit_top = false;
- canvas->_oversplit_bottom = false;
- canvas->_oversplit_left = false;
- canvas->_oversplit_right = false;
+ canvas->_oversplit_vertical = false;
+ canvas->_oversplit_horizontal = false;
}
} else {
prefs->setDouble("/window/splitcanvas/value", value);
@@ -1940,41 +1896,31 @@ void SPCanvas::paintSpliter()
cairo_line_to(ct, 20,2.630586);
cairo_line_to(ct, 24.769272,10.891209);
cairo_close_path(ct);
- if (canvas->_oversplit_top) {
+ if (canvas->_oversplit_vertical) {
cairo_set_source_rgba (ct, 0.90, 0.90, 0.90, 1);
} else {
- cairo_set_source_rgba (ct, 0.7, 0.7, 0.7, 1);
+ cairo_set_source_rgba (ct, 0.6, 0.6, 0.6, 1);
}
cairo_fill(ct);
cairo_move_to(ct, 15.230728,29.03051);
cairo_line_to(ct, 20,37.29113);
cairo_line_to(ct, 24.769272,29.030509);
cairo_close_path(ct);
- if (canvas->_oversplit_bottom) {
- cairo_set_source_rgba (ct, 0.90, 0.90, 0.90, 1);
- } else {
- cairo_set_source_rgba (ct, 0.7, 0.7, 0.7, 1);
- }
cairo_fill(ct);
cairo_move_to(ct, 11.109859,15.230724);
cairo_line_to(ct, 2.8492384,19.999997);
cairo_line_to(ct, 11.109861,24.769269);
cairo_close_path(ct);
- if (canvas->_oversplit_left) {
+ if (canvas->_oversplit_horizontal) {
cairo_set_source_rgba (ct, 0.90, 0.90, 0.90, 1);
} else {
- cairo_set_source_rgba (ct, 0.7, 0.7, 0.7, 1);
+ cairo_set_source_rgba (ct, 0.6, 0.6, 0.6, 1);
}
cairo_fill(ct);
cairo_move_to(ct, 29.249158,15.230724);
cairo_line_to(ct, 37.509779,19.999997);
cairo_line_to(ct, 29.249158,24.769269);
cairo_close_path(ct);
- if (canvas->_oversplit_right) {
- cairo_set_source_rgba (ct, 0.90, 0.90, 0.90, 1);
- } else {
- cairo_set_source_rgba (ct, 0.7, 0.7, 0.7, 1);
- }
cairo_fill(ct);
cairo_scale(ct, 1/ds, 1/ds);
cairo_translate(ct, -middle[0]-(20 * ds), -middle[1]-(20 * ds));
diff --git a/src/display/sp-canvas.h b/src/display/sp-canvas.h
index 045df291a..d58a93dc0 100644
--- a/src/display/sp-canvas.h
+++ b/src/display/sp-canvas.h
@@ -183,10 +183,8 @@ public:
Geom::OptIntRect _spliter_bottom;
Geom::OptIntRect _spliter_left;
Geom::OptIntRect _spliter_right;
- bool _oversplit_top;
- bool _oversplit_bottom;
- bool _oversplit_left;
- bool _oversplit_right;
+ bool _oversplit_vertical;
+ bool _oversplit_horizontal;
bool _is_dragging;
bool _oversplit;
bool _splitpressed;
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp
index d5192db4b..6a69907ce 100644
--- a/src/widgets/desktop-widget.cpp
+++ b/src/widgets/desktop-widget.cpp
@@ -781,18 +781,6 @@ SPDesktopWidget::dispose(GObject *object)
}
}
-void
-SPDesktopWidget::splitCanvas(bool split)
-{
- if(split) {
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- double split_x = prefs->getDoubleLimited("/window/splitcanvas/x", 0.5, 0, 1);
- double split_y = prefs->getDoubleLimited("/window/splitcanvas/y", 1 , 0, 1);
- int width = gtk_widget_get_allocated_width(GTK_WIDGET(this->canvas));
- int height = gtk_widget_get_allocated_height(GTK_WIDGET(this->canvas));
- } else {
- }
-}
/**
* Set the title in the desktop-window (if desktop has an own window).
*
diff --git a/src/widgets/desktop-widget.h b/src/widgets/desktop-widget.h
index ec454eb4f..198fd23c6 100644
--- a/src/widgets/desktop-widget.h
+++ b/src/widgets/desktop-widget.h
@@ -253,7 +253,6 @@ public:
void requestCanvasUpdateAndWait();
void enableInteraction();
void disableInteraction();
- void splitCanvas(bool split);
void updateTitle(gchar const *uri);
bool onFocusInEvent(GdkEventFocus*);