[Xfce4-commits] <ristretto:master> Improve fullscreen behaviour

Stephan Arts stephan at xfce.org
Tue Sep 1 08:32:01 CEST 2009


Updating branch refs/heads/master
         to c181f72632125b0789d4a052c5c75b634b932720 (commit)
       from 617daf015dccdb2e8dc41c9e08a8d28c3fb79877 (commit)

commit c181f72632125b0789d4a052c5c75b634b932720
Author: Stephan Arts <stephan at xfce.org>
Date:   Tue Sep 1 08:30:41 2009 +0200

    Improve fullscreen behaviour

 src/main_window.c    |   39 ++++++++++++++++++++++++++++++++-------
 src/picture_viewer.c |    7 +------
 2 files changed, 33 insertions(+), 13 deletions(-)

diff --git a/src/main_window.c b/src/main_window.c
index f9cd00d..c6abf72 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -237,9 +237,13 @@ static void
 cb_rstto_main_window_settings_notify (GObject *settings, GParamSpec *spec, RsttoMainWindow *window);
 
 static gboolean 
-cb_rstto_main_window_picture_viewer_motion_notify_event (RsttoPictureViewer *viewer,
+cb_rstto_main_window_motion_notify_event (RsttoMainWindow *window,
                                              GdkEventMotion *event,
                                              gpointer user_data);
+static gboolean
+cb_rstto_main_window_picture_viewer_enter_notify_event (GtkWidget *widget,
+                                                        GdkEventCrossing *event,
+                                                        gpointer user_data);
 
 static void
 rstto_main_window_update_buttons (RsttoMainWindow *window);
@@ -620,7 +624,8 @@ rstto_main_window_init (RsttoMainWindow *window)
     }
     g_value_reset (&show_thumbnailbar_val);
 
-    g_signal_connect(G_OBJECT(window->priv->picture_viewer), "motion-notify-event", G_CALLBACK(cb_rstto_main_window_picture_viewer_motion_notify_event), window);
+    g_signal_connect(G_OBJECT(window), "motion-notify-event", G_CALLBACK(cb_rstto_main_window_motion_notify_event), window);
+    g_signal_connect(G_OBJECT(window->priv->picture_viewer), "enter-notify-event", G_CALLBACK(cb_rstto_main_window_picture_viewer_enter_notify_event), window);
     g_signal_connect(G_OBJECT(window), "configure-event", G_CALLBACK(cb_rstto_main_window_configure_event), NULL);
     g_signal_connect(G_OBJECT(window), "window-state-event", G_CALLBACK(cb_rstto_main_window_state_event), NULL);
     g_signal_connect(G_OBJECT(window->priv->image_list_toolbar), "button-press-event", G_CALLBACK(cb_rstto_main_window_navigationtoolbar_button_press_event), window);
@@ -2015,16 +2020,19 @@ cb_rstto_main_window_state_event(GtkWidget *widget, GdkEventWindowState *event,
 }
 
 static gboolean 
-cb_rstto_main_window_picture_viewer_motion_notify_event (RsttoPictureViewer *viewer,
-                                             GdkEventMotion *event,
-                                             gpointer user_data)
+cb_rstto_main_window_motion_notify_event (RsttoMainWindow *window,
+                                         GdkEventMotion *event,
+                                         gpointer user_data)
 {
-    RsttoMainWindow *window = RSTTO_MAIN_WINDOW (user_data);
+    gint width, height;
     if(gdk_window_get_state(GTK_WIDGET(window)->window) & GDK_WINDOW_STATE_FULLSCREEN)
     {
-        if (event->state == 0)
+	gdk_drawable_get_size (GDK_DRAWABLE(GTK_WIDGET(window)->window), &width, &height);
+        //if ((event->state == 0) && (event->window == event->subwindow))
+	if ((event->x == 0) || (event->y == 0) || (((gint)event->x) == (width-1)) || (((gint)event->y) == (height-1)))
         {
             gtk_widget_show (window->priv->image_list_toolbar);
+            window->priv->fs_toolbar_sticky = TRUE;
 
             if (window->priv->fs_toolbar_sticky == FALSE)
             {
@@ -2041,6 +2049,23 @@ cb_rstto_main_window_picture_viewer_motion_notify_event (RsttoPictureViewer *vie
 }
 
 static gboolean
+cb_rstto_main_window_picture_viewer_enter_notify_event (GtkWidget *widget,
+                                                        GdkEventCrossing *event,
+                                                        gpointer user_data)
+{
+    RsttoMainWindow *window = RSTTO_MAIN_WINDOW (user_data);
+    window->priv->fs_toolbar_sticky = FALSE;
+    if (window->priv->show_fs_toolbar_timeout_id > 0)
+    {
+        g_source_remove (window->priv->show_fs_toolbar_timeout_id);
+        window->priv->show_fs_toolbar_timeout_id = 0;
+    }
+    window->priv->show_fs_toolbar_timeout_id = g_timeout_add (2000, (GSourceFunc)cb_rstto_main_window_show_fs_toolbar_timeout, window);
+
+    return TRUE;
+}
+
+static gboolean
 cb_rstto_main_window_show_fs_toolbar_timeout (RsttoMainWindow *window)
 {
     gtk_widget_hide (window->priv->image_list_toolbar);
diff --git a/src/picture_viewer.c b/src/picture_viewer.c
index a5ea1fa..666a405 100644
--- a/src/picture_viewer.c
+++ b/src/picture_viewer.c
@@ -1,9 +1,6 @@
 /*
-<<<<<<< HEAD:src/picture_viewer.c
-=======
  *  Copyright (C) Stephan Arts 2006-2009 <stephan at xfce.org>
  *
->>>>>>> 9b75414e8bb4500c58635dd45ecb8f2f45266902:src/picture_viewer.c
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  *  the Free Software Foundation; either version 2 of the License, or
@@ -204,6 +201,7 @@ rstto_picture_viewer_init(RsttoPictureViewer *viewer)
                            GDK_BUTTON_PRESS_MASK |
                            GDK_BUTTON_RELEASE_MASK |
                            GDK_BUTTON1_MOTION_MASK |
+                           GDK_ENTER_NOTIFY_MASK |
                            GDK_POINTER_MOTION_MASK);
 
     g_signal_connect(G_OBJECT(viewer), "scroll_event", G_CALLBACK(cb_rstto_picture_viewer_scroll_event), NULL);
@@ -857,7 +855,6 @@ cb_rstto_picture_viewer_scroll_event (RsttoPictureViewer *viewer, GdkEventScroll
             }
             rstto_image_list_entry_set_scale(entry, scale * 1.1);
             rstto_image_list_entry_set_fit_to_screen (entry, FALSE);
->>>>>>> 9b75414e8bb4500c58635dd45ecb8f2f45266902:src/picture_viewer.c
 
 
             viewer->vadjustment->value = ((viewer->vadjustment->value + event->y) * 1.1) - event->y;
@@ -869,8 +866,6 @@ cb_rstto_picture_viewer_scroll_event (RsttoPictureViewer *viewer, GdkEventScroll
             viewer->priv->refresh.idle_id = g_idle_add((GSourceFunc)cb_rstto_picture_viewer_queued_repaint, viewer);
             break;
     }
-<<<<<<< HEAD:src/picture_viewer.c
-=======
     */
 }
 



More information about the Xfce4-commits mailing list