summaryrefslogtreecommitdiffstats
path: root/client/application.h
diff options
context:
space:
mode:
authorYonit Halperin <yhalperi@redhat.com>2011-07-19 17:14:54 +0300
committerYonit Halperin <yhalperi@redhat.com>2011-07-21 12:43:37 +0300
commit419222f0f3de82b14960938263d06cc36b9e1a84 (patch)
tree65532f3aaddde578eb9d5e6dd0a7223e728f49f3 /client/application.h
parent77a9a62556a35fbb43209d537b894e652abab2d6 (diff)
downloadspice-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.h4
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);