diff options
| author | John Bintz <me@johnbintz.com> | 2006-08-13 17:45:18 +0000 |
|---|---|---|
| committer | johncoswell <johncoswell@users.sourceforge.net> | 2006-08-13 17:45:18 +0000 |
| commit | addfca5cf637c0fe78d5bdeb2cb122f1f77131f8 (patch) | |
| tree | 88d085d9e6083b9f07ca5d2a0230948e49ab8955 /src/ui | |
| parent | Fixed: Wrong colour space was used in images with transparency. (diff) | |
| download | inkscape-addfca5cf637c0fe78d5bdeb2cb122f1f77131f8.tar.gz inkscape-addfca5cf637c0fe78d5bdeb2cb122f1f77131f8.zip | |
added functions to allow update events to process during long-running operations
(bzr r1595)
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/view/edit-widget-interface.h | 3 | ||||
| -rw-r--r-- | src/ui/view/edit-widget.cpp | 9 | ||||
| -rw-r--r-- | src/ui/view/edit-widget.h | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/src/ui/view/edit-widget-interface.h b/src/ui/view/edit-widget-interface.h index 689eff4a7..605c72b59 100644 --- a/src/ui/view/edit-widget-interface.h +++ b/src/ui/view/edit-widget-interface.h @@ -70,6 +70,9 @@ struct EditWidgetInterface /// Queue a redraw request with the canvas virtual void requestCanvasUpdate() = 0; + /// Force a redraw of the canvas + virtual void requestCanvasUpdateAndWait() = 0; + /// Update the "active desktop" indicator virtual void activateDesktop() = 0; diff --git a/src/ui/view/edit-widget.cpp b/src/ui/view/edit-widget.cpp index 626c30941..6a4306147 100644 --- a/src/ui/view/edit-widget.cpp +++ b/src/ui/view/edit-widget.cpp @@ -1294,6 +1294,15 @@ EditWidget::requestCanvasUpdate() } void +EditWidget::requestCanvasUpdateAndWait() +{ + requestCanvasUpdate(); + + while (gtk_events_pending()) + gtk_main_iteration_do(FALSE); +} + +void EditWidget::activateDesktop() { /// \todo active_desktop_indicator not implemented diff --git a/src/ui/view/edit-widget.h b/src/ui/view/edit-widget.h index 0beb77b53..096137c2a 100644 --- a/src/ui/view/edit-widget.h +++ b/src/ui/view/edit-widget.h @@ -108,6 +108,7 @@ public: virtual bool shutdown(); virtual void destroy(); virtual void requestCanvasUpdate(); + virtual void requestCanvasUpdateAndWait(); virtual void activateDesktop(); virtual void deactivateDesktop(); virtual void viewSetPosition (NR::Point p); |
