Re: How to get information about focus from other then my application?
- From: "zielone" <zielone0 poczta onet pl>
- To: <gtk-app-devel-list gnome org>
- Subject: Re: How to get information about focus from other then my application?
- Date: Mon, 3 Jan 2005 18:37:07 +0100
Hi thanks for reply eleoAnatoly
I do as Anatoly suggest me:
http://mail.gnome.org/archives/gtk-app-devel-list/2005-January/msg00005.
html
but my program still doesnt work correct, i write simple code, please
look below:
<== BEGIN CODE ==>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
#include <X11/Xlib.h>
static GdkFilterReturn event_monitor (GdkXEvent *gdkxevent, GdkEvent
*event,gpointer ptr)
{
XEvent *ev = (XEvent *) gdkxevent;
Window win;
int type;
if (ev->type == FocusIn || ev->type == FocusOut)
{
XGetInputFocus(GDK_DISPLAY(), &win, &type);
g_print("Event type %d\n",(int)ev->type);
}
return GDK_FILTER_CONTINUE;
}
static void hello( GtkWidget *widget,
gpointer data )
{
g_print("End program\n");
}
static gboolean delete_event( GtkWidget *widget,
GdkEvent *event,
gpointer data )
{
g_print ("delete event occurred\n");
return FALSE;
}
static void destroy( GtkWidget *widget,
gpointer data )
{
gdk_window_remove_filter (gdk_get_default_root_window
(),eleo(GdkFilterFunc)event_monitor,NULL);
gtk_main_quit ();
}
int main( int argc,char *argv[] )
{
GtkWidget *window;
GtkWidget *button;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
XSelectInput(GDK_DISPLAY(), GDK_ROOT_WINDOW(), FocusChangeMask);
gdk_window_add_filter(gdk_get_default_root_window(),eleo(GdkFilterFunc)e
vent_monitor, NULL);
g_signal_connect (G_OBJECT (window), "delete_event",
G_CALLBACK (delete_event), NULL);
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (destroy), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
button = gtk_button_new_with_label ("Hello World");
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (hello), NULL);
g_signal_connect_swapped (G_OBJECT (button), "clicked",
G_CALLBACK (gtk_widget_destroy),
G_OBJECT (window));
gtk_container_add (GTK_CONTAINER (window), button);
gtk_widget_show (button);
gtk_widget_show (window);
gtk_main ();
return 0;
}
<== END CODE ==>
And in my function event_monitor I dont receive any message at all, when
i remove gdk_get_default_root_window() from gdk_window_add_filter and
place there NULL
I only receive events from my application, do someone know what can help
me to
Receive information from any application which are running???
I will be grateful to end of my life if someone help me
Greats
Michal
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]