diff options
Diffstat (limited to 'kwin/notifications.cpp')
-rw-r--r-- | kwin/notifications.cpp | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/kwin/notifications.cpp b/kwin/notifications.cpp deleted file mode 100644 index 288cbd029..000000000 --- a/kwin/notifications.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/***************************************************************** - KWin - the KDE window manager - This file is part of the KDE project. - -Copyright (C) 1999, 2000 Matthias Ettrich <ettrich@kde.org> -Copyright (C) 2003 Lubos Lunak <l.lunak@kde.org> - -You can Freely distribute this program under the GNU General Public -License. See the file "COPYING" for the exact licensing terms. -******************************************************************/ - -#include "notifications.h" -#include <knotifyclient.h> - -#include "client.h" - -namespace KWinInternal -{ - -TQString Notify::eventToName( Event e ) - { - TQString event; - switch ( e ) - { - case Activate: - event = "activate"; - break; - case Close: - event = "close"; - break; - case Minimize: - event = "minimize"; - break; - case UnMinimize: - event = "unminimize"; - break; - case Maximize: - event = "maximize"; - break; - case UnMaximize: - event = "unmaximize"; - break; - case OnAllDesktops: - event = "on_all_desktops"; - break; - case NotOnAllDesktops: - event = "not_on_all_desktops"; - break; - case New: - event = "new"; - break; - case Delete: - event = "delete"; - break; - case TransNew: - event = "transnew"; - break; - case TransDelete: - event = "transdelete"; - break; - case ShadeUp: - event = "shadeup"; - break; - case ShadeDown: - event = "shadedown"; - break; - case MoveStart: - event = "movestart"; - break; - case MoveEnd: - event = "moveend"; - break; - case ResizeStart: - event = "resizestart"; - break; - case ResizeEnd: - event = "resizeend"; - break; - case DemandAttentionCurrent: - event = "demandsattentioncurrent"; - break; - case DemandAttentionOther: - event = "demandsattentionother"; - break; - default: - if ((e > DesktopChange) && (e <= DesktopChange+20)) - { - event = TQString("desktop%1").arg(e-DesktopChange); - } - break; - } - return event; - } - -static bool forgetIt = FALSE; -TQValueList< Notify::EventData > Notify::pending_events; - -bool Notify::raise( Event e, const TQString& message, Client* c ) - { - if ( forgetIt ) - return false; // no connection was possible, don't try each time - - TQString event = eventToName( e ); - if ( !event ) - return false; - -// There may be a deadlock if KNotify event is sent while KWin has X grabbed. -// If KNotify is not running, KLauncher may do X requests (startup notification, whatever) -// that will block it. And KNotifyClient waits for the launch to succeed, which means -// KLauncher waits for X and KWin waits for KLauncher. So postpone events in such case. - if( grabbedXServer()) - { - EventData data; - data.event = event; - data.message = message; - data.window = c ? c->window() : 0; - pending_events.append( data ); - return true; - } - - forgetIt= !KNotifyClient::event( c ? c->window() : 0, event, message ); - return !forgetIt; - } - -void Notify::sendPendingEvents() - { - while( !pending_events.isEmpty()) - { - EventData data = pending_events.first(); - pending_events.pop_front(); - if( !forgetIt ) - forgetIt= !KNotifyClient::event( data.window, data.event, data.message ); - } - } - -bool Notify::makeDemandAttention( Event e ) - { - TQString event = eventToName( e ); - if( !event ) - return false; - int rep = KNotifyClient::getPresentation( event ); - if( rep == -1 ) - rep = KNotifyClient::getDefaultPresentation( event ); - return rep != -1 && ( rep & KNotifyClient::Taskbar ); - } - -} // namespace |