fucking qt apps seem to be broken when it comes to take focus protocol. read

the icccm specs. grrr.

also - pooliepatch :)


SVN revision: 15409
This commit is contained in:
Carsten Haitzler 2005-06-18 01:35:30 +00:00
parent c2b632eaae
commit 2b59fb0143
2 changed files with 31 additions and 12 deletions

View File

@ -862,7 +862,9 @@ e_border_focus_set(E_Border *bd, int focus, int set)
* now the focus is on Y where it should be on X * now the focus is on Y where it should be on X
*/ */
// technially this is wrong to set the focus explicitly (passive focus model) // technially this is wrong to set the focus explicitly (passive focus model)
// ecore_x_window_focus(bd->client.win); // BUT qt applications dont work without it - we should get in touch with
// trolltech...
ecore_x_window_focus(bd->client.win);
ecore_x_icccm_take_focus_send(bd->client.win, ecore_x_current_time_get()); ecore_x_icccm_take_focus_send(bd->client.win, ecore_x_current_time_get());
// e_hints_active_window_set(bd->zone->container->manager, bd); // e_hints_active_window_set(bd->zone->container->manager, bd);
} }

View File

@ -11,8 +11,9 @@ static void _e_help(void);
int int
main(int argc, char **argv) main(int argc, char **argv)
{ {
int i; int i = 0;
Eet_File *ef; int valid_args = 0;
Eet_File *ef = NULL;
char buf[4096]; char buf[4096];
char *lang = NULL; char *lang = NULL;
@ -41,46 +42,55 @@ main(int argc, char **argv)
{ {
i++; i++;
lang = argv[i]; lang = argv[i];
valid_args++;
} }
else if ((!strcmp(argv[i], "-set-name")) && (i < (argc - 1))) else if ((!strcmp(argv[i], "-set-name")) && (i < (argc - 1)))
{ {
i++; i++;
set_name = argv[i]; set_name = argv[i];
valid_args++;
} }
else if ((!strcmp(argv[i], "-set-generic")) && (i < (argc - 1))) else if ((!strcmp(argv[i], "-set-generic")) && (i < (argc - 1)))
{ {
i++; i++;
set_generic = argv[i]; set_generic = argv[i];
valid_args++;
} }
else if ((!strcmp(argv[i], "-set-comment")) && (i < (argc - 1))) else if ((!strcmp(argv[i], "-set-comment")) && (i < (argc - 1)))
{ {
i++; i++;
set_comment = argv[i]; set_comment = argv[i];
valid_args++;
} }
else if ((!strcmp(argv[i], "-set-exe")) && (i < (argc - 1))) else if ((!strcmp(argv[i], "-set-exe")) && (i < (argc - 1)))
{ {
i++; i++;
set_exe = argv[i]; set_exe = argv[i];
valid_args++;
} }
else if ((!strcmp(argv[i], "-set-win-name")) && (i < (argc - 1))) else if ((!strcmp(argv[i], "-set-win-name")) && (i < (argc - 1)))
{ {
i++; i++;
set_win_name = argv[i]; set_win_name = argv[i];
valid_args++;
} }
else if ((!strcmp(argv[i], "-set-win-class")) && (i < (argc - 1))) else if ((!strcmp(argv[i], "-set-win-class")) && (i < (argc - 1)))
{ {
i++; i++;
set_win_class = argv[i]; set_win_class = argv[i];
valid_args++;
} }
else if ((!strcmp(argv[i], "-set-startup-notify")) && (i < (argc - 1))) else if ((!strcmp(argv[i], "-set-startup-notify")) && (i < (argc - 1)))
{ {
i++; i++;
set_startup_notify = atoi(argv[i]); set_startup_notify = atoi(argv[i]);
valid_args++;
} }
else if ((!strcmp(argv[i], "-set-wait-exit")) && (i < (argc - 1))) else if ((!strcmp(argv[i], "-set-wait-exit")) && (i < (argc - 1)))
{ {
i++; i++;
set_wait_exit = atoi(argv[i]); set_wait_exit = atoi(argv[i]);
valid_args++;
} }
else if ((!strcmp(argv[i], "-del-all"))) else if ((!strcmp(argv[i], "-del-all")))
{ {
@ -92,38 +102,47 @@ main(int argc, char **argv)
del_win_class = 1; del_win_class = 1;
del_startup_notify = 1; del_startup_notify = 1;
del_wait_exit = 1; del_wait_exit = 1;
valid_args++;
} }
else if ((!strcmp(argv[i], "-del-name"))) else if ((!strcmp(argv[i], "-del-name")))
{ {
del_name = 1; del_name = 1;
valid_args++;
} }
else if ((!strcmp(argv[i], "-del-generic"))) else if ((!strcmp(argv[i], "-del-generic")))
{ {
del_generic = 1; del_generic = 1;
valid_args++;
} }
else if ((!strcmp(argv[i], "-del-comment"))) else if ((!strcmp(argv[i], "-del-comment")))
{ {
del_comment = 1; del_comment = 1;
valid_args++;
} }
else if ((!strcmp(argv[i], "-del-exe"))) else if ((!strcmp(argv[i], "-del-exe")))
{ {
del_exe = 1; del_exe = 1;
valid_args++;
} }
else if ((!strcmp(argv[i], "-del-win-name"))) else if ((!strcmp(argv[i], "-del-win-name")))
{ {
del_win_name = 1; del_win_name = 1;
valid_args++;
} }
else if ((!strcmp(argv[i], "-del-win-class"))) else if ((!strcmp(argv[i], "-del-win-class")))
{ {
del_win_class = 1; del_win_class = 1;
valid_args++;
} }
else if ((!strcmp(argv[i], "-del-startup-notify"))) else if ((!strcmp(argv[i], "-del-startup-notify")))
{ {
del_startup_notify = 1; del_startup_notify = 1;
valid_args++;
} }
else if ((!strcmp(argv[i], "-del-wait-exit"))) else if ((!strcmp(argv[i], "-del-wait-exit")))
{ {
del_wait_exit = 1; del_wait_exit = 1;
valid_args++;
} }
else if ((!strcmp(argv[i], "-h")) || else if ((!strcmp(argv[i], "-h")) ||
(!strcmp(argv[i], "-help")) || (!strcmp(argv[i], "-help")) ||
@ -142,15 +161,13 @@ main(int argc, char **argv)
_e_help(); _e_help();
exit(0); exit(0);
} }
if ((!set_name) && (!set_generic) && (!set_comment) && (!set_exe) &&
(!set_win_name) && (!set_win_class) && (!set_startup_notify) && if (valid_args == 0) {
(!set_wait_exit) && (!del_name) && (!del_generic) && (!del_comment) && printf("ERROR: no valid arguments!\n");
(!del_exe) && (!del_win_name) && (!del_win_class) && _e_help();
(!del_startup_notify) && (!del_wait_exit)) exit(0);
{ }
printf("ERROR: nothing to do!\n");
exit(0);
}
eet_init(); eet_init();
ef = eet_open(file, EET_FILE_MODE_READ_WRITE); ef = eet_open(file, EET_FILE_MODE_READ_WRITE);
if (!ef) if (!ef)