]> www.fi.muni.cz Git - evince.git/commitdiff
Use mozilla style vs gtk style, way better for links.
authorMarco Pesenti Gritti <mpg@redhat.com>
Wed, 7 Sep 2005 14:55:34 +0000 (14:55 +0000)
committerMarco Pesenti Gritti <marco@src.gnome.org>
Wed, 7 Sep 2005 14:55:34 +0000 (14:55 +0000)
2005-09-07  Marco Pesenti Gritti  <mpg@redhat.com>

        * lib/ev-tooltip.c:

        Use mozilla style vs gtk style, way better for links.

        * shell/ev-view.c: (ev_view_motion_notify_event),
        (ev_view_destroy), (ev_view_init):

        Deactive tooltip when the link hovered is changed.

ChangeLog
lib/ev-tooltip.c
shell/ev-view.c

index d1765274a8bc8f446922c4880b5de619704a0174..80be1ca164f0a91532148b1112afb1d50cbec871 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2005-09-07  Marco Pesenti Gritti  <mpg@redhat.com>
+
+       * lib/ev-tooltip.c:
+
+       Use mozilla style vs gtk style, way better for links.
+
+       * shell/ev-view.c: (ev_view_motion_notify_event),
+       (ev_view_destroy), (ev_view_init):
+
+       Deactive tooltip when the link hovered is changed.
+
 2005-09-07  Marco Pesenti Gritti  <mpg@redhat.com>
 
        * backend/ev-document.h:
index 4aeb3654661529e414303f00bd2b57f4c0d06006..ce8158c19f15526b0d534bf54f2a022eacf4c81d 100644 (file)
@@ -29,7 +29,7 @@
 #include <gtk/gtklabel.h>
 
 #define DEFAULT_DELAY 500
-#define STICKY_DELAY 0
+#define STICKY_DELAY 500
 #define STICKY_REVERT_DELAY 1000
 
 struct _EvTooltipPrivate {
index 052529eb7eef27389f0e235fc5d34220b4245337..fa0f087635b922e3c720859b5342418136faa7e1 100644 (file)
@@ -150,6 +150,7 @@ struct _EvView {
        int pressed_button;
        EvViewCursor cursor;
        GtkWidget *link_tooltip;
+       EvLink *hovered_link;
 
        EvPageCache *page_cache;
        EvPixbufCache *pixbuf_cache;
@@ -1588,16 +1589,18 @@ ev_view_motion_notify_event (GtkWidget      *widget,
 
                link = get_link_at_location (view, event->x + view->scroll_x, event->y + view->scroll_y);
 
-               if (!link && view->link_tooltip) {
+               if (view->link_tooltip == NULL) {
+                       view->link_tooltip = ev_tooltip_new (GTK_WIDGET (view));
+               }
+
+               if (view->hovered_link != link) {
+                       view->hovered_link = link;
                        ev_tooltip_deactivate (EV_TOOLTIP (view->link_tooltip));
                }
 
                 if (link) {
                        char *msg = tip_from_link (view, link);
 
-                       if (view->link_tooltip == NULL) {
-                               view->link_tooltip = ev_tooltip_new (GTK_WIDGET (view));
-                       }
                        ev_tooltip_set_position (EV_TOOLTIP (view->link_tooltip), event->x, event->y);
                        ev_tooltip_set_text (EV_TOOLTIP (view->link_tooltip), msg);
                        ev_tooltip_activate (EV_TOOLTIP (view->link_tooltip));
@@ -1946,13 +1949,14 @@ ev_view_destroy (GtkObject *object)
                g_object_unref (view->document);
                view->document = NULL;
        }
+
        if (view->pixbuf_cache) {
                g_object_unref (view->pixbuf_cache);
                view->pixbuf_cache = NULL;
        }
+
        if (view->link_tooltip) {
                gtk_widget_destroy (view->link_tooltip);
-               view->link_tooltip = NULL;
        }
 
        ev_view_set_scroll_adjustments (view, NULL, NULL);
@@ -2191,7 +2195,6 @@ ev_view_init (EvView *view)
        view->cursor = EV_VIEW_CURSOR_NORMAL;
        view->drag_info.in_drag = FALSE;
        view->selection_info.in_selection = FALSE;
-
        view->selection_mode = EV_VIEW_SELECTION_TEXT;
        view->continuous = TRUE;
        view->dual_page = FALSE;