Gtkmmifying the desktop window object
Hi All,
As we discussed a few weeks ago, I've now gtkmmified the desktop window object. I've also set this object to be parent windows of the file dialogs, which prevents them falling underneath the application window in Windows as per bug #1431528. I've spent quite a long time testing this modification, both in Ubuntu, XP and in Vista, and everything seems ok. Nonetheless, this sort of modification is could create bugs, especially with all the pointer casting which goes on in Inkscape. So let me know if there are any problems.
In working on this I may have stumbled across another bug which has crept in from somehwhere: In Windows, try saving a file through the file dialog. At this point the application crashes. You can see this happen if you download Inkscape0707240355.7z (which comes from a few days ago before I comitted this latest mod, so it's not my fault). I used message boxes to trace the problem to line 644 of file.cpp: "delete saveDialog;". However when I compiled this morning, and stepped through with a debugger I could find no problem - so it remains an enigma for now.
Best Regards Joel
----- Original Message ----- From: "Bryce Harrington" <bryce@...961...> To: "MenTaLguY" <mental@...3...> Cc: <joel@...1709...>; inkscape-devel@lists.sourceforge.net Sent: Saturday, July 07, 2007 1:01 AM Subject: Re: [Inkscape-devel] GTK+ and GTKMM problems
On Fri, Jul 06, 2007 at 03:20:42PM -0700, MenTaLguY
wrote:
On Fri, 6 Jul 2007 15:09:04 -0700, "joel@...1709..."
<joel@...1709...>
wrote:
What I really want here is "temporary wrapper" just to
satisfy
FileChooserDialog. There seems to be rather a lack of
documentation
about all this - or maybe I
don't know where to look.
Glib::wrap wasn't intended to
be used that way.
Am I right in thinking that while
all inkscape dialogs use Gtkmm, the
main
window is based on plain old GTK+ ? If not, is there a way I can get a
reference to it's underlying Gtk::Window rather than a crumby
GtkWindow*?
I think the best thing to
do would be to rewrite the desktop window code
to use a
Gtk::Window rather than a GtkWindow as the top-level window. It's a
small step towards the complete Gtkmmification we have
been wanting anyway.
I took a cut at this back when we first
started doing the Gtkmm work
intently. It's in the experimental SVN
module at bryce/inkscape_gtkmm/.
We ended up deciding to focus on
dialogs rather than the application, so
this never really got to a
finished point, but it still might be useful
for reference or as a
starting point.
Bryce
Hi,
I've just compiled this revision and all seems great so far! At least on linux. Am I too subjective or this gtkmmification did speed up canvas redrawing?! Looks like it did...
Regards, Vlada
On Saturday 28 July 2007 14:59:09 joel@...1709... wrote:
Hi All,
As we discussed a few weeks ago, I've now gtkmmified the desktop window object. I've also set this object to be parent windows of the file dialogs, which prevents them falling underneath the application window in Windows as per bug #1431528. I've spent quite a long time testing this modification, both in Ubuntu, XP and in Vista, and everything seems ok. Nonetheless, this sort of modification is could create bugs, especially with all the pointer casting which goes on in Inkscape. So let me know if there are any problems.
In working on this I may have stumbled across another bug which has crept in from somehwhere: In Windows, try saving a file through the file dialog. At this point the application crashes. You can see this happen if you download Inkscape0707240355.7z (which comes from a few days ago before I comitted this latest mod, so it's not my fault). I used message boxes to trace the problem to line 644 of file.cpp: "delete saveDialog;". However when I compiled this morning, and stepped through with a debugger I could find no problem - so it remains an enigma for now.
Best Regards Joel
----- Original Message ----- From: "Bryce Harrington" <bryce@...961...> To: "MenTaLguY" <mental@...3...> Cc: <joel@...1709...>; inkscape-devel@lists.sourceforge.net Sent: Saturday, July 07, 2007 1:01 AM Subject: Re: [Inkscape-devel] GTK+ and GTKMM problems
On Fri, Jul 06, 2007 at 03:20:42PM -0700, MenTaLguY
wrote:
On Fri, 6 Jul 2007 15:09:04 -0700, "joel@...1709..."
<joel@...1709...>
wrote:
What I really want here is "temporary wrapper" just to
satisfy
FileChooserDialog. There seems to be rather a lack of
documentation
about all this - or maybe I
don't know where to look.
Glib::wrap wasn't intended to
be used that way.
Am I right in thinking that while
all inkscape dialogs use Gtkmm, the
main
window is based on plain old GTK+ ? If not, is there a way I can get a
reference to it's underlying Gtk::Window rather than a crumby
GtkWindow*?
I think the best thing to
do would be to rewrite the desktop window code
to use a
Gtk::Window rather than a GtkWindow as the top-level window. It's a
small step towards the complete Gtkmmification we have
been wanting anyway.
I took a cut at this back when we first
started doing the Gtkmm work
intently. It's in the experimental SVN
module at bryce/inkscape_gtkmm/.
We ended up deciding to focus on
dialogs rather than the application, so
this never really got to a
finished point, but it still might be useful
for reference or as a
starting point.
Bryce
You wrote
On Sat, 2007-07-28 at 05:59 -0700, joel@...1709... wrote:
As we discussed a few weeks ago, I've now gtkmmified the desktop window object.
Thank you so much! This has needed doing for a long, long time!
Oh yes, I certainly did nothing of the sort. As I demonstrated to mental long, long ago, the only what was missing in my implementation was correct zooming.
grumble, ralf
On Mon, 2007-07-30 at 08:22 +0200, Ralf Stephan wrote:
Oh yes, I certainly did nothing of the sort. As I demonstrated to mental long, long ago, the only what was missing in my implementation was correct zooming.
If I'd been aware that Joel was working on gtkmmification before (I've not been following development very closely for the past few months), I would've suggested he finish the work you nearly completed.
As it is, I'm just relieved the task is finally done! I don't mean to denigrate the time you put into it yourself.
-mental
participants (4)
-
joel@...1709...
-
MenTaLguY
-
Ralf Stephan
-
Vladimir Savic