From 511d2969395530aeecc6bc65502da846cd6f62a6 Mon Sep 17 00:00:00 2001 From: tobidot <16611056+idotobi@users.noreply.github.com> Date: Wed, 6 May 2020 18:02:13 +0200 Subject: [PATCH 1/2] Implement Pen/Highlighter Cursor correct size This Commit changes the Pen/Highlighter Cursor to have the form of a circle (via `cairo_arc`) and also uses the set size to give a correct impression on how big the line one is about to draw is. --- src/gui/XournalppCursor.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gui/XournalppCursor.cpp b/src/gui/XournalppCursor.cpp index f8a7e178..f53799fa 100644 --- a/src/gui/XournalppCursor.cpp +++ b/src/gui/XournalppCursor.cpp @@ -421,9 +421,10 @@ auto XournalppCursor::createHighlighterOrPenCursor(int size, double alpha) -> Gd cairo_stroke(cr); } + cairo_set_source_rgba(cr, r, g, b, alpha); - // Correct the offset of the coloured dot for big-cursor mode - cairo_rectangle(cr, centerX, centerY, size, size); + double cursorSize = control->getToolHandler()->getThickness() * control->getZoomControl()->getZoom(); + cairo_arc(cr, centerX, centerY, cursorSize/2., 0, 2. * M_PI); cairo_fill(cr); cairo_destroy(cr); GdkPixbuf* pixbuf = xoj_pixbuf_get_from_surface(crCursor, 0, 0, width, height); From 64c5c979c00b9d21069906e146ec1bd509ea4d8b Mon Sep 17 00:00:00 2001 From: tobidot <16611056+idotobi@users.noreply.github.com> Date: Wed, 6 May 2020 18:21:54 +0200 Subject: [PATCH 2/2] Make previous commit clang conform --- src/gui/XournalppCursor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/XournalppCursor.cpp b/src/gui/XournalppCursor.cpp index f53799fa..e7a2b841 100644 --- a/src/gui/XournalppCursor.cpp +++ b/src/gui/XournalppCursor.cpp @@ -424,7 +424,7 @@ auto XournalppCursor::createHighlighterOrPenCursor(int size, double alpha) -> Gd cairo_set_source_rgba(cr, r, g, b, alpha); double cursorSize = control->getToolHandler()->getThickness() * control->getZoomControl()->getZoom(); - cairo_arc(cr, centerX, centerY, cursorSize/2., 0, 2. * M_PI); + cairo_arc(cr, centerX, centerY, cursorSize / 2., 0, 2. * M_PI); cairo_fill(cr); cairo_destroy(cr); GdkPixbuf* pixbuf = xoj_pixbuf_get_from_surface(crCursor, 0, 0, width, height);