[PATCH] smoke:fix the segment fault error

juan.j.zhao at linux.intel.com juan.j.zhao at linux.intel.com
Thu Feb 2 16:02:06 PST 2012


From: Juan Zhao <juan.j.zhao at linux.intel.com>

Add widget_set_size in the initiate time to allow smoke get the
 correct surface later. Or it will report segment fault error
 because of the null surface.
Also add resize_handler to not allow resizing just like flower.

Signed-off-by: Juan Zhao <juan.j.zhao at linux.intel.com>
---
 clients/smoke.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/clients/smoke.c b/clients/smoke.c
index c1665ce..69a1ac7 100644
--- a/clients/smoke.c
+++ b/clients/smoke.c
@@ -249,6 +249,16 @@ smoke_motion_handler(struct widget *widget, struct input *input,
 	return POINTER_HAND1;
 }
 
+static void
+resize_handler(struct widget *widget,
+	       int32_t width, int32_t height, void *data)
+{
+	struct smoke *smoke = data;
+
+	/* Dont resize me */
+	widget_set_size(smoke->widget, smoke->width, smoke->height);
+}
+
 int main(int argc, char *argv[])
 {
 	struct timespec ts;
@@ -270,6 +280,7 @@ int main(int argc, char *argv[])
 	smoke.window = window_create(d);
 	smoke.widget = window_add_widget(smoke.window, &smoke);
 	window_set_title(smoke.window, "smoke");
+	widget_set_size(smoke.widget, smoke.width, smoke.height);
 
 	window_set_buffer_type(smoke.window, WINDOW_BUFFER_TYPE_SHM);
 	clock_gettime(CLOCK_MONOTONIC, &ts);
@@ -291,6 +302,7 @@ int main(int argc, char *argv[])
 	window_flush(smoke.window);
 
 	widget_set_motion_handler(smoke.widget, smoke_motion_handler);
+	widget_set_resize_handler(smoke.widget, resize_handler);
 
 	window_set_user_data(smoke.window, &smoke);
 	frame_callback(&smoke, NULL, 0);
-- 
1.7.2.2



More information about the wayland-devel mailing list