maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Applications (https://talk.maemo.org/forumdisplay.php?f=41)
-   -   BBC Micro (https://talk.maemo.org/showthread.php?t=31696)

marnanel 2009-09-16 18:06

Re: BBC Micro
 
Quote:

Originally Posted by javispedro (Post 327980)
If you believe Matchbox is right here, then this is a SDL bug :S

Matchbox is doing the right thing here, yes. Looks like that
Code:

wmhints->flags =
... should have been a
Code:

wmhints->flags |=
... .

javispedro 2009-09-16 18:07

Re: BBC Micro
 
Wow. I should've google'd harder. It is a SDL bug, and it was already filed in 2008!

http://bugzilla.libsdl.org/show_bug.cgi?id=586

*sigh*

Thanks marnanel for the hints (and keywords to search!)!

marnanel 2009-09-16 18:12

Re: BBC Micro
 
Quote:

Originally Posted by javispedro (Post 327988)
Wow. I should've google'd harder. It is a SDL bug, and it was already filed in 2008!

Think we should file a Maemo bug to get it fixed downstream if they won't get on with fixing it upstream? It seems a pretty easy bug to run into.

javispedro 2009-09-16 18:26

Re: BBC Micro
 
Yeah, or probably document it in the wiki (with all the other Maemo SDL "nuisances" ;)).

marnanel 2009-09-16 20:53

Re: BBC Micro
 
Quote:

Originally Posted by deadmalc (Post 327853)
Whooa! Exile on the n900, that would be so cool!

Well, since you asked:

http://spectrum.myriadcolours.com/~m...bc-maemo-exile

And the obligatory Elite:

http://spectrum.myriadcolours.com/~m...bc-maemo-elite

I don't think I'll play with this much more, though, because:
  1. Beebem is not to my knowledge free-as-in-speech software, only free-as-in-beer, and I don't know of another good Beeb emulator for *nix;
  2. Even if Beebem was free software, it's still unclear about the legality of distributing the Beeb's MOS and BASIC roms, without which the emulator would be useless;
  3. Beebem updates the screen for every scanline, which causes it to be very slow on modern computers (on my laptop as well as the N900): slower than a real BBC Micro, in fact. This could be fixed by doing things with OpenGL, but that's not really my area;
  4. I have a whole lot of other things to do :)

Still, it's nice to have demonstrated that it's possible.

KristianW 2009-09-17 15:46

Re: BBC Micro
 
I'd love to have some version of ARM RISC OS
(originally on the Acorn Archimedes 12 MHz ARM)
on my NIT.

But I suppose it takes to much work ?

---just a thought.

marnanel 2009-09-17 16:16

Re: BBC Micro
 
Quote:

Originally Posted by KristianW (Post 328561)
I'd love to have some version of ARM RISC OS
(originally on the Acorn Archimedes 12 MHz ARM)
on my NIT.

But I suppose it takes to much work ?

---just a thought.

I don't know-- do you know of any good Archimedes emulators for *nix that could be ported? I never used one myself (despite having grown up with the BBC Micro), so I don't know much about it.

lcuk 2009-09-17 21:49

Re: BBC Micro
 
i see this app is on fremantle.

what other input focus bugs are you seeing.
because when i started with liqbase on n900 every keypress would result in other apps being opened and getting input keystrokes.

i could not enter any text for a while.

lcuk 2009-09-17 22:07

Re: BBC Micro
 
i will just explain the noticed bug and fix that was made


using fremantle,
when i started to run liqbase, i discovered that pressing any key in my app would mysteriously open up one of the search apps.
this was not what was wanted and meant i could not enter any text in liqbase for a while.

on the n810 it worked perfectly without this fix:


this code is at the end of the open window function, it simply forces focus back to the app itself.

http://github.com/lcuk/libliqbase/bl...x11info.c#L250


since you did not explain the problem and javispedro hasnt actually reproduced the error i think its at least something to consider and see.

let me know if its the same error, or describe the actual effect more clearly so we may try to help :)

marnanel 2009-09-18 00:56

Re: BBC Micro
 
Quote:

Originally Posted by lcuk (Post 328807)
using fremantle,
when i started to run liqbase, i discovered that pressing any key in my app would mysteriously open up one of the search apps.

When an app refuses focus, the focus ends up on the desktop. When a keypress is received by the desktop, this is interpreted as a request to look up contacts beginning with that letter.

Quote:

Originally Posted by lcuk (Post 328807)
this code is at the end of the open window function, it simply forces focus back to the app itself.

I would be a whole lot happier if applications did not attempt to mess with focus and left this to the window manager. That's what we have a window manager for. The ICCCM actually forbids you to do this unilaterally (4.2.7); you're also not supposed to be using RevertToPointerRoot or CurrentTime (see the footnotes of 4.2.7).

Quote:

Originally Posted by lcuk (Post 328807)
since you did not explain the problem and javispedro hasnt actually reproduced the error i think its at least something to consider and see.

I'm not sure why you think I didn't explain the problem, since I went into some detail here.

To recap:
  • A window can have a field called WM_HINTS.
  • One of the bits in this field is called InputHint.
  • If this bit is not set, the window is saying that it never wants input focus. If the window manager was to give such a window focus, the window manager would be broken.
  • libsdl contains a bug which clears this bit if you set an icon on your window.
  • Therefore, if you set an icon on an SDL window, the window manager will never give that window focus.
  • This is correct behaviour on the part of the window manager.
  • On the other hand, if you don't set an icon on the window, it doesn't matter, because Maemo is clever and will get the icon from elsewhere.
  • Therefore, not setting an icon is a perfect workaround until the libsdl bug is fixed.

I don't know whether your program is suffering from a similar bug, but I can check if you like. Or you can check, if you want, by running xprop against your toplevel window.


All times are GMT. The time now is 13:42.

vBulletin® Version 3.8.8