diff --git a/widget/src/xlib/nsAppShell.cpp b/widget/src/xlib/nsAppShell.cpp index 289523631d9c..ff2e64f9c1e7 100644 --- a/widget/src/xlib/nsAppShell.cpp +++ b/widget/src/xlib/nsAppShell.cpp @@ -321,7 +321,18 @@ nsAppShell::DispatchEvent(XEvent *event) case MotionNotify: HandleMotionNotifyEvent(event, widget); break; - + case KeyPress: + HandleKeyPressEvent(event, widget); + break; + case KeyRelease: + HandleKeyReleaseEvent(event, widget); + break; + case FocusIn: + HandleFocusInEvent(event, widget); + break; + case FocusOut: + HandleFocusOutEvent(event, widget); + break; case NoExpose: break; @@ -441,3 +452,31 @@ nsAppShell::HandleConfigureNotifyEvent(XEvent *event, nsWidget *aWidget) NS_RELEASE(aWidget); delete sevent.windowSize; } + +void +nsAppShell::HandleKeyPressEvent(XEvent *event, nsWidget *aWidget) +{ + PR_LOG(XlibWidgetsLM, PR_LOG_DEBUG, ("KeyPress event for window 0x%lx\n", + event->xkey.window)); +} + +void +nsAppShell::HandleKeyReleaseEvent(XEvent *event, nsWidget *aWidget) +{ + PR_LOG(XlibWidgetsLM, PR_LOG_DEBUG, ("KeyRelease event for window 0x%lx\n", + event->xkey.window)); +} + +void +nsAppShell::HandleFocusInEvent(XEvent *event, nsWidget *aWidget) +{ + PR_LOG(XlibWidgetsLM, PR_LOG_DEBUG, ("FocusIn event for window 0x%lx\n", + event->xfocus.window)); +} + +void +nsAppShell::HandleFocusOutEvent(XEvent *event, nsWidget *aWidget) +{ + PR_LOG(XlibWidgetsLM, PR_LOG_DEBUG, ("FocusOut event for window 0x%lx\n", + event->xfocus.window)); +} diff --git a/widget/src/xlib/nsAppShell.h b/widget/src/xlib/nsAppShell.h index 9117d4424ba6..6b5a67a51697 100644 --- a/widget/src/xlib/nsAppShell.h +++ b/widget/src/xlib/nsAppShell.h @@ -52,6 +52,10 @@ class nsAppShell : public nsIAppShell static void HandleMotionNotifyEvent(XEvent *event, nsWidget *aWidget); static void HandleExposeEvent(XEvent *event, nsWidget *aWidget); static void HandleConfigureNotifyEvent(XEvent *event, nsWidget *aWidget); + static void HandleKeyPressEvent(XEvent *event, nsWidget *aWidget); + static void HandleKeyReleaseEvent(XEvent *event, nsWidget *aWidget); + static void HandleFocusInEvent(XEvent *event, nsWidget *aWidget); + static void HandleFocusOutEvent(XEvent *event, nsWidget *aWidget); protected: nsIEventQueueService * mEventQueueService; diff --git a/widget/src/xlib/nsScrollBar.cpp b/widget/src/xlib/nsScrollBar.cpp index 18317e71e59b..252e09dab668 100644 --- a/widget/src/xlib/nsScrollBar.cpp +++ b/widget/src/xlib/nsScrollBar.cpp @@ -225,7 +225,7 @@ void nsScrollbar::CreateNative(Window aParent, nsRect aRect) // be discarded... attr.bit_gravity = SouthEastGravity; // make sure that we listen for events - attr.event_mask = StructureNotifyMask | ButtonPressMask | ButtonReleaseMask; + attr.event_mask = StructureNotifyMask | ButtonPressMask | ButtonReleaseMask | KeyPressMask | KeyReleaseMask | FocusChangeMask; // set the default background color and border to that awful gray attr.background_pixel = mBackgroundPixel; attr.border_pixel = mBorderPixel; @@ -240,7 +240,7 @@ void nsScrollbar::CreateNative(Window aParent, nsRect aRect) CreateNativeWindow(aParent, mBounds, attr, attr_mask); CreateGC(); // set up the scrolling bar. - attr.event_mask = Button1MotionMask | ButtonPressMask | ButtonReleaseMask; + attr.event_mask = Button1MotionMask | ButtonPressMask | ButtonReleaseMask | KeyPressMask | KeyReleaseMask | FocusChangeMask; attr.background_pixel = xlib_rgb_xpixel_from_rgb(NS_RGB(192,192,192)); attr.border_pixel = xlib_rgb_xpixel_from_rgb(NS_RGB(100,100,100)); // set up the size diff --git a/widget/src/xlib/nsWidget.cpp b/widget/src/xlib/nsWidget.cpp index 8f5dcb7131e4..3163b23875c2 100644 --- a/widget/src/xlib/nsWidget.cpp +++ b/widget/src/xlib/nsWidget.cpp @@ -453,7 +453,7 @@ void nsWidget::CreateNative(Window aParent, nsRect aRect) // be discarded... attr.bit_gravity = NorthWestGravity; // make sure that we listen for events - attr.event_mask = ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask; + attr.event_mask = ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask | KeyPressMask | KeyReleaseMask | FocusChangeMask; // set the default background color and border to that awful gray attr.background_pixel = mBackgroundPixel; attr.border_pixel = mBorderPixel; diff --git a/widget/src/xlib/nsWindow.cpp b/widget/src/xlib/nsWindow.cpp index 4223bc2c6275..f7b356f82dcc 100644 --- a/widget/src/xlib/nsWindow.cpp +++ b/widget/src/xlib/nsWindow.cpp @@ -54,7 +54,7 @@ void nsWindow::CreateNative(Window aParent, nsRect aRect) // be discarded... attr.bit_gravity = NorthWestGravity; // make sure that we listen for events - attr.event_mask = StructureNotifyMask | ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask; + attr.event_mask = StructureNotifyMask | ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask | KeyPressMask | KeyReleaseMask | FocusChangeMask; // set the default background color and border to that awful gray attr.background_pixel = mBackgroundPixel; attr.border_pixel = mBorderPixel;