Home | History | Annotate | Download | only in chromeos
      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 
      7 namespace chromeos {
      8 
      9 // static
     10 WmMessageListener* 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 
     19 void WmMessageListener::WillProcessEvent(GdkEvent* event) {
     20 }
     21 
     22 void 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 
     34 WmMessageListener::WmMessageListener() {
     35 }
     36 
     37 WmMessageListener::~WmMessageListener() {
     38 }
     39 
     40 void WmMessageListener::ProcessMessage(const WmIpc::Message& message,
     41                                        GdkWindow* window) {
     42   FOR_EACH_OBSERVER(Observer, observers_, ProcessWmMessage(message, window));
     43 }
     44 
     45 }  // namespace chromeos
     46