[haiku-commits] haiku: hrev44015 - src/servers/app/drawing/html5

  • From: revol@xxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 13 Apr 2012 01:28:42 +0200 (CEST)

hrev44015 adds 1 changeset to branch 'master'
old head: 599f30f93d977053ea2a2fbe55cae7276a3ef388
new head: 3f551e5c433d54e8947731114223430e9c16c4f0

----------------------------------------------------------------------------

3f551e5: Expose the connected status
  
  * Since we won't always have a client, expose the connected status from the 
HWInterface to other classes.
  Currently only used to simulate DPMS state.
  * Cleanup.

                                          [ François Revol <revol@xxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev44015
Commit:      3f551e5c433d54e8947731114223430e9c16c4f0
URL:         http://cgit.haiku-os.org/haiku/commit/?id=3f551e5
Author:      François Revol <revol@xxxxxxx>
Date:        Thu Apr 12 23:26:46 2012 UTC

----------------------------------------------------------------------------

2 files changed, 16 insertions(+), 5 deletions(-)
src/servers/app/drawing/html5/HTML5HWInterface.cpp |   19 +++++++++++----
src/servers/app/drawing/html5/HTML5HWInterface.h   |    2 +

----------------------------------------------------------------------------

diff --git a/src/servers/app/drawing/html5/HTML5HWInterface.cpp 
b/src/servers/app/drawing/html5/HTML5HWInterface.cpp
index 1d7f213..f8576a8 100644
--- a/src/servers/app/drawing/html5/HTML5HWInterface.cpp
+++ b/src/servers/app/drawing/html5/HTML5HWInterface.cpp
@@ -136,8 +136,6 @@ HTML5HWInterface::HTML5HWInterface(const char* target)
        }
        fServer->AddHandler(handler);
 
-       //static const char desktop_html[] = 
"<html><head><title>Haiku</title></head>"
-       //      "<body></body></html>";
        handler = new(std::nothrow) WebHandler("desktop.html",
                new(std::nothrow) BMemoryIO(desktop_html, sizeof(desktop_html) 
- 1));
        if (handler == NULL) {
@@ -146,7 +144,6 @@ HTML5HWInterface::HTML5HWInterface(const char* target)
        }
        fServer->AddHandler(handler);
 
-       //static const char haiku_js[] = "window.alert('plop');\n";
        handler = new(std::nothrow) WebHandler("haiku.js",
                new(std::nothrow) BMemoryIO(haiku_js, sizeof(haiku_js) - 1));
        if (handler == NULL) {
@@ -497,14 +494,14 @@ HTML5HWInterface::SetDPMSMode(uint32 state)
 uint32
 HTML5HWInterface::DPMSMode()
 {
-       return B_UNSUPPORTED;
+       return (IsConnected() ? B_DPMS_ON : B_DPMS_SUSPEND);
 }
 
 
 uint32
 HTML5HWInterface::DPMSCapabilities()
 {
-       return 0;
+       return B_DPMS_ON | B_DPMS_SUSPEND;
 }
 
 
@@ -526,6 +523,8 @@ void
 HTML5HWInterface::SetCursor(ServerCursor* cursor)
 {
        HWInterface::SetCursor(cursor);
+       if (!IsConnected())
+               return;
        CanvasMessage message(NULL, fSendBuffer);
        message.Start(RP_SET_CURSOR);
        message.AddCursor(Cursor().Get());
@@ -536,6 +535,8 @@ void
 HTML5HWInterface::SetCursorVisible(bool visible)
 {
        HWInterface::SetCursorVisible(visible);
+       if (!IsConnected())
+               return;
        CanvasMessage message(NULL, fSendBuffer);
        message.Start(RP_SET_CURSOR_VISIBLE);
        message.Add(visible);
@@ -546,6 +547,8 @@ void
 HTML5HWInterface::MoveCursorTo(float x, float y)
 {
        HWInterface::MoveCursorTo(x, y);
+       if (!IsConnected())
+               return;
        CanvasMessage message(NULL, fSendBuffer);
        message.Start(RP_MOVE_CURSOR_TO);
        message.Add(x);
@@ -558,6 +561,8 @@ HTML5HWInterface::SetDragBitmap(const ServerBitmap* bitmap,
        const BPoint& offsetFromCursor)
 {
        HWInterface::SetDragBitmap(bitmap, offsetFromCursor);
+       if (!IsConnected())
+               return;
        CanvasMessage message(NULL, fSendBuffer);
        message.Start(RP_SET_CURSOR);
        message.AddCursor(CursorAndDragBitmap().Get());
@@ -589,6 +594,8 @@ status_t
 HTML5HWInterface::InvalidateRegion(BRegion& region)
 {
        CanvasMessage message(NULL, fSendBuffer);
+       if (!IsConnected())
+               return B_OK;
        message.Start(RP_INVALIDATE_REGION);
        message.AddRegion(region);
        return B_OK;
@@ -599,6 +606,8 @@ status_t
 HTML5HWInterface::Invalidate(const BRect& frame)
 {
        CanvasMessage message(NULL, fSendBuffer);
+       if (!IsConnected())
+               return B_OK;
        message.Start(RP_INVALIDATE_RECT);
        message.Add(frame);
        return B_OK;
diff --git a/src/servers/app/drawing/html5/HTML5HWInterface.h 
b/src/servers/app/drawing/html5/HTML5HWInterface.h
index 2d6959b..dc97884 100644
--- a/src/servers/app/drawing/html5/HTML5HWInterface.h
+++ b/src/servers/app/drawing/html5/HTML5HWInterface.h
@@ -89,6 +89,8 @@ typedef bool (*CallbackFunction)(void* cookie, CanvasMessage& 
message);
                                                                                
void* cookie);
                bool                                            
RemoveCallback(uint32 token);
 
+               bool                                            IsConnected() { 
return fIsConnected; }
+
 private:
                callback_info*                          _FindCallback(uint32 
token);
 static int                                                     
_CallbackCompare(const uint32* key,


Other related posts:

  • » [haiku-commits] haiku: hrev44015 - src/servers/app/drawing/html5 - revol