[mythtv] OS X 10.3 and MythTV 0.20
Piers Kittel
mythtv at biased.org
Thu Nov 9 15:01:34 UTC 2006
Nigel,
Any update on this? Is there anything I can do in the interm? It's
getting really annoying not being able to use my main TV with MythTV :)
You mention that you can't find the fault with some 10.3 constructed
packages - where do I obtain them, as I can't compile MythTV?
Thank you very much for your help again.
Regards - Piers
Nigel Pearson wrote:
> The good news:
> 1) I have been able to reproduce the problem,
> with both David Snider's packages, and my own
> 10.4/Xcode2.4 builds, and
> 2) I have a hacky workaround
>
> The bad news:
> 1) I won't be committing this hack any time soon
> (because it is not the right way to fix it), and
> 2) I have _not_ been able to reproduce the fault
> with 10.3 constructed packages
> (which Tony reported)
>
>
> ...
>> It looks like the event being passed through
>> the methods is invalid (possibly null)
>
> Yep. All events are NULL.
>
>> so the dynamic cast at mythmainwindow.cpp line 1096 fails.
>
> Spot-on, Andrew!
> (wish I had read this _before_ I spent a few
> hours tracing, patching and rebuilding :-)
>
> It seems related to compiler RTTI stuff.
> See this really old discussion:
> http://www.gossamer-threads.com/lists/mythtv/dev/72747
>
> What I don't understand is why it is failing in
> the older runtime environment. Still tracing,
> but any casting should be in the generated code.
> Not in libC.
>
> Anyway, here is a workaround:
>
> % svn diff
> Index: mythmainwindow.cpp
> ===================================================================
> --- mythmainwindow.cpp (revision 11680)
> +++ mythmainwindow.cpp (working copy)
> @@ -1081,9 +1081,14 @@
> {
> case QEvent::KeyPress:
> {
> + QKeyEvent *ke = dynamic_cast<QKeyEvent*>(e);
> +
> + /* Weird Mac OS X bug? */
> + if (!ke)
> + ke = (QKeyEvent *)e;
> +
> if (currentWidget())
> {
> - QKeyEvent *ke = dynamic_cast<QKeyEvent*>(e);
> ke->accept();
> QWidget *current = currentWidget();
> if (current && current->isEnabled())
> @@ -1100,7 +1105,7 @@
> MythScreenType *top = (*it)->GetTopScreen();
> if (top)
> {
> - if (top->keyPressEvent(dynamic_cast<QKeyEvent*>
> (e)))
> + if (top->keyPressEvent(ke))
> return true;
> }
> }
> %
>
> --
> Nigel Pearson, nigel at ind.tansu.com.au| I've been talking to
> Telstra Net. Eng., Sydney, Australia | the ship's computer.
> Office: 9202 3900 Fax: 9261 3912 | ... It hates me!
> Mobile: 0408 664435 Home: 9792 6998 | Marvin
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev at mythtv.org
> http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
More information about the mythtv-dev
mailing list