mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/virt-viewer
synced 2026-01-02 14:36:48 +00:00
Disconnect fullscreen map-event handler when leaving fullscreen
When we enter fullscreen mode before the window is shown, we set up a signal handler to enter fullscreen mode when the window is mapped. If we then leave fullscreen mode before the window is mapped, we don't disconnect this handler, so it will still enter fullscreen mode when it is shown. Fixes rhbz #1009513
This commit is contained in:
parent
bd914bdea2
commit
2ec0387adc
@ -486,6 +486,16 @@ virt_viewer_window_move_to_monitor(VirtViewerWindow *self)
|
||||
mon.height);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
mapped(GtkWidget *widget, GdkEvent *event G_GNUC_UNUSED,
|
||||
VirtViewerWindow *self)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func(widget, mapped, self);
|
||||
self->priv->fullscreen = FALSE;
|
||||
virt_viewer_window_enter_fullscreen(self, self->priv->fullscreen_monitor);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
virt_viewer_window_leave_fullscreen(VirtViewerWindow *self)
|
||||
{
|
||||
@ -493,6 +503,10 @@ virt_viewer_window_leave_fullscreen(VirtViewerWindow *self)
|
||||
GtkWidget *menu = GTK_WIDGET(gtk_builder_get_object(priv->builder, "top-menu"));
|
||||
GtkCheckMenuItem *check = GTK_CHECK_MENU_ITEM(gtk_builder_get_object(priv->builder, "menu-view-fullscreen"));
|
||||
|
||||
/* if we enter and leave fullscreen mode before being shown, make sure to
|
||||
* disconnect the mapped signal handler */
|
||||
g_signal_handlers_disconnect_by_func(priv->window, mapped, self);
|
||||
|
||||
if (!priv->fullscreen)
|
||||
return;
|
||||
|
||||
@ -511,16 +525,6 @@ virt_viewer_window_leave_fullscreen(VirtViewerWindow *self)
|
||||
|
||||
}
|
||||
|
||||
static gboolean
|
||||
mapped(GtkWidget *widget, GdkEvent *event G_GNUC_UNUSED,
|
||||
VirtViewerWindow *self)
|
||||
{
|
||||
g_signal_handlers_disconnect_by_func(widget, mapped, self);
|
||||
self->priv->fullscreen = FALSE;
|
||||
virt_viewer_window_enter_fullscreen(self, self->priv->fullscreen_monitor);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
virt_viewer_window_enter_fullscreen(VirtViewerWindow *self, gint monitor)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user