Made Linux event local to event handler. Cleaned up file choosing.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@955 dfc29bdd-3216-0410-991c-e03cc46cb475
master
hybrid 2007-09-14 09:57:40 +00:00
parent efc44f9bf7
commit 75bc99e67a
4 changed files with 15 additions and 17 deletions

View File

@ -176,7 +176,7 @@ bool CGUIFileOpenDialog::OnEvent(SEvent event)
case EGET_LISTBOX_SELECTED_AGAIN:
{
s32 selected = FileBox->getSelected();
const s32 selected = FileBox->getSelected();
if (FileList && FileSystem)
{
if (FileList->isDirectory(selected))

View File

@ -378,16 +378,14 @@ bool CGUIListBox::OnEvent(SEvent event)
}
case EMIE_LMOUSE_LEFT_UP:
if (!isPointInside(p))
{
Selecting = false;
return true;
}
{
Selecting = false;
selectNew(event.MouseInput.Y);
if (isPointInside(p))
selectNew(event.MouseInput.Y);
return true;
}
case EMIE_MOUSE_MOVED:
if (Selecting || MoveOverSelect)
@ -420,11 +418,11 @@ void CGUIListBox::selectNew(s32 ypos, bool onlyHover)
if (ItemHeight!=0)
Selected = ((ypos - AbsoluteRect.UpperLeftCorner.Y - 1) + ScrollBar->getPos()) / ItemHeight;
if (Selected >= (s32)Items.size())
Selected = Items.size() - 1;
else
if (Selected<0)
Selected = 0;
else
if ((u32)Selected >= Items.size())
Selected = Items.size() - 1;
recalculateScrollPos();

View File

@ -671,6 +671,7 @@ bool CIrrDeviceLinux::run()
while (XPending(display) > 0 && !Close)
{
XEvent event;
XNextEvent(display, &event);
switch (event.type)
@ -773,16 +774,16 @@ bool CIrrDeviceLinux::run()
break;
case KeyRelease:
if (!AutorepeatSupport)
if (0 == AutorepeatSupport)
{
// check for Autorepeat manually
// We'll do the same as Windows does: Only send KeyPressed
// So every KeyRelease is a real release
XEvent next_event;
XPeekEvent (event.xkey.display, &next_event);
if (next_event.type == KeyPress &&
next_event.xkey.keycode == event.xkey.keycode &&
next_event.xkey.time == event.xkey.time)
if ((next_event.type == KeyPress) &&
(next_event.xkey.keycode == event.xkey.keycode) &&
(next_event.xkey.time == event.xkey.time))
{
/* Ignore the key release event */
break;

View File

@ -294,7 +294,6 @@ namespace irr
Window window;
XSetWindowAttributes attributes;
XSizeHints* StdHints;
XEvent event;
XImage* SoftwareImage;
#ifdef _IRR_LINUX_X11_VIDMODE_
XF86VidModeModeInfo oldVideoMode;