[haiku-webkit-commits] r414 - in webkit/trunk: WebCore/page WebKit/haiku/API WebKit/haiku/WebCoreSupport WebKit/haiku/WebPositive

  • From: webkit@xxxxxxxxxxxxxxx
  • To: haiku-webkit-commits@xxxxxxxxxxxxx
  • Date: Tue, 13 Apr 2010 23:15:24 +0000

Author: stippi
Date: Tue Apr 13 23:15:23 2010
New Revision: 414
URL: http://mmlr.dyndns.org/changeset/414

Log:
* Add a flag "activate" to WindowFeatures and set it to true by default. It's
  supposed to allow specifying whether the new window/page shall be activated
  or not.
* In ContextMenuController, when creating a new page from a link, specify that
  it shall not be activated.
* Handle the new flag in the WebKit layer.

-> "Open link in tab" from the context menu no longer selects the new tab, but
opens it "in the background".

Modified:
   webkit/trunk/WebCore/page/ContextMenuController.cpp
   webkit/trunk/WebCore/page/WindowFeatures.h
   webkit/trunk/WebKit/haiku/API/WebPage.cpp
   webkit/trunk/WebKit/haiku/API/WebPage.h
   webkit/trunk/WebKit/haiku/API/WebWindow.cpp
   webkit/trunk/WebKit/haiku/API/WebWindow.h
   webkit/trunk/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp
   webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.cpp
   webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.h

Modified: webkit/trunk/WebCore/page/ContextMenuController.cpp
==============================================================================
--- webkit/trunk/WebCore/page/ContextMenuController.cpp Tue Apr 13 23:12:29 
2010        (r413)
+++ webkit/trunk/WebCore/page/ContextMenuController.cpp Tue Apr 13 23:15:23 
2010        (r414)
@@ -138,6 +138,7 @@
 {
     if (Page* oldPage = frame->page()) {
         WindowFeatures features;
+        features.activate = false;
         if (Page* newPage = oldPage->chrome()->createWindow(frame, 
FrameLoadRequest(ResourceRequest(urlToLoad, 
frame->loader()->outgoingReferrer())), features))
             newPage->chrome()->show();
     }

Modified: webkit/trunk/WebCore/page/WindowFeatures.h
==============================================================================
--- webkit/trunk/WebCore/page/WindowFeatures.h  Tue Apr 13 23:12:29 2010        
(r413)
+++ webkit/trunk/WebCore/page/WindowFeatures.h  Tue Apr 13 23:15:23 2010        
(r414)
@@ -48,6 +48,7 @@
             , resizable(true)
             , fullscreen(false)
             , dialog(false)
+            , activate(true)
         {
         }
 
@@ -76,6 +77,7 @@
 
         bool fullscreen;
         bool dialog;
+        bool activate;
     };
 
 } // namespace WebCore

Modified: webkit/trunk/WebKit/haiku/API/WebPage.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/API/WebPage.cpp   Tue Apr 13 23:12:29 2010        
(r413)
+++ webkit/trunk/WebKit/haiku/API/WebPage.cpp   Tue Apr 13 23:15:23 2010        
(r414)
@@ -465,7 +465,8 @@
     return fPage;
 }
 
-WebCore::Page* BWebPage::createNewPage(BRect frame, bool modalDialog, bool 
resizable)
+WebCore::Page* BWebPage::createNewPage(BRect frame, bool modalDialog,
+    bool resizable, bool activate)
 {
     // Creating the BWebView in the application thread is exactly what we need 
anyway.
        BWebView* view = new BWebView("web view");
@@ -475,10 +476,9 @@
     message.AddPointer("view", view);
     if (frame.IsValid())
         message.AddRect("frame", frame);
-    if (modalDialog)
-        message.AddBool("modal", modalDialog);
-    if (!resizable)
-        message.AddBool("resizable", resizable);
+    message.AddBool("modal", modalDialog);
+    message.AddBool("resizable", resizable);
+    message.AddBool("activate", activate);
 
     // Block until some window has embedded this view.
     BMessage reply;

Modified: webkit/trunk/WebKit/haiku/API/WebPage.h
==============================================================================
--- webkit/trunk/WebKit/haiku/API/WebPage.h     Tue Apr 13 23:12:29 2010        
(r413)
+++ webkit/trunk/WebKit/haiku/API/WebPage.h     Tue Apr 13 23:15:23 2010        
(r414)
@@ -147,7 +147,8 @@
        WebCore::Page* page() const;
 
        WebCore::Page* createNewPage(BRect frame = BRect(),
-               bool modalDialog = false, bool resizable = true);
+               bool modalDialog = false, bool resizable = true,
+               bool activate = true);
 
        BRect windowFrame();
        BRect windowBounds();

Modified: webkit/trunk/WebKit/haiku/API/WebWindow.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/API/WebWindow.cpp Tue Apr 13 23:12:29 2010        
(r413)
+++ webkit/trunk/WebKit/haiku/API/WebWindow.cpp Tue Apr 13 23:15:23 2010        
(r414)
@@ -126,8 +126,11 @@
         bool resizable;
         if (message->FindBool("resizable", &resizable) != B_OK)
                resizable = true;
+        bool activate;
+        if (message->FindBool("activate", &activate) != B_OK)
+               activate = true;
 
-        NewPageCreated(view, windowFrame, modalDialog, resizable);
+        NewPageCreated(view, windowFrame, modalDialog, resizable, activate);
         break;
     }
     case CLOSE_WINDOW_REQUESTED:
@@ -303,7 +306,7 @@
 }
 
 void BWebWindow::NewPageCreated(BWebView* view, BRect windowFrame,
-    bool modalDialog, bool resizable)
+    bool modalDialog, bool resizable, bool activate)
 {
        if (!windowFrame.IsValid())
                windowFrame = Frame().OffsetByCopy(10, 10);

Modified: webkit/trunk/WebKit/haiku/API/WebWindow.h
==============================================================================
--- webkit/trunk/WebKit/haiku/API/WebWindow.h   Tue Apr 13 23:12:29 2010        
(r413)
+++ webkit/trunk/WebKit/haiku/API/WebWindow.h   Tue Apr 13 23:15:23 2010        
(r414)
@@ -60,7 +60,7 @@
        virtual void                            CloseWindowRequested(BWebView* 
view);
        virtual void                            NewPageCreated(BWebView* view,
                                                                        BRect 
windowFrame, bool modalDialog,
-                                                                       bool 
resizable);
+                                                                       bool 
resizable, bool activate);
        virtual void                            LoadNegotiating(const BString& 
url,
                                                                        
BWebView* view);
        virtual void                            LoadCommitted(const BString& 
url,

Modified: webkit/trunk/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp      Tue Apr 
13 23:12:29 2010        (r413)
+++ webkit/trunk/WebKit/haiku/WebCoreSupport/ChromeClientHaiku.cpp      Tue Apr 
13 23:15:23 2010        (r414)
@@ -157,7 +157,8 @@
 
 //printf("  frame: "); windowFrame.PrintToStream();
 
-       WebCore::Page* page = m_webPage->createNewPage(windowFrame, 
features.dialog, features.resizable);
+       WebCore::Page* page = m_webPage->createNewPage(windowFrame, 
features.dialog, features.resizable,
+           features.activate);
        if (!page)
            return 0;
 

Modified: webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.cpp
==============================================================================
--- webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.cpp     Tue Apr 13 
23:12:29 2010        (r413)
+++ webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.cpp     Tue Apr 13 
23:15:23 2010        (r414)
@@ -810,14 +810,14 @@
 
 void
 BrowserWindow::NewPageCreated(BWebView* view, BRect windowFrame,
-    bool modalDialog, bool resizable)
+    bool modalDialog, bool resizable, bool activate)
 {
        if (windowFrame.IsValid()) {
                BrowserWindow* window = new BrowserWindow(windowFrame, 
fAppSettings,
                        DoNotHaveToolbar, view);
                window->Show();
        } else
-               CreateNewTab(BString(), true, view);
+               CreateNewTab(BString(), activate, view);
 }
 
 

Modified: webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.h
==============================================================================
--- webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.h       Tue Apr 13 
23:12:29 2010        (r413)
+++ webkit/trunk/WebKit/haiku/WebPositive/BrowserWindow.h       Tue Apr 13 
23:15:23 2010        (r414)
@@ -94,7 +94,7 @@
        virtual void                            CloseWindowRequested(BWebView* 
view);
        virtual void                            NewPageCreated(BWebView* view,
                                                                        BRect 
windowFrame, bool modalDialog,
-                                                                       bool 
resizable);
+                                                                       bool 
resizable, bool activate);
        virtual void                            LoadNegotiating(const BString& 
url,
                                                                        
BWebView* view);
        virtual void                            LoadCommitted(const BString& 
url,

Other related posts:

  • » [haiku-webkit-commits] r414 - in webkit/trunk: WebCore/page WebKit/haiku/API WebKit/haiku/WebCoreSupport WebKit/haiku/WebPositive - webkit