wayland/xdg-foreign: Move out ID generation helper to util.c
It'll be used to generate ID in the same way in other places later. https://bugzilla.gnome.org/show_bug.cgi?id=784199
This commit is contained in:
parent
12710dc644
commit
34e7134db2
@ -34,4 +34,7 @@ void meta_set_syncing (gboolean setting);
|
|||||||
void meta_set_replace_current_wm (gboolean setting);
|
void meta_set_replace_current_wm (gboolean setting);
|
||||||
void meta_set_is_wayland_compositor (gboolean setting);
|
void meta_set_is_wayland_compositor (gboolean setting);
|
||||||
|
|
||||||
|
char * meta_generate_random_id (GRand *rand,
|
||||||
|
int length);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -994,5 +994,21 @@ meta_get_locale_direction (void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *
|
||||||
|
meta_generate_random_id (GRand *rand,
|
||||||
|
int length)
|
||||||
|
{
|
||||||
|
char *id;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
/* Generate a random string of printable ASCII characters. */
|
||||||
|
|
||||||
|
id = g_new0 (char, length + 1);
|
||||||
|
for (i = 0; i < length; i++)
|
||||||
|
id[i] = (char) g_rand_int_range (rand, 32, 127);
|
||||||
|
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
/* eof util.c */
|
/* eof util.c */
|
||||||
|
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
|
|
||||||
#include <wayland-server.h>
|
#include <wayland-server.h>
|
||||||
|
|
||||||
|
#include "core/util-private.h"
|
||||||
#include "wayland/meta-wayland-private.h"
|
#include "wayland/meta-wayland-private.h"
|
||||||
#include "wayland/meta-wayland-versions.h"
|
#include "wayland/meta-wayland-versions.h"
|
||||||
#include "wayland/meta-wayland-xdg-shell.h"
|
#include "wayland/meta-wayland-xdg-shell.h"
|
||||||
@ -80,21 +81,6 @@ xdg_exporter_destroy (struct wl_client *client,
|
|||||||
wl_resource_destroy (resource);
|
wl_resource_destroy (resource);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
|
||||||
generate_handle (MetaWaylandXdgForeign *foreign)
|
|
||||||
{
|
|
||||||
char *handle = g_new0 (char, META_XDG_FOREIGN_HANDLE_LENGTH + 1);
|
|
||||||
int i;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Generate a random string of printable ASCII characters.
|
|
||||||
*/
|
|
||||||
for (i = 0; i < META_XDG_FOREIGN_HANDLE_LENGTH; i++)
|
|
||||||
handle[i] = (char) g_rand_int_range (foreign->rand, 32, 127);
|
|
||||||
|
|
||||||
return handle;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
xdg_exported_destroy (struct wl_client *client,
|
xdg_exported_destroy (struct wl_client *client,
|
||||||
struct wl_resource *resource)
|
struct wl_resource *resource)
|
||||||
@ -195,7 +181,8 @@ xdg_exporter_export (struct wl_client *client,
|
|||||||
|
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
handle = generate_handle (foreign);
|
handle = meta_generate_random_id (foreign->rand,
|
||||||
|
META_XDG_FOREIGN_HANDLE_LENGTH);
|
||||||
|
|
||||||
if (!g_hash_table_contains (foreign->exported_surfaces, handle))
|
if (!g_hash_table_contains (foreign->exported_surfaces, handle))
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user