[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