From 94182ec220ca5fce1c940a56f6959e68d566633c Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Date: Sun, 27 Oct 2019 19:50:50 +0100 Subject: [PATCH] Remove delay on desktop switch --- src/display/sp-canvas.cpp | 33 +++++++++------------------------ src/display/sp-canvas.h | 1 - src/ui/tools/tool-base.cpp | 3 --- 3 files changed, 9 insertions(+), 28 deletions(-) diff --git a/src/display/sp-canvas.cpp b/src/display/sp-canvas.cpp index 8bc0daaa38..a2901741ad 100644 --- a/src/display/sp-canvas.cpp +++ b/src/display/sp-canvas.cpp @@ -1020,7 +1020,6 @@ static void sp_canvas_init(SPCanvas *canvas) canvas->_inside = false; // this could be wrong on start but we update it as far we bo to the other side. canvas->_splits = 0; canvas->_forcefull = false; - canvas->_delayrendering = 0; canvas->_totalelapsed = 0; canvas->_scrooling = false; canvas->_idle_time = g_get_monotonic_time(); @@ -1175,7 +1174,6 @@ void SPCanvas::handle_get_preferred_height(GtkWidget *widget, gint *minimum_heig void SPCanvas::handle_size_allocate(GtkWidget *widget, GtkAllocation *allocation) { SPCanvas *canvas = SP_CANVAS (widget); - canvas->_delayrendering = 20; // Allocation does not depend on device scale. GtkAllocation old_allocation; gtk_widget_get_allocation(widget, &old_allocation); @@ -2085,13 +2083,6 @@ int SPCanvas::paintRectInternal(PaintRectSetup const *setup, Geom::IntRect const gint64 now = g_get_monotonic_time(); gint64 elapsed = now - setup->start_time; - // if we do canvas resize or panning we want the canvas not redraw in enought times - // to make a smooth response. - if (_delayrendering != 0) { - --_delayrendering; - return false; - } - // Allow only very fast buffers to be run together; // as soon as the total redraw time exceeds 1ms, cancel; // this returns control to the idle loop and allows Inkscape to process user input @@ -2556,12 +2547,10 @@ gint SPCanvas::idle_handler(gpointer data) static int totaloops = 1; gint64 now = 0; gint64 elapsed = 0; - if (!canvas->_delayrendering) { - now = g_get_monotonic_time(); - elapsed = now - canvas->_idle_time; - g_message("[%i] start loop %i in split %i at %f", canvas->_idle_id, totaloops, canvas->_splits, - canvas->_totalelapsed / (double)1000000 + elapsed / (double)1000000); - } + now = g_get_monotonic_time(); + elapsed = now - canvas->_idle_time; + g_message("[%i] start loop %i in split %i at %f", canvas->_idle_id, totaloops, canvas->_splits, + canvas->_totalelapsed / (double)1000000 + elapsed / (double)1000000); #endif int ret = canvas->doUpdate(); int n_rects = cairo_region_num_rectangles(canvas->_clean_region); @@ -2570,20 +2559,17 @@ gint SPCanvas::idle_handler(gpointer data) } #ifdef DEBUG_PERFORMANCE - if (ret == 0 && !canvas->_delayrendering) { - now = g_get_monotonic_time(); - elapsed = now - canvas->_idle_time; - g_message("[%i] loop ended unclean at %f", canvas->_idle_id, - canvas->_totalelapsed / (double)1000000 + elapsed / (double)1000000); - } - if (ret == 0 && !canvas->_delayrendering) { + now = g_get_monotonic_time(); + elapsed = now - canvas->_idle_time; + g_message("[%i] loop ended unclean at %f", canvas->_idle_id, + canvas->_totalelapsed / (double)1000000 + elapsed / (double)1000000); + if (ret == 0) { totaloops += 1; } if (ret) { // Reset idle id canvas->_scrooling = false; canvas->_forcefull = false; - canvas->_delayrendering = 0; now = g_get_monotonic_time(); elapsed = now - canvas->_idle_time; canvas->_totalelapsed += elapsed; @@ -2612,7 +2598,6 @@ gint SPCanvas::idle_handler(gpointer data) canvas->_idle_id = 0; canvas->_scrooling = false; canvas->_forcefull = false; - canvas->_delayrendering = 0; #endif } return !ret; diff --git a/src/display/sp-canvas.h b/src/display/sp-canvas.h index 2d64534db0..770a04765d 100644 --- a/src/display/sp-canvas.h +++ b/src/display/sp-canvas.h @@ -209,7 +209,6 @@ public: int _y0; ///< World coordinate of the topmost pixels of window bool _forcefull; bool _scrooling; - int _delayrendering; int _device_scale; ///< Scale for high DPI montiors gint64 _idle_time; int _splits; diff --git a/src/ui/tools/tool-base.cpp b/src/ui/tools/tool-base.cpp index e96797386b..eb2f2119a2 100644 --- a/src/ui/tools/tool-base.cpp +++ b/src/ui/tools/tool-base.cpp @@ -455,9 +455,6 @@ bool ToolBase::root_handler(GdkEvent* event) { break; case GDK_MOTION_NOTIFY: - if (this->space_panning) { - this->desktop->canvas->_delayrendering = 20; - } if (panning) { if (panning == 4 && !xp && !yp ) { // + mouse panning started, save location and grab canvas -- GitLab