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(); } }
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); }
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); } } }
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); }
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); } }
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); }
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; }
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); } } }
static VALUE rg_trigger_tooltip_query(VALUE self) { gtk_tooltip_trigger_tooltip_query(_SELF(self)); return self; }