diff options
Diffstat (limited to 'src/ui/view')
| -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); |
