diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/xfns.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/xfns.c b/src/xfns.c index 03cbaaec8e2..73a88dfc058 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -1605,6 +1605,16 @@ x_set_name_internal (f, name) | |||
| 1605 | int bytes, stringp; | 1605 | int bytes, stringp; |
| 1606 | int do_free_icon_value = 0, do_free_text_value = 0; | 1606 | int do_free_icon_value = 0, do_free_text_value = 0; |
| 1607 | Lisp_Object coding_system; | 1607 | Lisp_Object coding_system; |
| 1608 | #ifdef USE_GTK | ||
| 1609 | Lisp_Object encoded_name; | ||
| 1610 | struct gcpro gcpro1; | ||
| 1611 | |||
| 1612 | /* As ENCODE_UTF_8 may cause GC and relocation of string data, | ||
| 1613 | we use it before x_encode_text that may return string data. */ | ||
| 1614 | GCPRO1 (name); | ||
| 1615 | encoded_name = ENCODE_UTF_8 (name); | ||
| 1616 | UNGCPRO; | ||
| 1617 | #endif | ||
| 1608 | 1618 | ||
| 1609 | coding_system = Qcompound_text; | 1619 | coding_system = Qcompound_text; |
| 1610 | /* Note: Encoding strategy | 1620 | /* Note: Encoding strategy |
| @@ -1645,7 +1655,7 @@ x_set_name_internal (f, name) | |||
| 1645 | 1655 | ||
| 1646 | #ifdef USE_GTK | 1656 | #ifdef USE_GTK |
| 1647 | gtk_window_set_title (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), | 1657 | gtk_window_set_title (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), |
| 1648 | (char *) SDATA (ENCODE_UTF_8 (name))); | 1658 | (char *) SDATA (encoded_name)); |
| 1649 | #else /* not USE_GTK */ | 1659 | #else /* not USE_GTK */ |
| 1650 | XSetWMName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), &text); | 1660 | XSetWMName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), &text); |
| 1651 | #endif /* not USE_GTK */ | 1661 | #endif /* not USE_GTK */ |