Problems in GdkWindow Events with Gtk - DirectFb backend
- From: "Sreenivas Chowdary" <sreenivas pachva gmail com>
- To: directfb-dev directfb org, directfb-users directfb org, gtk-devel-list gnome org, gtk-app-devel-list gnome org, gtk-list gnome org
- Subject: Problems in GdkWindow Events with Gtk - DirectFb backend
- Date: Tue, 27 Nov 2007 18:29:32 +0530
Hi,
I am facing an issue to get events on GdkWindow which was built with
Gtk DirectFb backend.
In sample program i am creating a toplevel GdkWindow and creating a
child Gdkwindow.
While creating GdkWindow i have added events mask, and used
gdk_window_add_filter() function to add event handler callback to
GdkWindow.
While running executable I am not getting any events (Key press,
expose, button press etc..).
With same program we are getting events on Gtk - X11 backend.
Is Events handling implementation for GdkWindow with DirectFb backend
implemented or not?
Please suggest me how to get events on GdkWindow with DFB backend.
Sample program is this-
--------------------------------------------------------------------------------
#include <gtk/gtk.h>
#include <gdk/gdk.h>
GdkFilterReturn child_handle_event( void *event1, GdkEvent *event2,
gpointer userdata )
{
g_printf("child_handle_event\n");
}
int main(int argc, char* argv[])
{
GdkWindow *parent, *child;
GdkWindowAttr attr;
gtk_init(&argc, &argv);
attr.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK |
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK |
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK ;
attr.x = 100;
attr.y = 100;
attr.width = 800;
attr.height = 600;
attr.window_type = GDK_WINDOW_TOPLEVEL;
attr.wclass = GDK_INPUT_OUTPUT;
parent = gdk_window_new (NULL, &attr, GDK_WA_X | GDK_WA_Y);
attr.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK |
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK |
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK;
attr.x = 200;
attr.y = 200;
attr.width = 400;
attr.height = 300;
attr.window_type = GDK_WINDOW_CHILD;
attr.wclass = GDK_INPUT_OUTPUT;
child = gdk_window_new (parent, &attr, GDK_WA_X | GDK_WA_Y);
gdk_window_add_filter (child, child_handle_event, NULL);
gdk_window_show (child);
gdk_window_show (parent);
gtk_main();
}
-------------------------------------------------------------------------------------------
Thanks & Regards
Sreenivas
#include <gtk/gtk.h>
#include <gdk/gdk.h>
GdkFilterReturn child_handle_event( void *event1, GdkEvent *event2, gpointer userdata )
{
g_printf("child_handle_event\n");
}
int main(int argc, char* argv[])
{
GdkWindow *parent, *child;
GdkWindowAttr attr;
gtk_init(&argc, &argv);
attr.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK |
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK |
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK ;
attr.x = 100;
attr.y = 100;
attr.width = 800;
attr.height = 600;
attr.window_type = GDK_WINDOW_TOPLEVEL;
attr.wclass = GDK_INPUT_OUTPUT;
parent = gdk_window_new (NULL, &attr, GDK_WA_X | GDK_WA_Y);
attr.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK |
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK |
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK;
attr.x = 200;
attr.y = 200;
attr.width = 400;
attr.height = 300;
attr.window_type = GDK_WINDOW_CHILD;
attr.wclass = GDK_INPUT_OUTPUT;
child = gdk_window_new (parent, &attr, GDK_WA_X | GDK_WA_Y);
gdk_window_add_filter (child, child_handle_event, NULL);
gdk_window_show (child);
gdk_window_show (parent);
gtk_main();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]