Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2007-07-24 18:19:38 (GMT)
committer Carlos Garcia Campos <carlosgc@src.gnome.org>2007-07-24 18:19:38 (GMT)
commit7172457c057ce9ec6011866e055f9c5ce6e284f2 (patch)
tree6e63ff4628c789969a76b34b2493ff9b0f5cee28 /shell
parentcb1b1546df981d4e3f0fbc4e4e1dacb64090a473 (diff)
Use IBEAM cursor for text form fields and NORMAL cursor for read only
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
Diffstat (limited to 'shell')
-rw-r--r--shell/ev-view-private.h1
-rw-r--r--shell/ev-view.c65
2 files changed, 18 insertions, 48 deletions
diff --git a/shell/ev-view-private.h b/shell/ev-view-private.h
index 4908711..12d5c8a 100644
--- a/shell/ev-view-private.h
+++ b/shell/ev-view-private.h
@@ -78,7 +78,6 @@ struct _EvView {
EvDocument *document;
- char *status;
char *find_status;
int find_result;
gboolean jump_to_find_result;
diff --git a/shell/ev-view.c b/shell/ev-view.c
index 7432171..a6d198f 100644
--- a/shell/ev-view.c
+++ b/shell/ev-view.c
@@ -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)
{