Re: Gtk2::Gdk::Window->foreign_new, help needed
- From: Mario Kemper <mario kemper googlemail com>
- To: gtk-perl-list gnome org
- Subject: Re: Gtk2::Gdk::Window->foreign_new, help needed
- Date: Thu, 03 Jul 2008 13:30:36 +0200
I've already received your messsage through the list and it was a great
help. Maybe you've some suggestions for my next step i've explained in
my last mail today.
Am Donnerstag, den 03.07.2008, 07:19 -0400 schrieb zentara:
On Wed, 02 Jul 2008 20:23:32 +0200
Mario Kemper <mario kemper googlemail com> wrote:
Hello folks,
i am trying to get the native window ids of my running x-session and
handle them in my perl code using Gtk2::Gdk::Window->foreign_new but
this is misleading into an error:
Gdk-CRITICAL **: gdk_window_foreign_new_for_display: assertion
`GDK_IS_DISPLAY (display)'
Here is my code snippet:
I think a am doing something totally wrong here, but i can't figure it
out.
I've already had that code running, but i do not know what changed :-(
Thanks in advance
Mario
Sorry if this is a multiple post, my mailer seemed to send it, but I never
received it from the list? Maybe the magic pixel fairy deemed it useless? :-)
This rings a little bell, reminding me of when I tried grabbing screenshots
thru wininfo ids. And since you said it was working, but now it dosn't, may be a clue
that you have the same glitch. The glitch was you needed to run the capture script from the
same virtual desktop as the window to-be-captured. Now Gnome2::Wnck
does have the ability to switch you to the virtual desktop, I was using X11::WMCtrl
This was my hacking script when I did it
#!/usr/bin/perl
use warnings;
use strict;
use Image::Magick;
use X11::WMCtrl;
use Data::Dumper;
my $wmctrl = X11::WMCtrl->new;
printf("window manager is %s\n", $wmctrl->get_window_manager->{name});
my @windows = $wmctrl->get_windows;
my $wid; # x window id
my $host; # virtual desktop
foreach my $app(@windows){
my $title = $app->{title};
if( $title =~ /Mozilla/i){
print "$title\n";
print Dumper(\$app),"\n\n";
$wid = $app->{id};
$host = $app->{host};
}
}
$wmctrl->switch($host);
#must be on same virtual desktop as the browser
#works
my $blob = `import -window $wid jpg:`;
#my $blob = `import -`; #postscript produced
#print "$blob\n";
# now $blob is in memory and you can do what you
# want with it.
my $output = Image::Magick->new(magick=>'jpg');
$output->BlobToImage( $blob );
$output->Resize(geometry=>'160x120');
$output->Write( $0.'.jpg');
exit;
# png works too
__END__
zentara
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]