Re: [pgadmin-support] 1.14 beta 3 crashes in Query Browser - Mailing list pgadmin-hackers

From Guillaume Lelarge
Subject Re: [pgadmin-support] 1.14 beta 3 crashes in Query Browser
Date
Msg-id 1314107793.2147.18.camel@localhost.localdomain
Whole thread Raw
In response to Re: [pgadmin-support] 1.14 beta 3 crashes in Query Browser  (Guillaume Lelarge <guillaume@lelarge.info>)
Responses Re: [pgadmin-support] 1.14 beta 3 crashes in Query Browser
List pgadmin-hackers
On Mon, 2011-08-22 at 21:59 +0200, Guillaume Lelarge wrote:
> On Sat, 2011-08-20 at 22:51 +0200, Guillaume Lelarge wrote:
> > On Sat, 2011-08-20 at 17:45 +0200, Guillaume Lelarge wrote:
> > > On Sat, 2011-08-20 at 11:07 -0400, Colin Beckingham wrote:
> > > > Opensuse 11.4, kernel 3.0.
> > > >
> > > > I note that if I begin query construction in the graphical query
> > > > designer and click into the text panel to make adjustments, adding for
> > > > example a "distinct" clause and then attempting to go back to the
> > > > graphical panel causes a crash.
> > > >
> > > > Of course trying to use distinct in this context is not reasonable,
> > > > however the programme does not recover gracefully or prevent the user
> > > > from making certain edits.
> > > >
> > > > The crash is quite severe. I have no access to the screen at all and the
> > > > only way out is to CTRL+ALT+DEL, and wait for the timer to expire and
> > > > log me out, and then log back in.
> > >
> > > I was able to reproduce your issue. I have no idea what's going on, but
> > > I'm investigating this.
> > >
> > > Thank you for reporting it.
> > >
> >
> > So, bug doesn't happen on Windows. I didn't check on Mac OS X, but it's
> > present on Linux. The culprit commit is the one that changed the
> > wxNotebook into a wxAUINotebook. Not sure yet how we'll fix this.
> >
>
> Seems we have a real issue here. Bug is you can't fire wxMessageBox or
> alike when you're in the function fired by a
> EVT_AUINOTEBOOK_PAGE_CHANGED. Only on Linux. Why? I have no idea. But
> even the wxWidgets auidemo sample has the issue (I have the patch for
> those who want to try).
>
> So, my next idea was to remove the wxMessageBox from the function that
> calls it, but I don't find a way to do that.
>
> I'm afraid we'll have to replace the wxAuiNotebook with a wxNotebook.
>
> Any objection? Dave especially, since it was your patch?
> (http://git.postgresql.org/gitweb/?p=pgadmin3.git;a=commit;h=41545a4aa159a7a579b7c97ba73a605db34453b7)
>

Seems I have a better fix (not mine, see
http://forums.wxwidgets.org/viewtopic.php?f=23&t=31090 for details):

diff --git a/pgadmin/frm/frmQuery.cpp b/pgadmin/frm/frmQuery.cpp
index 40b01dd..f195307 100644
--- a/pgadmin/frm/frmQuery.cpp
+++ b/pgadmin/frm/frmQuery.cpp
@@ -2101,6 +2101,10 @@ bool frmQuery::updateFromGqb(bool executing)
                else
                        fn = _("The generated SQL query has changed.\nDo
you want to update it?");

+        wxWindow* win = wxWindow::GetCapture();
+        if (win)
+            win->ReleaseMouse();
+
                wxMessageDialog msg(this, fn, _("Query"), wxYES_NO |
wxICON_EXCLAMATION);
                if(msg.ShowModal() == wxID_YES && changed)
                {

Works on Linux. Will try on Windows tonight, before applying.


--
Guillaume
  http://blog.guillaume.lelarge.info
  http://www.dalibo.com


pgadmin-hackers by date:

Previous
From: Guillaume Lelarge
Date:
Subject: Re: 404 on the trac website
Next
From: Dave Page
Date:
Subject: Re: [pgadmin-support] 1.14 beta 3 crashes in Query Browser