diff --git a/src/shell-global.c b/src/shell-global.c index bc99b43ad..531ef2c44 100644 --- a/src/shell-global.c +++ b/src/shell-global.c @@ -1303,6 +1303,26 @@ shell_popup_menu (GtkMenu *menu, int button, guint32 time, button, time); } +/** + * shell_write_string_to_stream: + * @stream: a #GOutputStream + * @str: a UTF-8 string to write to @stream + * @error: location to store GError + * + * Write a string to a GOutputStream as UTF-8. This is a workaround + * for not having binary buffers in GJS. + * + * Return value: %TRUE if write succeeded + */ +gboolean +shell_write_string_to_stream (GOutputStream *stream, + const char *str, + GError **error) +{ + return g_output_stream_write_all (stream, str, strlen (str), + NULL, NULL, error); +} + /** * shell_global_get_current_time: * @global: A #ShellGlobal diff --git a/src/shell-global.h b/src/shell-global.h index 696b439df..480d47b56 100644 --- a/src/shell-global.h +++ b/src/shell-global.h @@ -92,6 +92,10 @@ ClutterModifierType shell_get_event_state (ClutterEvent *event); void shell_popup_menu (GtkMenu *menu, int button, guint32 time, int menu_x, int menu_y); +gboolean shell_write_string_to_stream (GOutputStream *stream, + const char *str, + GError **error); + guint32 shell_global_get_current_time (ShellGlobal *global); GAppLaunchContext *shell_global_create_app_launch_context (ShellGlobal *global);