From addfca5cf637c0fe78d5bdeb2cb122f1f77131f8 Mon Sep 17 00:00:00 2001 From: John Bintz Date: Sun, 13 Aug 2006 17:45:18 +0000 Subject: added functions to allow update events to process during long-running operations (bzr r1595) --- src/widgets/desktop-widget.cpp | 9 +++++++++ src/widgets/desktop-widget.h | 3 +++ 2 files changed, 12 insertions(+) (limited to 'src/widgets') diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 9590af94c..795fdb0f8 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -660,6 +660,15 @@ SPDesktopWidget::requestCanvasUpdate() { gtk_widget_queue_draw (GTK_WIDGET (SP_CANVAS_ITEM (this->desktop->main)->canvas)); } +void +SPDesktopWidget::requestCanvasUpdateAndWait() { + requestCanvasUpdate(); + + while (gtk_events_pending()) + gtk_main_iteration_do(FALSE); + +} + void SPDesktopWidget::setCoordinateStatus(NR::Point p) { diff --git a/src/widgets/desktop-widget.h b/src/widgets/desktop-widget.h index cc66bf180..409f38a8d 100644 --- a/src/widgets/desktop-widget.h +++ b/src/widgets/desktop-widget.h @@ -133,6 +133,8 @@ struct SPDesktopWidget { virtual void requestCanvasUpdate() { _dtw->requestCanvasUpdate(); } + virtual void requestCanvasUpdateAndWait() + { _dtw->requestCanvasUpdateAndWait(); } virtual void activateDesktop() { sp_dtw_desktop_activate (_dtw); } virtual void deactivateDesktop() @@ -183,6 +185,7 @@ struct SPDesktopWidget { bool isToolboxButtonActive (gchar const *id); void setCoordinateStatus(NR::Point p); void requestCanvasUpdate(); + void requestCanvasUpdateAndWait(); void updateTitle(gchar const *uri); }; -- cgit v1.2.3