1// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/chromeos/wm_message_listener.h" 6 7namespace chromeos { 8 9// static 10WmMessageListener* WmMessageListener::GetInstance() { 11 static WmMessageListener* instance = NULL; 12 if (!instance) { 13 instance = Singleton<WmMessageListener>::get(); 14 MessageLoopForUI::current()->AddObserver(instance); 15 } 16 return instance; 17} 18 19void WmMessageListener::WillProcessEvent(GdkEvent* event) { 20} 21 22void WmMessageListener::DidProcessEvent(GdkEvent* event) { 23 if (event->type == GDK_CLIENT_EVENT) { 24 WmIpc::Message message; 25 GdkEventClient* client_event = reinterpret_cast<GdkEventClient*>(event); 26 WmIpc* wm_ipc = WmIpc::instance(); 27 if (wm_ipc->DecodeMessage(*client_event, &message)) 28 ProcessMessage(message, client_event->window); 29 else 30 wm_ipc->HandleNonChromeClientMessageEvent(*client_event); 31 } 32} 33 34WmMessageListener::WmMessageListener() { 35} 36 37WmMessageListener::~WmMessageListener() { 38} 39 40void WmMessageListener::ProcessMessage(const WmIpc::Message& message, 41 GdkWindow* window) { 42 FOR_EACH_OBSERVER(Observer, observers_, ProcessWmMessage(message, window)); 43} 44 45} // namespace chromeos 46