[Gambas-user] "The program received an X Window System error"... and more problems
Ru Vuott
vuott at ...325...
Tue Jun 17 10:13:40 CEST 2014
Thank you for your answers, Benoît.
bye
vuott
--------------------------------------------
Mar 17/6/14, Benoît Minisini <gambas at ...1...> ha scritto:
Oggetto: Re: [Gambas-user] "The program received an X Window System error"... and more problems
A: "mailing list for gambas users" <gambas-user at lists.sourceforge.net>
Data: Martedì 17 giugno 2014, 01:48
Le 17/06/2014 01:27, Ru
Vuott a écrit :
> Hello,
>
> well, I have this
code to run a extern program from a Terminal:
>
>
****************************************
> Public Sub Button1_Click()
>
> ' Opens the
Terminal:
>
Desktop.OpenTerminal
>
> End
>
>
> Public Sub
Button2_Click()
>
> Dim c As Integer[]
>
> ' Finds the ID of
Terminal window before open:
> c =
Desktop.FindWindow("Terminal")
>
> ' Gives the
"Focus" to Terminal window:
>
Desktop.ActiveWindow = c[c.Max]
>
> ' Runs "Gedit" program:
>
Desktop.SendKeys("{gedit\n}")
>
> End
>
*********************************************
>
> I have some
problems:
>
> 1) If I
activate only "gb.desktop", but not also
"gb.desktop.x11", I obtain an error at line:
> c =
Desktop.FindWindow("Terminal"):
> " cannot load class x11: Unable to
load class file"
>
> My question: ok, but why does
"gb.desktop" component have the function
".FindWindow()" ?
Because it had it in Gambas 3.5. Now the bug is
that Desktop.FindWindow
should
automatically load "gb.desktop.x11" behind the
scene.
And in the future,
when we will get Wayland, we can imagine a
gb.desktop.wayland component, and a gb.desktop
component that will
choose between
gb.desktop.x11 and gb.desktop.wayland according to the
context.
But
your code won't change, it will continue to call
Desktop.FindWindow().
>
>
>
2) Well, so I activate also
> I run my
program, and press Button1: In console I obtain this
notice:
> "(gnome-terminal:21625):
GLib-GIO-CRITICAL **: g_settings_get: the format string may
not contain '&' (key
'monospace-font-name' from schema
'org.gnome.desktop.interface').
>
This call will probably stop working with a future version
of glib."
>
> My
question: What's that ?
The output console is for your running program
*and* all children
processes run by it. You
see "gnome-terminal" at the beginning of the
message? Guess what, this is the
responsible.
>
>
> 3) By pressing
Button1, a Terminal window open. Well, so I press Button2...
but I obtain this error:
> " The
program 'my_program'
> received
an X Window System error.
> This probably
reflects a bug in the program.
> The
error was 'BadWindow (invalid Window parameter)'.
> (Details: serial 2363 error_code 3
request_code 20 minor_code 0)
>
(Note to programmers: normally, X errors are reported
asynchronously;
> that
is, you will receive the error a while after causing it.
> To debug your program, run
it with the --sync command line
>
option to change this behavior. You can then
get a meaningful
>
backtrace from your debugger if you break on
the gdk_x_error() function.) "
>
> My question: What's that
?
An X11 error message. X11
is asynchronous by default: nothing ensures
that the terminal is launched when you call
Desktop.FindWindow(). You
must retry
periodically until you find the window.
>
>
>
4) Now I repeat procedure, but I do not close last Terminal.
I run my_program, press Button1: now obviously I have 2
Terminals.
> So, now I press Button2 and
I do not receive error or notices.
>
Gedit opens.
>
> My
question: ...Why does my program runs perfect only with 2
or more Terminals ?
If you
understood the previous point, you should now why.
By the way, read carefully the
documentation of Desktop.SendKeys(). You
should not put your string beetween braces.
Regards,
--
Benoît Minisini
------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from
LexisNexis Risk Solutions
Find What Matters
Most in Your Big Data with HPCC Systems
Open
Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing
& Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
Gambas-user mailing list
Gambas-user at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gambas-user
More information about the User
mailing list