- ev_view_copy (EV_VIEW (ev_window->priv->view));
-}
-
-static void
-ev_window_update_fullscreen_popup (EvWindow *window)
-{
- GtkWidget *popup = window->priv->fullscreen_popup;
- int popup_width, popup_height;
- GdkScreen *screen;
- GdkRectangle screen_rect;
- gboolean toolbar;
-
- g_return_if_fail (popup != NULL);
-
- if (GTK_WIDGET (window)->window == NULL)
- return;
-
- toolbar = (window->priv->chrome & EV_CHROME_FULLSCREEN_TOOLBAR) != 0 ||
- (window->priv->chrome & EV_CHROME_RAISE_TOOLBAR) != 0;
- popup_width = popup->requisition.width;
- popup_height = popup->requisition.height;
-
- screen = gtk_widget_get_screen (GTK_WIDGET (window));
- gdk_screen_get_monitor_geometry (screen,
- gdk_screen_get_monitor_at_window
- (screen,
- GTK_WIDGET (window)->window),
- &screen_rect);
- if (toolbar) {
- gtk_widget_set_size_request (popup,
- screen_rect.width,
- -1);
- gtk_window_move (GTK_WINDOW (popup),
- screen_rect.x,
- screen_rect.y);
-
- } else {
- if (gtk_widget_get_direction (popup) == GTK_TEXT_DIR_RTL)
- {
- gtk_window_move (GTK_WINDOW (popup),
- screen_rect.x,
- screen_rect.y);
- } else {
- gtk_window_move (GTK_WINDOW (popup),
- screen_rect.x + screen_rect.width - popup_width,
- screen_rect.y);
- }
- }
-}
-
-static void
-screen_size_changed_cb (GdkScreen *screen,
- EvWindow *window)
-{
- ev_window_update_fullscreen_popup (window);
-}
-
-static void
-ev_window_sidebar_position_change_cb (GObject *object, GParamSpec *pspec,
- EvWindow *ev_window)
-{
- if (!ev_window_is_empty (ev_window))
- ev_metadata_manager_set_int (ev_window->priv->uri, "sidebar_size",
- gtk_paned_get_position (GTK_PANED (object)));
-}
-
-static void
-destroy_fullscreen_popup (EvWindow *window)
-{
- if (window->priv->fullscreen_popup != NULL)
- {
- gtk_widget_destroy (window->priv->fullscreen_popup);
- window->priv->fullscreen_popup = NULL;
- }
-}
-
-static void
-exit_fullscreen_button_clicked_cb (GtkWidget *button, EvWindow *window)
-{
- GtkAction *action;
-
- action = gtk_action_group_get_action (window->priv->action_group, "ViewFullscreen");
- g_return_if_fail (action != NULL);
-
- gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), FALSE);
-}
-
-static void
-fullscreen_popup_size_request_cb (GtkWidget *popup, GtkRequisition *req, EvWindow *window)
-{
- ev_window_update_fullscreen_popup (window);
-}
-
-static gboolean
-fullscreen_timeout_cb (gpointer data)
-{
- EvWindow *window = EV_WINDOW (data);
-
- update_chrome_flag (window, EV_CHROME_FULLSCREEN_TOOLBAR, FALSE);
- ev_view_hide_cursor (EV_VIEW (window->priv->view));
- window->priv->fullscreen_timeout_id = 0;
-
- return FALSE;
-}
-
-static void
-fullscreen_set_timeout (EvWindow *window)
-{
- if (window->priv->fullscreen_timeout_id != 0) {
- g_source_remove (window->priv->fullscreen_timeout_id);
- }
-
- window->priv->fullscreen_timeout_id =
- g_timeout_add (FULLSCREEN_TIMEOUT, fullscreen_timeout_cb, window);
-
- update_chrome_flag (window, EV_CHROME_FULLSCREEN_TOOLBAR, TRUE);
- update_chrome_visibility (window);
- ev_view_show_cursor (EV_VIEW (window->priv->view));
-}
-
-static void
-fullscreen_clear_timeout (EvWindow *window)
-{
- if (window->priv->fullscreen_timeout_id != 0) {
- g_source_remove (window->priv->fullscreen_timeout_id);
- }
-
- window->priv->fullscreen_timeout_id = 0;
- update_chrome_visibility (window);
- ev_view_show_cursor (EV_VIEW (window->priv->view));
-}
-
-
-static gboolean
-fullscreen_motion_notify_cb (GtkWidget *widget,
- GdkEventMotion *event,
- gpointer user_data)
-{
- EvWindow *window = EV_WINDOW (user_data);
-
- fullscreen_set_timeout (window);
-
- return FALSE;
-}
-
-static gboolean
-fullscreen_leave_notify_cb (GtkWidget *widget,
- GdkEventCrossing *event,
- gpointer user_data)
-{
- EvWindow *window = EV_WINDOW (user_data);
-
- fullscreen_clear_timeout (window);
-
- return FALSE;
-}
-
-static GtkWidget *
-ev_window_get_exit_fullscreen_button (EvWindow *window)
-{
- GtkWidget *button, *icon, *label, *hbox;
-
- button = gtk_button_new ();
- g_signal_connect (button, "clicked",
- G_CALLBACK (exit_fullscreen_button_clicked_cb),
- window);
- gtk_widget_show (button);
-
- hbox = gtk_hbox_new (FALSE, 2);
- gtk_widget_show (hbox);
- gtk_container_add (GTK_CONTAINER (button), hbox);
-
- icon = gtk_image_new_from_stock (EV_STOCK_LEAVE_FULLSCREEN, GTK_ICON_SIZE_BUTTON);
- gtk_widget_show (icon);
- gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0);
-
- label = gtk_label_new (_("Leave Fullscreen"));
- gtk_widget_show (label);
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
-
- return button;
-}
-
-static GtkWidget *
-ev_window_create_fullscreen_popup (EvWindow *window)
-{
- GtkWidget *popup;
- GtkWidget *hbox;
- GtkWidget *button;
- GdkScreen *screen;
-
- window->priv->fullscreen_toolbar = egg_editable_toolbar_new_with_model
- (window->priv->ui_manager, ev_application_get_toolbars_model (EV_APP));
-
- popup = gtk_window_new (GTK_WINDOW_POPUP);
- hbox = gtk_hbox_new (FALSE, 0);
- button = ev_window_get_exit_fullscreen_button (window);
-
- gtk_container_add (GTK_CONTAINER (popup), hbox);
- gtk_box_pack_start (GTK_BOX (hbox), window->priv->fullscreen_toolbar,
- TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
-
- gtk_widget_show (button);
- gtk_widget_show (hbox);
-
- gtk_window_set_resizable (GTK_WINDOW (popup), FALSE);
-
- screen = gtk_widget_get_screen (GTK_WIDGET (window));
- g_signal_connect_object (screen, "size-changed",
- G_CALLBACK (screen_size_changed_cb),
- window, 0);
- g_signal_connect_object (popup, "size_request",
- G_CALLBACK (fullscreen_popup_size_request_cb),
- window, 0);
-
- gtk_window_set_screen (GTK_WINDOW (popup),
- gtk_widget_get_screen (GTK_WIDGET (window)));
-
- return popup;