+++ /dev/null
-/****************************************************************************
-**
-** Copyright (C) Qxt Foundation. Some rights reserved.
-**
-** This file is part of the QxtGui module of the Qt eXTension library
-**
-** This library is free software; you can redistribute it and/or modify it
-** under the terms of th Common Public License, version 1.0, as published by
-** IBM.
-**
-** This file is provided "AS IS", without WARRANTIES OR CONDITIONS OF ANY
-** KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
-** WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR
-** FITNESS FOR A PARTICULAR PURPOSE.
-**
-** You should have received a copy of the CPL along with this file.
-** See the LICENSE file and the cpl1.0.txt file included with the source
-** distribution for more information. If you did not receive a copy of the
-** license, contact the Qxt Foundation.
-**
-** <http://libqxt.sourceforge.net> <foundation@libqxt.org>
-**
-****************************************************************************/
-#include "qxtapplication.h"
-#include "qxtapplication_p.h"
-#include <QKeySequence>
-#include <QX11Info>
-#include <X11/Xlib.h>
-
-QxtApplication::QxtApplication(Display* display, Qt::HANDLE visual, Qt::HANDLE colormap)
- : QApplication(display, visual, colormap)
-{}
-
-QxtApplication::QxtApplication(Display* display, int& argc, char** argv, Qt::HANDLE visual, Qt::HANDLE colormap)
- : QApplication(display, argc, argv, visual, colormap)
-{}
-
-bool QxtApplication::x11EventFilter(XEvent* event)
-{
- foreach (QxtNativeEventFilter* filter, qxt_d().nativeFilters)
- {
- if (filter && filter->x11EventFilter(event))
- return true;
- }
-
- if (event->type == KeyPress)
- {
- XKeyEvent* key = (XKeyEvent*) event;
- qxt_d().activateHotKey(key->state, key->keycode);
- }
- return QApplication::x11EventFilter(event);
-}
-
-uint QxtApplicationPrivate::nativeModifiers(Qt::KeyboardModifiers modifiers) const
-{
- // ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, and Mod5Mask
- uint native = 0;
- if (modifiers & Qt::ShiftModifier)
- native |= ShiftMask;
- if (modifiers & Qt::ControlModifier)
- native |= ControlMask;
- if (modifiers & Qt::AltModifier)
- native |= Mod1Mask;
- // TODO: resolve these?
- //if (modifiers & Qt::MetaModifier)
- //if (modifiers & Qt::KeypadModifier)
- //if (modifiers & Qt::GroupSwitchModifier)
- return native;
-}
-
-uint QxtApplicationPrivate::nativeKeycode(Qt::Key key) const
-{
- Display* display = QX11Info::display();
- return XKeysymToKeycode(display, XStringToKeysym(QKeySequence(key).toString().toLatin1().data()));
-}
-
-bool QxtApplicationPrivate::registerHotKey(uint modifiers, uint keycode, QWidget* receiver)
-{
- Q_UNUSED(receiver);
- Display* display = QX11Info::display();
- Window window = QX11Info::appRootWindow();
- Bool owner = True;
- int pointer = GrabModeAsync;
- int keyboard = GrabModeAsync;
- return XGrabKey(display, keycode, modifiers, window, owner, pointer, keyboard);
-}
-
-bool QxtApplicationPrivate::unregisterHotKey(uint modifiers, uint keycode, QWidget* receiver)
-{
- Q_UNUSED(receiver);
- Display* display = QX11Info::display();
- Window window = QX11Info::appRootWindow();
- return XUngrabKey(display, keycode, modifiers, window);
-}