- Fix the info layer not showing when used through the XPI
- Do not let the connection gui flash by when a hostname has been specified on the cmdline - Fix spice client locking up when dealing with XIM input (#654265) - Fix modifier keys getting stuck (#655048) - Fix spice client crashing when dealing with XIM ibus input (#655836) - Fix spice client only showing a white screen in full screen mode
This commit is contained in:
parent
f4d936daa9
commit
ee30e70841
38
0007-spicec-Fix-info-layer-sometimes-not-showing.patch
Normal file
38
0007-spicec-Fix-info-layer-sometimes-not-showing.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
From 6fd1bbb846b0fc4b704c277ffa5974fc565ae05f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Tue, 9 Nov 2010 11:24:59 +0100
|
||||||
|
Subject: [PATCH spice 1/7] spicec: Fix info layer sometimes not showing
|
||||||
|
|
||||||
|
Currently we are calling show_info_layer from hide_gui in application.cpp, but
|
||||||
|
there are 2 cases where this does not happen:
|
||||||
|
|
||||||
|
1) When compiled without gui support hide_gui is a complete nop, so we never
|
||||||
|
show the info layer when compiled without gui support
|
||||||
|
2) When run with --controller we never show the gui, and hide_gui
|
||||||
|
checks if there is a gui to hide as the first thing and if not returns
|
||||||
|
resulting in show_info_layer not being called, and thus the info layer
|
||||||
|
not showing when launched from the xpi
|
||||||
|
|
||||||
|
This patch fixes both by adding a call to show_info_layer from
|
||||||
|
on_visibility_start note that on_visibility_start also calls hide_gui,
|
||||||
|
so in some cases show_info_layer may be called twice, this is not a
|
||||||
|
problem as show_info_layer is protected against this.
|
||||||
|
---
|
||||||
|
client/application.cpp | 1 +
|
||||||
|
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/client/application.cpp b/client/application.cpp
|
||||||
|
index d5b24a7..7ef2c78 100644
|
||||||
|
--- a/client/application.cpp
|
||||||
|
+++ b/client/application.cpp
|
||||||
|
@@ -854,6 +854,7 @@ void Application::on_visibility_start(int screen_id)
|
||||||
|
}
|
||||||
|
set_state(VISIBILITY);
|
||||||
|
hide_gui();
|
||||||
|
+ show_info_layer();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Application::on_disconnecting()
|
||||||
|
--
|
||||||
|
1.7.3.2
|
||||||
|
|
55
0008-spicec-Remove-empty-show-hide-gui-functions.patch
Normal file
55
0008-spicec-Remove-empty-show-hide-gui-functions.patch
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
From 8d6b124f2a0e4ab4e3d61415cec77038b94e517f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Tue, 9 Nov 2010 11:32:07 +0100
|
||||||
|
Subject: [PATCH spice 2/7] spicec: Remove empty show / hide gui functions
|
||||||
|
|
||||||
|
When compiling without gui support just don't call show / hide
|
||||||
|
gui, rather then making them stubs, this makes it easier to follow what is
|
||||||
|
going on.
|
||||||
|
---
|
||||||
|
client/application.cpp | 4 ++++
|
||||||
|
client/application.h | 4 ----
|
||||||
|
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/client/application.cpp b/client/application.cpp
|
||||||
|
index 7ef2c78..2701641 100644
|
||||||
|
--- a/client/application.cpp
|
||||||
|
+++ b/client/application.cpp
|
||||||
|
@@ -841,7 +841,9 @@ void Application::on_disconnected(int error_code)
|
||||||
|
|
||||||
|
// todo: display special notification for host switch (during migration)
|
||||||
|
set_state(DISCONNECTED);
|
||||||
|
+#ifdef USE_GUI
|
||||||
|
show_gui();
|
||||||
|
+#endif
|
||||||
|
if (host_switch) {
|
||||||
|
_client.connect(true);
|
||||||
|
}
|
||||||
|
@@ -853,7 +855,9 @@ void Application::on_visibility_start(int screen_id)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
set_state(VISIBILITY);
|
||||||
|
+#ifdef USE_GUI
|
||||||
|
hide_gui();
|
||||||
|
+#endif
|
||||||
|
show_info_layer();
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/client/application.h b/client/application.h
|
||||||
|
index 19c68a5..0e761ec 100644
|
||||||
|
--- a/client/application.h
|
||||||
|
+++ b/client/application.h
|
||||||
|
@@ -322,10 +322,6 @@ private:
|
||||||
|
void create_gui_barrier(RedScreen& screen, int id);
|
||||||
|
void destroyed_gui_barrier(int id);
|
||||||
|
void destroyed_gui_barriers();
|
||||||
|
-#else // USE_GUI
|
||||||
|
- void show_gui() {}
|
||||||
|
- void hide_gui() {}
|
||||||
|
-
|
||||||
|
#endif // USE_GUI
|
||||||
|
|
||||||
|
// returns the press value before operation (i.e., if it was already pressed)
|
||||||
|
--
|
||||||
|
1.7.3.2
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
From 0bb53766fae863b927f82d06eb85e4f5a8e25280 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Tue, 9 Nov 2010 11:45:41 +0100
|
||||||
|
Subject: [PATCH spice 3/7] spicec: Don't show gui when connection info is specified on the cmdline
|
||||||
|
|
||||||
|
Currently when compiled with the gui enabled if you specify a host to connect
|
||||||
|
to on the cmdline the gui flashes by (show_gui gets called, then the connect
|
||||||
|
handler calls hide_gui as soon as the connection is made).
|
||||||
|
|
||||||
|
This patch removes this ugly flashing by of the gui.
|
||||||
|
---
|
||||||
|
client/application.cpp | 10 ++++------
|
||||||
|
1 files changed, 4 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/client/application.cpp b/client/application.cpp
|
||||||
|
index 2701641..4b22e1f 100644
|
||||||
|
--- a/client/application.cpp
|
||||||
|
+++ b/client/application.cpp
|
||||||
|
@@ -602,14 +602,12 @@ void Application::on_start_running()
|
||||||
|
}
|
||||||
|
//FIXME: _client.connect() or use the following instead?
|
||||||
|
#ifdef USE_GUI
|
||||||
|
- if (_gui_mode != GUI_MODE_FULL) {
|
||||||
|
- connect();
|
||||||
|
+ if (_gui_mode == GUI_MODE_FULL) {
|
||||||
|
+ show_gui();
|
||||||
|
+ return;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- show_gui();
|
||||||
|
-#else
|
||||||
|
- connect();
|
||||||
|
#endif // HAVE_GUI
|
||||||
|
+ connect();
|
||||||
|
}
|
||||||
|
|
||||||
|
RedScreen* Application::find_screen(int id)
|
||||||
|
--
|
||||||
|
1.7.3.2
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 084225fda75be2bead6e2dad313b9e861d93bffc Mon Sep 17 00:00:00 2001
|
From c5a903b6655f4f6dacb333fa897d60636aa92d58 Mon Sep 17 00:00:00 2001
|
||||||
From: Hans de Goede <hdegoede@redhat.com>
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
Date: Wed, 17 Nov 2010 12:19:41 +0100
|
Date: Wed, 17 Nov 2010 12:19:41 +0100
|
||||||
Subject: [PATCH spice] spicec-x11: Add a few missing XLockDisplay calls (rhbz#654265)
|
Subject: [PATCH spice 4/7] spicec-x11: Add a few missing XLockDisplay calls (rhbz#654265)
|
||||||
|
|
||||||
The XIM functions end up waiting for a reply from the server, so they
|
The XIM functions end up waiting for a reply from the server, so they
|
||||||
need locking around them. Idem for the XLookupString call.
|
need locking around them. Idem for the XLookupString call.
|
@ -0,0 +1,70 @@
|
|||||||
|
From 0e7a79ae11a905cee128c2429a7738fe43e30586 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Mon, 22 Nov 2010 16:09:15 +0100
|
||||||
|
Subject: [PATCH spice 5/7] spicec-x11: Fix modifier keys getting stuck (rhbz#655048)
|
||||||
|
|
||||||
|
Currently modifier keys (ctrl, alt) can get stuck when using the x11 client.
|
||||||
|
To reproduce under gnome:
|
||||||
|
-focus the client window without causing it to grab the keyborad (click on
|
||||||
|
the title bar not the window)
|
||||||
|
-press crlt + alt + right arrow to switch virtual desktop
|
||||||
|
-press crlt + alt + left arrow to switch back
|
||||||
|
-notice ctrl + alt are stuck pressed
|
||||||
|
|
||||||
|
What is happening here is:
|
||||||
|
-We get a focus out event, caused by the hotkey combi key grab, focus event
|
||||||
|
notify mode == NotifyGrab, and release all keys -> good
|
||||||
|
-We get another focus out event, as we really loose the focus.
|
||||||
|
notify mode == NotifyWhileGrabbed, which we ignore as we already lost
|
||||||
|
focus before
|
||||||
|
-We get a focus in event, as the focus is returning to us, but we don't
|
||||||
|
really have the focus yet, as the hotkey combi key grab is still active
|
||||||
|
(ie ctrl + alt are still pressed).
|
||||||
|
We now sync the vm's modifier key state with the current X-server state,
|
||||||
|
telling the vm ctrl + alt are pressed. Note we do this by directly reading
|
||||||
|
the X-server keyboard status, we are not getting any key press events from the
|
||||||
|
X-server -> bad
|
||||||
|
-We get another focus in event, as we really get the focus back,
|
||||||
|
notify mode == NotifyUngrab. We ignore this one as already have gained the
|
||||||
|
focus before. If we were to sync the vm modifier state here, all would be
|
||||||
|
well we would no longer see the modifier keys pressed, or if we would we
|
||||||
|
would get a release event when they get released (testing has shown both).
|
||||||
|
|
||||||
|
The solution here is to ignore the first focus in event, and do the modifier
|
||||||
|
sync on the second focus in event, or more in general to ignore focus events
|
||||||
|
where notify mode == NotifyWhileGrabbed.
|
||||||
|
---
|
||||||
|
client/x11/red_window.cpp | 10 ++++++++++
|
||||||
|
1 files changed, 10 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/client/x11/red_window.cpp b/client/x11/red_window.cpp
|
||||||
|
index c50e307..6e8cd58 100644
|
||||||
|
--- a/client/x11/red_window.cpp
|
||||||
|
+++ b/client/x11/red_window.cpp
|
||||||
|
@@ -866,6 +866,11 @@ void RedWindow_p::win_proc(XEvent& event)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case FocusIn:
|
||||||
|
+ /* Ignore focus events caused by grabbed (hotkeys) */
|
||||||
|
+ if (event.xfocus.mode == NotifyWhileGrabbed) {
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (event.xany.serial < focus_serial) {
|
||||||
|
DBG(0, "Ignored FocusIn win=%p (serial=%d, Last foucs serial=%d)",
|
||||||
|
red_window, event.xany.serial, focus_serial);
|
||||||
|
@@ -886,6 +891,11 @@ void RedWindow_p::win_proc(XEvent& event)
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case FocusOut:
|
||||||
|
+ /* Ignore focus events caused by grabbed (hotkeys) */
|
||||||
|
+ if (event.xfocus.mode == NotifyWhileGrabbed) {
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (event.xany.serial <= focus_serial) {
|
||||||
|
DBG(0, "Ignored FocusOut win=%p (serial=%d, Last foucs serial=%d)",
|
||||||
|
red_window, event.xany.serial, focus_serial);
|
||||||
|
--
|
||||||
|
1.7.3.2
|
||||||
|
|
@ -0,0 +1,43 @@
|
|||||||
|
From c8a034f2858f247d6a00ec1ad47de491b7e99575 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Tue, 23 Nov 2010 15:32:15 +0100
|
||||||
|
Subject: [PATCH spice 6/7] spicec-x11: Fix unhandled exception: no window proc crash (rhbz#655836)
|
||||||
|
|
||||||
|
When XIM + ibus is in use XIM creates an invisible window for its own
|
||||||
|
purposes, we sometimes get a _GTK_LOAD_ICONTHEMES ClientMessage event on
|
||||||
|
this window. Since this window was not explicitly created by spicec, it
|
||||||
|
does not have a Window Context (with the event handling function for the
|
||||||
|
window in question) set. This would cause spicec to throw an unhandled
|
||||||
|
exception and exit.
|
||||||
|
|
||||||
|
This patch replaces the exception throwing with silently ignoring
|
||||||
|
ClientMessage events on Windows without a Context and logging a warning
|
||||||
|
for other event types.
|
||||||
|
---
|
||||||
|
client/x11/platform.cpp | 10 +++++++++-
|
||||||
|
1 files changed, 9 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/client/x11/platform.cpp b/client/x11/platform.cpp
|
||||||
|
index 2009817..334a74f 100644
|
||||||
|
--- a/client/x11/platform.cpp
|
||||||
|
+++ b/client/x11/platform.cpp
|
||||||
|
@@ -295,7 +295,15 @@ void XEventHandler::on_event()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (XFindContext(&_x_display, event.xany.window, _win_proc_context, &proc_pointer)) {
|
||||||
|
- THROW("no window proc");
|
||||||
|
+ /* When XIM + ibus is in use XIM creates an invisible window for
|
||||||
|
+ its own purposes, we sometimes get a _GTK_LOAD_ICONTHEMES
|
||||||
|
+ ClientMessage event on this window -> skip logging. */
|
||||||
|
+ if (event.type != ClientMessage) {
|
||||||
|
+ LOG_WARN(
|
||||||
|
+ "Event on window without a win proc, type: %d, window: %u",
|
||||||
|
+ event.type, (unsigned int)event.xany.window);
|
||||||
|
+ }
|
||||||
|
+ continue;
|
||||||
|
}
|
||||||
|
XUnlockDisplay(x_display);
|
||||||
|
((XPlatform::win_proc_t)proc_pointer)(event);
|
||||||
|
--
|
||||||
|
1.7.3.2
|
||||||
|
|
159
0013-spicec-Don-t-show-a-white-screen-if-guest-resolution.patch
Normal file
159
0013-spicec-Don-t-show-a-white-screen-if-guest-resolution.patch
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
From 6437f11de2ceee2be932143c5f3779e232ec3415 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Tue, 23 Nov 2010 21:07:56 +0100
|
||||||
|
Subject: [PATCH spice 7/7] spicec: Don't show a white screen if guest resolution does not fit fullscreen
|
||||||
|
|
||||||
|
Currently when going / starting fullscreen if the guest resolution for one of
|
||||||
|
the monitors is higher then that monitor on the client can handle, we show a
|
||||||
|
white screen. Leaving the user stuck (unless they know the fullscreen key
|
||||||
|
switch combi) with a white screen when starting the client fullscreen from
|
||||||
|
the XPI.
|
||||||
|
|
||||||
|
This patch changes the client to fall back to windowed mode in this case
|
||||||
|
instead.
|
||||||
|
---
|
||||||
|
client/application.cpp | 30 ++++++++++++++++++++++++++++++
|
||||||
|
client/application.h | 2 ++
|
||||||
|
client/display_channel.cpp | 2 +-
|
||||||
|
client/screen.h | 2 +-
|
||||||
|
4 files changed, 34 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/client/application.cpp b/client/application.cpp
|
||||||
|
index 4b22e1f..c380373 100644
|
||||||
|
--- a/client/application.cpp
|
||||||
|
+++ b/client/application.cpp
|
||||||
|
@@ -348,6 +348,7 @@ Application::Application()
|
||||||
|
, _active (false)
|
||||||
|
, _full_screen (false)
|
||||||
|
, _changing_screens (false)
|
||||||
|
+ , _out_of_sync (false)
|
||||||
|
, _exit_code (0)
|
||||||
|
, _active_screen (NULL)
|
||||||
|
, _num_keys_pressed (0)
|
||||||
|
@@ -674,6 +675,12 @@ RedScreen* Application::get_screen(int id)
|
||||||
|
prepare_monitors();
|
||||||
|
position_screens();
|
||||||
|
screen->show_full_screen();
|
||||||
|
+ if (screen->is_out_of_sync()) {
|
||||||
|
+ _out_of_sync = true;
|
||||||
|
+ /* If the client monitor cannot handle the guest resolution
|
||||||
|
+ drop back to windowed mode */
|
||||||
|
+ exit_full_screen();
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (capture) {
|
||||||
|
_main_screen->activate();
|
||||||
|
@@ -1492,6 +1499,9 @@ void Application::show_full_screen()
|
||||||
|
for (int i = 0; i < (int)_screens.size(); i++) {
|
||||||
|
if (_screens[i]) {
|
||||||
|
_screens[i]->show_full_screen();
|
||||||
|
+ if (_screens[i]->is_out_of_sync()) {
|
||||||
|
+ _out_of_sync = true;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -1512,6 +1522,11 @@ void Application::enter_full_screen()
|
||||||
|
}
|
||||||
|
_changing_screens = false;
|
||||||
|
_full_screen = true;
|
||||||
|
+ /* If the client monitor cannot handle the guest resolution drop back
|
||||||
|
+ to windowed mode */
|
||||||
|
+ if (_out_of_sync) {
|
||||||
|
+ exit_full_screen();
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
void Application::restore_screens_size()
|
||||||
|
@@ -1529,6 +1544,9 @@ void Application::exit_full_screen()
|
||||||
|
if (!_full_screen) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
+ if (_out_of_sync) {
|
||||||
|
+ LOG_WARN("Falling back to windowed mode (guest resolution too large for client?)");
|
||||||
|
+ }
|
||||||
|
LOG_INFO("");
|
||||||
|
_changing_screens = true;
|
||||||
|
release_capture();
|
||||||
|
@@ -1544,6 +1562,7 @@ void Application::exit_full_screen()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_full_screen = false;
|
||||||
|
+ _out_of_sync = false;
|
||||||
|
restore_screens_size();
|
||||||
|
show();
|
||||||
|
_main_screen->activate();
|
||||||
|
@@ -1560,6 +1579,17 @@ bool Application::toggle_full_screen()
|
||||||
|
return _full_screen;
|
||||||
|
}
|
||||||
|
|
||||||
|
+void Application::resize_screen(RedScreen *screen, int width, int height)
|
||||||
|
+{
|
||||||
|
+ screen->resize(width, height);
|
||||||
|
+ if (screen->is_out_of_sync()) {
|
||||||
|
+ _out_of_sync = true;
|
||||||
|
+ /* If the client monitor cannot handle the guest resolution
|
||||||
|
+ drop back to windowed mode */
|
||||||
|
+ exit_full_screen();
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void Application::minimize()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < (int)_screens.size(); i++) {
|
||||||
|
diff --git a/client/application.h b/client/application.h
|
||||||
|
index 0e761ec..5a5a488 100644
|
||||||
|
--- a/client/application.h
|
||||||
|
+++ b/client/application.h
|
||||||
|
@@ -217,6 +217,7 @@ public:
|
||||||
|
void enter_full_screen();
|
||||||
|
void exit_full_screen();
|
||||||
|
bool toggle_full_screen();
|
||||||
|
+ void resize_screen(RedScreen *screen, int width, int height);
|
||||||
|
void minimize();
|
||||||
|
void set_title(const std::string& title);
|
||||||
|
void hide();
|
||||||
|
@@ -352,6 +353,7 @@ private:
|
||||||
|
bool _active;
|
||||||
|
bool _full_screen;
|
||||||
|
bool _changing_screens;
|
||||||
|
+ bool _out_of_sync;
|
||||||
|
int _exit_code;
|
||||||
|
RedScreen* _active_screen;
|
||||||
|
bool _keyboard_state[REDKEY_NUM_KEYS];
|
||||||
|
diff --git a/client/display_channel.cpp b/client/display_channel.cpp
|
||||||
|
index c371f4a..1d5ebf3 100644
|
||||||
|
--- a/client/display_channel.cpp
|
||||||
|
+++ b/client/display_channel.cpp
|
||||||
|
@@ -57,7 +57,7 @@ public:
|
||||||
|
{
|
||||||
|
Application* app = (Application*)events_loop.get_owner();
|
||||||
|
_channel.screen()->lock_size();
|
||||||
|
- _channel.screen()->resize(_width, _height);
|
||||||
|
+ app->resize_screen(_channel.screen(), _width, _height);
|
||||||
|
_channel.create_canvas(0, app->get_canvas_types(), _width, _height, _format);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/client/screen.h b/client/screen.h
|
||||||
|
index d81ebf8..2b40d77 100644
|
||||||
|
--- a/client/screen.h
|
||||||
|
+++ b/client/screen.h
|
||||||
|
@@ -78,6 +78,7 @@ public:
|
||||||
|
void set_monitor(Monitor *monitor) { _monitor = monitor;}
|
||||||
|
Monitor* get_monitor() { return _monitor;}
|
||||||
|
RedWindow* get_window() { return &_window;}
|
||||||
|
+ bool is_out_of_sync() { return _out_of_sync;}
|
||||||
|
void set_cursor(LocalCursor* cursor);
|
||||||
|
void hide_cursor();
|
||||||
|
void exit_full_screen();
|
||||||
|
@@ -118,7 +119,6 @@ private:
|
||||||
|
void notify_new_size();
|
||||||
|
void adjust_window_rect(int x, int y);
|
||||||
|
void save_position();
|
||||||
|
- bool is_out_of_sync() { return _out_of_sync;}
|
||||||
|
void __show_full_screen();
|
||||||
|
|
||||||
|
bool _invalidate(const SpiceRect& rect, bool urgent, uint64_t& update_mark);
|
||||||
|
--
|
||||||
|
1.7.3.2
|
||||||
|
|
20
spice.spec
20
spice.spec
@ -13,7 +13,13 @@ Patch3: 0003-Remove-no-longer-used-wstring_printf-functions.patch
|
|||||||
Patch4: 0004-spicec-x11-Do-not-set-_NET_WM_USER_TIME-to-0-on-star.patch
|
Patch4: 0004-spicec-x11-Do-not-set-_NET_WM_USER_TIME-to-0-on-star.patch
|
||||||
Patch5: 0005-spicec-x11-Listen-for-selection-owner-window-destroy.patch
|
Patch5: 0005-spicec-x11-Listen-for-selection-owner-window-destroy.patch
|
||||||
Patch6: 0006-spicec-Make-cegui-log-to-app_data_dir-cegui.log.patch
|
Patch6: 0006-spicec-Make-cegui-log-to-app_data_dir-cegui.log.patch
|
||||||
Patch7: 0007-spicec-x11-Add-a-few-missing-XLockDisplay-calls-rhbz.patch
|
Patch7: 0007-spicec-Fix-info-layer-sometimes-not-showing.patch
|
||||||
|
Patch8: 0008-spicec-Remove-empty-show-hide-gui-functions.patch
|
||||||
|
Patch9: 0009-spicec-Don-t-show-gui-when-connection-info-is-specif.patch
|
||||||
|
Patch10: 0010-spicec-x11-Add-a-few-missing-XLockDisplay-calls-rhbz.patch
|
||||||
|
Patch11: 0011-spicec-x11-Fix-modifier-keys-getting-stuck-rhbz-6550.patch
|
||||||
|
Patch12: 0012-spicec-x11-Fix-unhandled-exception-no-window-proc-cr.patch
|
||||||
|
Patch13: 0013-spicec-Don-t-show-a-white-screen-if-guest-resolution.patch
|
||||||
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=613529
|
# https://bugzilla.redhat.com/show_bug.cgi?id=613529
|
||||||
ExclusiveArch: i686 x86_64
|
ExclusiveArch: i686 x86_64
|
||||||
@ -78,6 +84,12 @@ using spice-server, you will need to install spice-server-devel.
|
|||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
%patch6 -p1
|
%patch6 -p1
|
||||||
%patch7 -p1
|
%patch7 -p1
|
||||||
|
%patch8 -p1
|
||||||
|
%patch9 -p1
|
||||||
|
%patch10 -p1
|
||||||
|
%patch11 -p1
|
||||||
|
%patch12 -p1
|
||||||
|
%patch13 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure --enable-gui
|
%configure --enable-gui
|
||||||
@ -121,7 +133,13 @@ rm -f %{buildroot}%{_libdir}/libspice-server.la
|
|||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Nov 17 2010 Hans de Goede <hdegoede@redhat.com> - 0.6.3-4
|
* Wed Nov 17 2010 Hans de Goede <hdegoede@redhat.com> - 0.6.3-4
|
||||||
|
- Fix the info layer not showing when used through the XPI
|
||||||
|
- Do not let the connection gui flash by when a hostname has been specified
|
||||||
|
on the cmdline
|
||||||
- Fix spice client locking up when dealing with XIM input (#654265)
|
- Fix spice client locking up when dealing with XIM input (#654265)
|
||||||
|
- Fix modifier keys getting stuck (#655048)
|
||||||
|
- Fix spice client crashing when dealing with XIM ibus input (#655836)
|
||||||
|
- Fix spice client only showing a white screen in full screen mode
|
||||||
|
|
||||||
* Sat Nov 6 2010 Hans de Goede <hdegoede@redhat.com> - 0.6.3-3
|
* Sat Nov 6 2010 Hans de Goede <hdegoede@redhat.com> - 0.6.3-3
|
||||||
- Log to ~/.spicec/cegui.log rather then to CEGUI.log in the cwd, this
|
- Log to ~/.spicec/cegui.log rather then to CEGUI.log in the cwd, this
|
||||||
|
Loading…
Reference in New Issue
Block a user