static void handle_window_dialog_up (GSManager *manager, GSWindow *window) { GSList *l; g_return_if_fail (manager != NULL); g_return_if_fail (GS_IS_MANAGER (manager)); gs_debug ("Handling dialog up"); g_signal_emit (manager, signals [AUTH_REQUEST_BEGIN], 0); manager->priv->dialog_up = TRUE; /* Make all other windows insensitive so we don't get events */ for (l = manager->priv->windows; l; l = l->next) { if (l->data != window) { gtk_widget_set_sensitive (GTK_WIDGET (l->data), FALSE); } } /* Move keyboard and mouse grabs so dialog can be used */ gs_grab_move_to_window (manager->priv->grab, gs_window_get_gdk_window (window), gs_window_get_screen (window), FALSE); /* Release the pointer grab while dialog is up so that the dialog can be used. We'll regrab it when the dialog goes down. */ gs_grab_release_mouse (manager->priv->grab); if (! manager->priv->throttled) { gs_debug ("Suspending jobs"); manager_suspend_jobs (manager); } }
static void handle_window_dialog_up (GSManager *manager, GSWindow *window) { GSList *l; g_return_if_fail (manager != NULL); g_return_if_fail (GS_IS_MANAGER (manager)); gs_debug ("Handling dialog up"); g_signal_emit (manager, signals [AUTH_REQUEST_BEGIN], 0); manager->priv->dialog_up = TRUE; /* make all other windows insensitive to not get events */ for (l = manager->priv->windows; l; l = l->next) { if (l->data != window) { gtk_widget_set_sensitive (GTK_WIDGET (l->data), FALSE); } } /* move devices grab so that dialog can be used; release the pointer grab while dialog is up so that the dialog can be used. We'll regrab it when the dialog goes down */ gs_debug ("Initiate pointer-less grab move to %p", window); gs_grab_move_to_window (manager->priv->grab, gs_window_get_gdk_window (window), gs_window_get_display (window), TRUE, FALSE); if (! manager->priv->throttled) { gs_debug ("Suspending jobs"); manager_suspend_jobs (manager); } }