Ejemplo n.º 1
0
void ChromeClient::mouseDidMoveOverElement(const HitTestResult& hit, unsigned modifierFlags)
{
    // If a tooltip must be displayed it will be, afterwards, when
    // setToolTip is called; this is just a work-around to make sure
    // it updates its location correctly; see
    // https://bugs.webkit.org/show_bug.cgi?id=15793.
    g_object_set(m_webView, "has-tooltip", FALSE, NULL);

    GdkDisplay* gdkDisplay;
    GtkWidget* window = gtk_widget_get_toplevel(GTK_WIDGET(m_webView));
    if (GTK_WIDGET_TOPLEVEL(window))
        gdkDisplay = gtk_widget_get_display(window);
    else
        gdkDisplay = gdk_display_get_default();
    gtk_tooltip_trigger_tooltip_query(gdkDisplay);

    // check if the element is a link...
    bool isLink = hit.isLiveLink();
    if (isLink) {
        KURL url = hit.absoluteLinkURL();
        if (!url.isEmpty() && url != m_hoveredLinkURL) {
            TextDirection dir;
            CString titleString = hit.title(dir).utf8();
            CString urlString = url.prettyURL().utf8();
            g_signal_emit_by_name(m_webView, "hovering-over-link", titleString.data(), urlString.data());
            m_hoveredLinkURL = url;
        }
    } else if (!isLink && !m_hoveredLinkURL.isEmpty()) {
        g_signal_emit_by_name(m_webView, "hovering-over-link", 0, 0);
        m_hoveredLinkURL = KURL();
    }
}
Ejemplo n.º 2
0
void
pragha_toolbar_update_progress (PraghaToolbar *toolbar, gint length, gint progress)
{
	gdouble fraction = 0;
	gchar *tot_length = NULL, *cur_pos = NULL, *str_length = NULL, *str_cur_pos = NULL;

	cur_pos = convert_length_str(progress);
	str_cur_pos = g_markup_printf_escaped ("<small>%s</small>", cur_pos);

	if (length == 0 || !pragha_toolbar_get_remaning_mode (toolbar)) {
		tot_length = convert_length_str(length);
		str_length = g_markup_printf_escaped ("<small>%s</small>", tot_length);
	}
	else {
		tot_length = convert_length_str(length - progress);
		str_length = g_markup_printf_escaped ("<small>- %s</small>", tot_length);
	}

	gtk_label_set_markup (GTK_LABEL(toolbar->track_time_label), str_cur_pos);
	gtk_label_set_markup (GTK_LABEL(toolbar->track_length_label), str_length);

	gtk_tooltip_trigger_tooltip_query(gtk_widget_get_display (toolbar->track_length_label));

	if(length) {
		fraction = (gdouble) progress / (gdouble)length;
		gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(toolbar->track_progress_bar), fraction);
	}

	g_free(cur_pos);
	g_free(str_cur_pos);

	g_free(tot_length);
	g_free(str_length);
}
Ejemplo n.º 3
0
static void tooltip_trigger(void)
{
	GdkDisplay *display = gdk_display_get_default();
#if GTK_CHECK_VERSION(3, 0, 0)
	GdkDeviceManager *manager = gdk_display_get_device_manager(display);
	GdkDevice *device = gdk_device_manager_get_client_pointer(manager);
	GdkWindow *window = gdk_device_get_window_at_position(device, NULL, NULL);
#else
	GdkWindow *window = gdk_display_get_window_at_pointer(display, NULL, NULL);
#endif
	GeanyDocument *doc = document_get_current();

	if (doc && window)
	{
		GtkWidget *event_widget;

		gdk_window_get_user_data(window, (void **) &event_widget);
		/* if you know a better working way, do not hesistate to tell me */
		if (event_widget &&
			gtk_widget_is_ancestor(event_widget, GTK_WIDGET(doc->editor->sci)))
		{
			gtk_tooltip_trigger_tooltip_query(display);
		}
	}
}
Ejemplo n.º 4
0
Archivo: gnac-ui.c Proyecto: GNOME/gnac
void
gnac_ui_trayicon_tooltip_update(const gchar *tooltip)
{
  if (!gnac_settings_ui_get_boolean(GNAC_KEY_TRAY_ICON) || !trayicon) return;

  g_free(tooltip_path);
  tooltip_path = g_strdup(tooltip);

  GdkDisplay *display = gdk_display_get_default();
  if (display) gtk_tooltip_trigger_tooltip_query(display);
}
Ejemplo n.º 5
0
void
xkb_refresh_gui (t_xkb *xkb)
{
    GdkDisplay * display;

    /* Part of the image may remain visible after display type change */
    gtk_widget_queue_draw_area (xkb->btn, 0, 0,
            xkb->button_hsize, xkb->button_vsize);

    display = gdk_display_get_default();
    if (display)
    {
        gtk_tooltip_trigger_tooltip_query(display);
    }
}
Ejemplo n.º 6
0
static void
icon_released (GtkEntry             *entry,
              GtkEntryIconPosition  pos,
              GdkEvent             *event,
              gpointer              user_data)
{
        GtkSettings *settings;
        gint timeout;

        settings = gtk_widget_get_settings (GTK_WIDGET (entry));

        g_object_get (settings, "gtk-tooltip-timeout", &timeout, NULL);
        g_object_set (settings, "gtk-tooltip-timeout", 1, NULL);
        gtk_tooltip_trigger_tooltip_query (gtk_widget_get_display (GTK_WIDGET (entry)));
        g_object_set (settings, "gtk-tooltip-timeout", timeout, NULL);
}
Ejemplo n.º 7
0
gboolean
show_tooltip_now (GtkWidget *widget,
                  GdkEvent  *event)
{
        GtkSettings *settings;
        gint timeout;

        settings = gtk_widget_get_settings (widget);

        g_object_get (settings, "gtk-tooltip-timeout", &timeout, NULL);
        g_object_set (settings, "gtk-tooltip-timeout", 1, NULL);
        gtk_tooltip_trigger_tooltip_query (gtk_widget_get_display (widget));
        g_object_set (settings, "gtk-tooltip-timeout", timeout, NULL);

        return FALSE;
}
Ejemplo n.º 8
0
static void tooltip_trigger(void)
{
	GdkDisplay *display = gdk_display_get_default();
	GdkWindow *window = gdk_display_get_window_at_pointer(display, NULL, NULL);
	GeanyDocument *doc = document_get_current();

	if (doc && window)
	{
		GtkWidget *event_widget;

		gdk_window_get_user_data(window, (void **) &event_widget);
		/* if you know a better working way, do not hesistate to tell me */
		if (event_widget &&
			gtk_widget_is_ancestor(event_widget, GTK_WIDGET(doc->editor->sci)))
		{
			gtk_tooltip_trigger_tooltip_query(display);
		}
	}
}
Ejemplo n.º 9
0
static VALUE
rg_trigger_tooltip_query(VALUE self)
{
    gtk_tooltip_trigger_tooltip_query(_SELF(self));
    return self;
}