Focus issue with GTK-3.4.1
- From: jagat sharma <jagatsharma26 gmail com>
- To: gtk-list gnome org
- Subject: Focus issue with GTK-3.4.1
- Date: Fri, 14 Sep 2012 10:11:27 +0530
Dear All,
I am facing one Focus issue in my application. when i run my app with GTK-3.0.6 libs its working fine with Xorg-1.12.0 . But when i run my same App with GTK-3.4.1 libs events are not working .
plz check the attached code of my App. Please provide some light on this issue i will be very thankfull to you .
--
Thanks & Regards
Jagat Prakash Sharma
Mobile No.-- 91-09899967558
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <gdk/gdkx.h>
#include <gdk/gdkkeysyms.h>
#include <stdlib.h>
#include <string.h>
GtkWidget *window;
GtkWidget *Hack;
gint count = 0;
char buf[5];
void increase(GtkWidget *widget, gpointer label)
{
count++;
sprintf(buf, "%d", count);
gtk_label_set_text(GTK_LABEL(label), buf);
}
void decrease(GtkWidget *widget, gpointer label)
{
count--;
sprintf(buf, "%d", count);
gtk_label_set_text(GTK_LABEL(label), buf);
}
void SynthesizeKeyBoardEvent(int type, long keyval)
{
GdkEvent event;
memset(&event, 0, sizeof(GdkEvent));
event.key.type = (GdkEventType)type;
event.key.window = gtk_widget_get_window(window);
event.key.keyval = keyval;
event.key.send_event = TRUE;
event.key.time = GDK_CURRENT_TIME;
event.key.state = GDK_KEY_PRESS_MASK;
GdkKeymapKey* keys;
gint n_keys;
if(gdk_keymap_get_entries_for_keyval(gdk_keymap_get_default(), keyval, &keys, &n_keys))
{
event.key.hardware_keycode = keys[0].keycode;
event.key.group = keys[0].group;
}
event.key.state = 0;
gdk_event_put(&event);
gdk_flush();
g_free(keys);
}
void SynthesizeMouseMoveEvent(int X,int Y)
{
gdk_display_warp_pointer( gdk_display_get_default (),gdk_display_get_default_screen (gdk_display_get_default ()),X,Y);
}
static void ontime(gpointer data)
{
static long keyVal = GDK_KEY_Up;
static int once = 1;
if(once)
{
SynthesizeMouseMoveEvent(100, 100);
once = 0;
}
if(keyVal == GDK_KEY_Up)
{
SynthesizeKeyBoardEvent(GDK_KEY_PRESS, GDK_KEY_Up);
//SynthesizeKeyBoardEvent(GDK_KEY_RELEASE, GDK_KEY_Up);
fprintf(stderr, "KEY PRESSED ---- UP \n");
Hack=gtk_window_get_focus((GtkWindow *)window) ;
const char *ptr =gtk_widget_get_name(Hack);
printf("\n********value of ptr=%s************\n",ptr);
keyVal = GDK_KEY_Down;
}
else if(keyVal == GDK_KEY_Return)
{
SynthesizeKeyBoardEvent(GDK_KEY_PRESS, GDK_KEY_Return);
//SynthesizeKeyBoardEvent(GDK_KEY_RELEASE, GDK_KEY_Return);
fprintf(stderr, "KEY PRESSED ---- ENTER \n");
keyVal = GDK_KEY_Down;
}
else if(keyVal == GDK_KEY_Down)
{
SynthesizeKeyBoardEvent(GDK_KEY_PRESS, GDK_KEY_Down);
//SynthesizeKeyBoardEvent(GDK_KEY_RELEASE, GDK_KEY_Down);
//SynthesizeKeyBoardEvent(GDK_KEY_PRESS, GDK_KEY_Return);
fprintf(stderr, "KEY PRESSED ---- DOWN \n");
Hack=gtk_window_get_focus((GtkWindow *)window) ;
const char *ptr =gtk_widget_get_name(Hack);
printf("\n********value of ptr=%s************\n",ptr);
keyVal = GDK_KEY_Up;
}
}
int main(int argc, char *argv[])
{
printf("[WebUI Browser] start main \n");
// XInitThreads();
gtk_init(&argc, &argv);
if (!g_thread_supported())
g_thread_init(NULL);
GtkWidget *label;
// GtkWidget *window;
GtkWidget *frame;
GtkWidget *plus;
GtkWidget *minus;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
// gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(window), 250, 180);
gtk_window_set_title(GTK_WINDOW(window), "+-");
frame = gtk_fixed_new();
gtk_container_add(GTK_CONTAINER(window), frame);
plus = gtk_button_new_with_label("+");
gtk_widget_set_size_request(plus, 80, 35);
gtk_widget_set_name(plus,"plus");
gtk_fixed_put(GTK_FIXED(frame), plus, 50, 20);
minus = gtk_button_new_with_label("-");
gtk_widget_set_size_request(minus, 80, 35);
gtk_widget_set_name(minus,"minus");
gtk_fixed_put(GTK_FIXED(frame), minus, 50, 80);
label = gtk_label_new("0");
gtk_fixed_put(GTK_FIXED(frame), label, 190, 58);
gtk_widget_grab_focus(minus);
gtk_widget_show_all(window);
g_signal_connect(window, "destroy",
G_CALLBACK (gtk_main_quit), NULL);
g_timeout_add(1000, (GSourceFunc) ontime, window) ;
gtk_main();
return 0;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]