diff options
author | Yonit Halperin <yhalperi@redhat.com> | 2011-07-19 17:14:54 +0300 |
---|---|---|
committer | Yonit Halperin <yhalperi@redhat.com> | 2011-07-21 12:43:37 +0300 |
commit | 419222f0f3de82b14960938263d06cc36b9e1a84 (patch) | |
tree | 65532f3aaddde578eb9d5e6dd0a7223e728f49f3 /client/application.h | |
parent | 77a9a62556a35fbb43209d537b894e652abab2d6 (diff) | |
download | spice-419222f0f3de82b14960938263d06cc36b9e1a84.tar.gz spice-419222f0f3de82b14960938263d06cc36b9e1a84.tar.xz spice-419222f0f3de82b14960938263d06cc36b9e1a84.zip |
client: fix endless recursion in rearrange_monitors, RHBZ #692976
The endless recursion happens due to Application::prepare_monitors calling RedScreen::resize
calling Application::rearrange_monitors calling Application::prepare_monitors
I changed RedScreen::resize not to call rearrange_monitors. Instead,
the monitor should be configured correctly from Application, before
calling resize.
In addition, I made some cleanups to allow reusing rearrange_monitors code.
Diffstat (limited to 'client/application.h')
-rw-r--r-- | client/application.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/client/application.h b/client/application.h index a08da13e..acb116e7 100644 --- a/client/application.h +++ b/client/application.h @@ -216,7 +216,6 @@ public: void on_disconnecting(); void on_visibility_start(int screen_id); - bool rearrange_monitors(RedScreen& screen); void enter_full_screen(); void exit_full_screen(); bool toggle_full_screen(); @@ -308,6 +307,9 @@ private: void assign_monitors(); void restore_monitors(); void prepare_monitors(); + void rearrange_monitors(bool force_capture, + bool enter_full_screen, + RedScreen* screen = NULL); void position_screens(); void show_full_screen(); void send_key_down(RedKey key); |