]> www.fi.muni.cz Git - evince.git/commitdiff
Use IBEAM cursor for text form fields and NORMAL cursor for read only
authorCarlos Garcia Campos <carlosgc@gnome.org>
Tue, 24 Jul 2007 18:19:38 +0000 (18:19 +0000)
committerCarlos Garcia Campos <carlosgc@src.gnome.org>
Tue, 24 Jul 2007 18:19:38 +0000 (18:19 +0000)
2007-07-24  Carlos Garcia Campos  <carlosgc@gnome.org>
* shell/ev-view-private.h:
* shell/ev-view.c: (ev_view_handle_cursor_over_xy),
(ev_view_leave_notify_event), (ev_view_finalize),
(ev_view_get_property), (ev_view_class_init):
Use IBEAM cursor for text form fields and NORMAL cursor for read
only fields. Remove unused status attribute.

svn path=/trunk/; revision=2577

ChangeLog
shell/ev-view-private.h
shell/ev-view.c

index be7146c96c80bb21bb281b4702080c7fcc1ee7b5..ab1887448c57c04e25fc510207549b7905941687 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2007-07-24  Carlos Garcia Campos  <carlosgc@gnome.org>
+
+       * shell/ev-view-private.h:
+       * shell/ev-view.c: (ev_view_handle_cursor_over_xy),
+       (ev_view_leave_notify_event), (ev_view_finalize),
+       (ev_view_get_property), (ev_view_class_init):
+
+       Use IBEAM cursor for text form fields and NORMAL cursor for read
+       only fields. Remove unused status attribute.
+       
 2007-07-20  Carlos Garcia Campos  <carlosgc@gnome.org>
 
        * shell/ev-view.c: (ev_view_form_field_button_create_widget):
index 4908711fbe06c1e01e88456f4a25b16ffeb713b4..12d5c8a383b3c321d017b8f2c3510a252ff225f3 100644 (file)
@@ -78,7 +78,6 @@ struct _EvView {
 
        EvDocument *document;
 
-       char *status;
        char *find_status;
        int find_result;
        gboolean jump_to_find_result;
index 7432171222772a604b657061c709109f31b87275..a6d198f311ac02ffb86d8ba6338eceb872251d79 100644 (file)
@@ -52,7 +52,6 @@
 
 enum {
        PROP_0,
-       PROP_STATUS,
        PROP_FIND_STATUS,
        PROP_CONTINUOUS,
        PROP_DUAL_PAGE,
@@ -301,14 +300,11 @@ static void       ev_view_handle_cursor_over_xy              (EvView *view,
                                                              gint x,
                                                              gint y);
 
-/*** Status messages ***/
-static void       ev_view_set_status                         (EvView             *view,
-                                                             const char         *message);
+/*** Find ***/
 static void       update_find_status_message                 (EvView             *view,
                                                              gboolean            this_page);
 static void       ev_view_set_find_status                    (EvView             *view,
                                                              const char         *message);
-/*** Find ***/
 static void       jump_to_find_result                        (EvView             *view);
 static void       jump_to_find_page                          (EvView             *view, 
                                                              EvViewFindDirection direction,
@@ -1493,8 +1489,12 @@ tip_from_link (EvView *view, EvLink *link)
 static void
 ev_view_handle_cursor_over_xy (EvView *view, gint x, gint y)
 {
-       EvLink *link;
+       EvLink      *link;
+       EvFormField *field;
 
+       if (view->cursor == EV_VIEW_CURSOR_HIDDEN)
+               return;
+       
        link = ev_view_get_link_at_location (view, x, y);
 
        if (view->link_tooltip == NULL) {
@@ -1521,10 +1521,17 @@ ev_view_handle_cursor_over_xy (EvView *view, gint x, gint y)
                ev_view_set_cursor (view, EV_VIEW_CURSOR_LINK);
        } else if (location_in_text (view, x + view->scroll_x, y + view->scroll_y)) {
                ev_view_set_cursor (view, EV_VIEW_CURSOR_IBEAM);
-       } else if (ev_view_get_form_field_at_location (view, x, y)) {
-               ev_view_set_cursor (view, EV_VIEW_CURSOR_LINK);
+       } else if ((field = ev_view_get_form_field_at_location (view, x, y))) {
+               if (field->is_read_only) {
+                       if (view->cursor == EV_VIEW_CURSOR_LINK ||
+                           view->cursor == EV_VIEW_CURSOR_IBEAM)
+                               ev_view_set_cursor (view, EV_VIEW_CURSOR_NORMAL);
+               } else if (EV_IS_FORM_FIELD_TEXT (field)) {
+                       ev_view_set_cursor (view, EV_VIEW_CURSOR_IBEAM);
+               } else {
+                       ev_view_set_cursor (view, EV_VIEW_CURSOR_LINK);
+               }
        } else {
-               ev_view_set_status (view, NULL);
                if (view->cursor == EV_VIEW_CURSOR_LINK ||
                    view->cursor == EV_VIEW_CURSOR_IBEAM)
                        ev_view_set_cursor (view, EV_VIEW_CURSOR_NORMAL);
@@ -3248,8 +3255,6 @@ ev_view_leave_notify_event (GtkWidget *widget, GdkEventCrossing   *event)
 {
        EvView *view = EV_VIEW (widget);
     
-       ev_view_set_status (view, NULL);
-
        if (view->cursor == EV_VIEW_CURSOR_LINK ||
            view->cursor == EV_VIEW_CURSOR_IBEAM)
                ev_view_set_cursor (view, EV_VIEW_CURSOR_NORMAL);
@@ -3563,7 +3568,6 @@ ev_view_finalize (GObject *object)
 {
        EvView *view = EV_VIEW (object);
 
-       g_free (view->status);
        g_free (view->find_status);
 
        clear_selection (view);
@@ -3698,11 +3702,8 @@ ev_view_get_property (GObject *object,
        EvView *view = EV_VIEW (object);
 
        switch (prop_id) {
-               case PROP_STATUS:
-                       g_value_set_string (value, view->status);
-                       break;
                case PROP_FIND_STATUS:
-                       g_value_set_string (value, view->status);
+                       g_value_set_string (value, view->find_status);
                        break;
                case PROP_CONTINUOUS:
                        g_value_set_boolean (value, view->continuous);
@@ -3815,13 +3816,6 @@ ev_view_class_init (EvViewClass *class)
                         G_TYPE_NONE, 1,
                         G_TYPE_OBJECT);
 
-       g_object_class_install_property (object_class,
-                                        PROP_STATUS,
-                                        g_param_spec_string ("status",
-                                                             "Status Message",
-                                                             "The status message",
-                                                             NULL,
-                                                             G_PARAM_READABLE));
 
        g_object_class_install_property (object_class,
                                         PROP_FIND_STATUS,
@@ -4718,28 +4712,7 @@ ev_view_set_zoom_for_size (EvView *view,
                ev_view_zoom_for_size_single_page (view, width, height, vsb_width, hsb_height);
 }
 
-/*** Status text messages ***/
-
-const char *
-ev_view_get_status (EvView *view)
-{
-       g_return_val_if_fail (EV_IS_VIEW (view), NULL);
-
-       return view->status;
-}
-
-static void
-ev_view_set_status (EvView *view, const char *message)
-{
-       g_return_if_fail (EV_IS_VIEW (view));
-
-       if (message != view->status) {
-               g_free (view->status);
-               view->status = g_strdup (message);
-               g_object_notify (G_OBJECT (view), "status");
-       }
-}
-
+/*** Find ***/
 static void
 update_find_status_message (EvView *view, gboolean this_page)
 {
@@ -4789,8 +4762,6 @@ ev_view_set_find_status (EvView *view, const char *message)
        g_object_notify (G_OBJECT (view), "find-status");
 }
 
-/*** Find ***/
-
 static void
 jump_to_find_result (EvView *view)
 {