Mercurial > pidgin.yaz
comparison pidgin/gtkimhtml.c @ 25497:67ad619bd97f
propagate from branch 'im.pidgin.pidgin' (head 3d1e6b8637ff9133c8f17e9aeaeea1284c898d86)
to branch 'im.pidgin.pidgin.yaz' (head cf1ed778db33093adccaec9aa0399ac72a0b712f)
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Mon, 04 Jun 2007 07:22:38 +0000 |
parents | 2e1131c31941 08e95637208f |
children | fb0b82b40f98 |
comparison
equal
deleted
inserted
replaced
17708:794abbe3e14e | 25497:67ad619bd97f |
---|---|
93 GdkDragContext *context, | 93 GdkDragContext *context, |
94 gint x, | 94 gint x, |
95 gint y, | 95 gint y, |
96 guint time); | 96 guint time); |
97 | 97 |
98 /* yaz. If you want to use shortcut keys that may conflict with | |
99 inputmethods, change this to 1. */ | |
100 #define ENABLE_SHORTCUT 0 | |
101 | |
98 static void preinsert_cb(GtkTextBuffer *buffer, GtkTextIter *iter, gchar *text, gint len, GtkIMHtml *imhtml); | 102 static void preinsert_cb(GtkTextBuffer *buffer, GtkTextIter *iter, gchar *text, gint len, GtkIMHtml *imhtml); |
99 static void insert_cb(GtkTextBuffer *buffer, GtkTextIter *iter, gchar *text, gint len, GtkIMHtml *imhtml); | 103 static void insert_cb(GtkTextBuffer *buffer, GtkTextIter *iter, gchar *text, gint len, GtkIMHtml *imhtml); |
100 static void delete_cb(GtkTextBuffer *buffer, GtkTextIter *iter, GtkTextIter *end, GtkIMHtml *imhtml); | 104 static void delete_cb(GtkTextBuffer *buffer, GtkTextIter *iter, GtkTextIter *end, GtkIMHtml *imhtml); |
101 static void insert_ca_cb(GtkTextBuffer *buffer, GtkTextIter *arg1, GtkTextChildAnchor *arg2, gpointer user_data); | 105 static void insert_ca_cb(GtkTextBuffer *buffer, GtkTextIter *arg1, GtkTextChildAnchor *arg2, gpointer user_data); |
102 static void gtk_imhtml_apply_tags_on_insert(GtkIMHtml *imhtml, GtkTextIter *start, GtkTextIter *end); | 106 static void gtk_imhtml_apply_tags_on_insert(GtkIMHtml *imhtml, GtkTextIter *start, GtkTextIter *end); |
404 } | 408 } |
405 | 409 |
406 static gint | 410 static gint |
407 gtk_imhtml_tip (gpointer data) | 411 gtk_imhtml_tip (gpointer data) |
408 { | 412 { |
409 GtkIMHtml *imhtml = data; | 413 GtkIMHtml *imhtml = (GtkIMHtml *)data; |
410 PangoFontMetrics *font_metrics; | 414 PangoFontMetrics *font_metrics; |
411 PangoLayout *layout; | 415 PangoLayout *layout; |
412 PangoFont *font; | 416 PangoFont *font; |
417 PangoLanguage *lang; | |
413 | 418 |
414 gint gap, x, y, h, w, scr_w, baseline_skip; | 419 gint gap, x, y, h, w, scr_w, baseline_skip; |
415 | 420 |
416 g_return_val_if_fail(GTK_IS_IMHTML(imhtml), FALSE); | 421 g_return_val_if_fail(GTK_IS_IMHTML(imhtml), FALSE); |
417 | 422 |
448 g_free(tmp); | 453 g_free(tmp); |
449 | 454 |
450 return FALSE; | 455 return FALSE; |
451 } | 456 } |
452 | 457 |
453 font_metrics = pango_font_get_metrics(font, NULL); | 458 lang = pango_context_get_language (pango_layout_get_context(layout)); |
459 font_metrics = pango_font_get_metrics(font, lang); //it's ok. | |
460 // font_metrics = pango_font_get_metrics(font, NULL); //crash! | |
454 | 461 |
455 pango_layout_get_pixel_size(layout, &scr_w, NULL); | 462 pango_layout_get_pixel_size(layout, &scr_w, NULL); |
456 gap = PANGO_PIXELS((pango_font_metrics_get_ascent(font_metrics) + | 463 gap = PANGO_PIXELS((pango_font_metrics_get_ascent(font_metrics) + |
457 pango_font_metrics_get_descent(font_metrics))/ 4); | 464 pango_font_metrics_get_descent(font_metrics))/ 4); |
458 | 465 |
553 gdk_window_set_cursor(win, GTK_IMHTML(imhtml)->arrow_cursor); | 560 gdk_window_set_cursor(win, GTK_IMHTML(imhtml)->arrow_cursor); |
554 if (GTK_IMHTML(imhtml)->tip_timer) | 561 if (GTK_IMHTML(imhtml)->tip_timer) |
555 g_source_remove(GTK_IMHTML(imhtml)->tip_timer); | 562 g_source_remove(GTK_IMHTML(imhtml)->tip_timer); |
556 GTK_IMHTML(imhtml)->tip_timer = 0; | 563 GTK_IMHTML(imhtml)->tip_timer = 0; |
557 } | 564 } |
558 | 565 //yaz here bomb explodes |
566 #if 1 | |
559 if (tip){ | 567 if (tip){ |
560 if (!GTK_IMHTML(imhtml)->editable) | 568 if (!GTK_IMHTML(imhtml)->editable) |
561 gdk_window_set_cursor(win, GTK_IMHTML(imhtml)->hand_cursor); | 569 gdk_window_set_cursor(win, GTK_IMHTML(imhtml)->hand_cursor); |
562 GTK_IMHTML(imhtml)->tip_timer = g_timeout_add (TOOLTIP_TIMEOUT, | 570 GTK_IMHTML(imhtml)->tip_timer = g_timeout_add (TOOLTIP_TIMEOUT, |
563 gtk_imhtml_tip, imhtml); | 571 gtk_imhtml_tip, imhtml); |
564 } | 572 } |
565 | 573 #endif |
566 GTK_IMHTML(imhtml)->tip = tip; | 574 GTK_IMHTML(imhtml)->tip = tip; |
567 g_slist_free(tags); | 575 g_slist_free(tags); |
568 return FALSE; | 576 return FALSE; |
569 } | 577 } |
570 | 578 |