[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

mjs mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:24:49 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 111e0e939be6d131ec551d14bce023765674af03
Author: mjs <mjs at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Jul 17 00:48:01 2002 +0000

    WebCore:
    
            Moved URL mouseover status to KWQKHTMLPartImpl, and made it
    	responsive to modifier key presses, if enabled. Fixes:
    
    	Radar 2980152 - Link mouseover status messages are not localizable
    	Radar 2982043 - Link mouse-over status should change in response to modifier keys
    
    	* khtml/khtml_part.cpp:
            (KHTMLPart::overURL): Remove extensive APPLE_CHANGES, and just call the
    	impl method.
            * kwq/KWQKHTMLPartImpl.h: Prototype overURL method.
            * kwq/KWQKHTMLPartImpl.mm:
            (KWQKHTMLPartImpl::overURL): Construct status messages using format strings
    	for localizability; change message in response to modifiers if modifier
    	tracking is enabled.
            * kwq/WebCoreBridge.h: Prototype modifierTrackingEnabled method.
    
    WebKit:
    
    	WebKit part of fix for:
    
    	Radar 2982043 - Link mouseover status messages are not localizable
    
            * WebCoreSupport.subproj/WebBridge.m:
            (-[WebBridge modifierTrackingEnabled]): Implemented by checking
    	bit on WebHTMLView class.
    	* WebKit.pbproj/project.pbxproj: Install WebHTMLViewPrivate as a
    	Private header.
            * WebView.subproj/WebHTMLViewPrivate.h: Prototype new modifier tracking SPI.
            * WebView.subproj/WebHTMLViewPrivate.m:
    	(+[WebHTMLView _setModifierTrackingEnabled:]): Method to inform
    	WebHTMLView that modifier tracking is working.
            (+[WebHTMLView _modifierTrackingEnabled]): Obligatory getter.
            (+[WebHTMLView _postFlagsChangedEvent:]): Method to report
    	flagsChanged events. Creates corresponding fake mouseMoved event
    	and sends it as a notification.
    
    WebBrowser:
    
    	WebBrowser part of fix for:
    
    	Radar 2982043 - Link mouseover status messages are not localizable
    
            * AppController.m:
            (-[AppController awakeFromNib]): Enable modifier tracking.
            * BrowserWindowController.m:
            (-[BrowserWindowController windowWillHandleKeyEvent:]): Post
    	NSFlagsChanged events to WebHTMLView.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1576 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index a94d733..c6b754a 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,21 @@
+2002-07-16  Maciej Stachowiak  <mjs at apple.com>
+
+        Moved URL mouseover status to KWQKHTMLPartImpl, and made it
+	responsive to modifier key presses, if enabled. Fixes:
+
+	Radar 2980152 - Link mouseover status messages are not localizable
+	Radar 2982043 - Link mouse-over status should change in response to modifier keys
+
+	* khtml/khtml_part.cpp:
+        (KHTMLPart::overURL): Remove extensive APPLE_CHANGES, and just call the
+	impl method.
+        * kwq/KWQKHTMLPartImpl.h: Prototype overURL method.
+        * kwq/KWQKHTMLPartImpl.mm:
+        (KWQKHTMLPartImpl::overURL): Construct status messages using format strings
+	for localizability; change message in response to modifiers if modifier
+	tracking is enabled.
+        * kwq/WebCoreBridge.h: Prototype modifierTrackingEnabled method.
+
 2002-07-16  Richard Williamson (Local)  <rjw at apple.com>
 
         Fixed field length test.  We were testing >= instead of >.
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index a94d733..c6b754a 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,21 @@
+2002-07-16  Maciej Stachowiak  <mjs at apple.com>
+
+        Moved URL mouseover status to KWQKHTMLPartImpl, and made it
+	responsive to modifier key presses, if enabled. Fixes:
+
+	Radar 2980152 - Link mouseover status messages are not localizable
+	Radar 2982043 - Link mouse-over status should change in response to modifier keys
+
+	* khtml/khtml_part.cpp:
+        (KHTMLPart::overURL): Remove extensive APPLE_CHANGES, and just call the
+	impl method.
+        * kwq/KWQKHTMLPartImpl.h: Prototype overURL method.
+        * kwq/KWQKHTMLPartImpl.mm:
+        (KWQKHTMLPartImpl::overURL): Construct status messages using format strings
+	for localizability; change message in response to modifiers if modifier
+	tracking is enabled.
+        * kwq/WebCoreBridge.h: Prototype modifierTrackingEnabled method.
+
 2002-07-16  Richard Williamson (Local)  <rjw at apple.com>
 
         Fixed field length test.  We were testing >= instead of >.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index a94d733..c6b754a 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,21 @@
+2002-07-16  Maciej Stachowiak  <mjs at apple.com>
+
+        Moved URL mouseover status to KWQKHTMLPartImpl, and made it
+	responsive to modifier key presses, if enabled. Fixes:
+
+	Radar 2980152 - Link mouseover status messages are not localizable
+	Radar 2982043 - Link mouse-over status should change in response to modifier keys
+
+	* khtml/khtml_part.cpp:
+        (KHTMLPart::overURL): Remove extensive APPLE_CHANGES, and just call the
+	impl method.
+        * kwq/KWQKHTMLPartImpl.h: Prototype overURL method.
+        * kwq/KWQKHTMLPartImpl.mm:
+        (KWQKHTMLPartImpl::overURL): Construct status messages using format strings
+	for localizability; change message in response to modifiers if modifier
+	tracking is enabled.
+        * kwq/WebCoreBridge.h: Prototype modifierTrackingEnabled method.
+
 2002-07-16  Richard Williamson (Local)  <rjw at apple.com>
 
         Fixed field length test.  We were testing >= instead of >.
diff --git a/WebCore/khtml/khtml_part.cpp b/WebCore/khtml/khtml_part.cpp
index cf95d6d..49deaa3 100644
--- a/WebCore/khtml/khtml_part.cpp
+++ b/WebCore/khtml/khtml_part.cpp
@@ -2137,14 +2137,15 @@ void KHTMLPart::overURL( const QString &url, const QString &target, int modifier
 void KHTMLPart::overURL( const QString &url, const QString &target, bool shiftPressed )
 #endif
 {
-#ifndef APPLE_CHANGES
+#ifdef APPLE_CHANGES
+  impl->overURL(url, target, modifierState);
+#else
   if ( !d->m_kjsStatusBarText.isEmpty() && !shiftPressed ) {
     emit onURL( url );
     emit setStatusBarText( d->m_kjsStatusBarText );
     d->m_kjsStatusBarText = QString::null;
     return;
   }
-#endif
 
   emit onURL( url );
 
@@ -2156,24 +2157,16 @@ void KHTMLPart::overURL( const QString &url, const QString &target, bool shiftPr
 
   if (url.find( QString::fromLatin1( "javascript:" ),0, false ) != -1 )
   {
-#ifdef APPLE_CHANGES
-    // FIXME: how to localize?
-    emit setStatusBarText( "Run script " + url.mid( url.find( "javascript:", 0, false ) + strlen("javascript:") ) );
-#else
     emit setStatusBarText( url.mid( url.find( "javascript:", 0, false ) ) );
-#endif
     return;
   }
 
   KURL u = completeURL(url);
 
-#ifndef APPLE_CHANGES
   // special case for <a href="">
   if ( url.isEmpty() )
     u.setFileName( url );
-#endif
 
-#ifndef APPLE_CHANGES
   QString com;
 
   KMimeType::Ptr typ = KMimeType::findByURL( u );
@@ -2186,9 +2179,7 @@ void KHTMLPart::overURL( const QString &url, const QString &target, bool shiftPr
     emit setStatusBarText(u.prettyURL());
     return;
   }
-#endif
 
-#ifndef APPLE_CHANGES
   if ( u.isLocalFile() )
   {
     // TODO : use KIO::stat() and create a KFileItem out of its result,
@@ -2253,50 +2244,22 @@ void KHTMLPart::overURL( const QString &url, const QString &target, bool shiftPr
   }
   else
   {
-#endif
     QString extra;
-#ifdef APPLE_CHANGES
-    QString prefix = "Go to ";
-#endif
     if (target == QString::fromLatin1("_blank"))
     {
-#ifdef APPLE_CHANGES
-      extra = " in new window";
-      prefix = "Open ";
-#else
       extra = i18n(" (In new window)");
-#endif
     }
     else if (!target.isEmpty() &&
              (target != QString::fromLatin1("_top")) &&
              (target != QString::fromLatin1("_self")) &&
              (target != QString::fromLatin1("_parent")))
     {
-#ifdef APPLE_CHANGES
-      // FIXME: how to localize
-      if (frameExists(target)) {
-	  // FIXME: It would be good if we could tell the difference between
-	  // an existing frame in the same window vs. one in another window
-	  // so we could say "in other window" in that case.
-	  extra = " in other frame";
-      } else {
-	  extra = " in new window";
-	  prefix = "Open ";
-      }
-#else
       extra = i18n(" (In other frame)");
-#endif
     }
 
     if (u.protocol() == QString::fromLatin1("mailto")) {
       QString mailtoMsg/* = QString::fromLatin1("<img src=%1>").arg(locate("icon", QString::fromLatin1("locolor/16x16/actions/mail_send.png")))*/;
-#ifdef APPLE_CHANGES
-      // FIXME: how to localize this?
-      // FIXME: addressbook integration? probably not worth it...
-      mailtoMsg += i18n("Send email to ") + KURL::decode_string(u.path());
-#else
       mailtoMsg += i18n("Email to: ") + KURL::decode_string(u.path());
-#endif
       QStringList queries = QStringList::split('&', u.query().mid(1));
       for (QStringList::Iterator it = queries.begin(); it != queries.end(); ++it)
         if ((*it).startsWith(QString::fromLatin1("subject=")))
@@ -2331,31 +2294,7 @@ void KHTMLPart::overURL( const QString &url, const QString &target, bool shiftPr
         }
       }
 #endif
-#ifdef APPLE_CHANGES
-    // FIXME: needs localization
-
-#if FLAGS_CHANGE_FIXED
-    // FIXME: it would be nice to change the text based on currently
-    // pressed modifiers, but we can't do that until we can detect
-    // modifier state changes, which requires a fix to 2981619
-    if (modifierState & MetaButton) {
-      prefix = "Open ";
-      if (modifierState & ShiftButton) {
-	extra = " in new window, behind current window";
-      } else {
-	extra = " in new window";
-      }
-    } else if (modifierState & AltButton) {
-      prefix = "Download ";
-      extra = "";
-    }
-#endif
-
-    emit setStatusBarText(prefix + u.prettyURL() + extra);
-#else
     emit setStatusBarText(u.prettyURL() + extra);
-#endif
-#ifndef APPLE_CHANGES
   }
 #endif
 }
diff --git a/WebCore/kwq/KWQKHTMLPart.h b/WebCore/kwq/KWQKHTMLPart.h
index e6b5b62..3a657ae 100644
--- a/WebCore/kwq/KWQKHTMLPart.h
+++ b/WebCore/kwq/KWQKHTMLPart.h
@@ -84,6 +84,8 @@ public:
 
     bool isFrameSet();
 
+    void overURL( const QString &url, const QString &target, int modifierState);
+
 private:
     KHTMLPart *part;
     KHTMLPartPrivate *d;
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index 09d2735..b715699 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -662,3 +662,74 @@ void KWQKHTMLPartImpl::unfocusWindow()
     [bridge unfocusWindow];
 }
 
+
+void KWQKHTMLPartImpl::overURL( const QString &url, const QString &target, int modifierState)
+{
+  if (url.isEmpty()) {
+      setStatusBarText(QString());
+      return;
+  }
+
+  NSString *message;
+
+  if (url.find(QString::fromLatin1("javascript:"), 0, false) != -1) {
+      // FIXME: Is it worthwhile to special-case scripts that do a
+      // window.open and nothing else?
+      
+      NSString *script = url.mid(url.find("javascript:", 0, false) + strlen("javascript:")).getNSString();
+      // FIXME: should use curly quotes
+      message = [NSString stringWithFormat:@"Run script \"%@\"", script];
+
+      setStatusBarText(QString::fromNSString(message));
+      return;
+  }
+
+  KURL u = part->completeURL(url);
+
+  if (u.protocol() == QString("mailto")) {
+      // FIXME: addressbook integration? probably not worth it...
+      
+      setStatusBarText(QString::fromNSString([NSString stringWithFormat:@"Send email to %@", KURL::decode_string(u.path()).getNSString()]));
+      return;
+  }
+
+  NSString *format;
+
+  if (target == QString("_blank")) {
+      // FIXME: should use curly quotes
+      format = @"Open \"%@\" in a new window";
+      
+  } else if (!target.isEmpty() &&
+             (target != QString("_top")) &&
+             (target != QString("_self")) &&
+             (target != QString("_parent"))) {
+      if (frameExists(target)) {
+	  // FIXME: distinguish existing frame in same window from
+	  // existing frame name for other window
+	  // FIXME: should use curly quotes
+          format = @"Go to \"%@\" in another frame";
+      } else {
+	  // FIXME: should use curly quotes
+	  format = @"Open \"%@\" in a new window";
+      }
+  } else {
+      format = @"Go to \"%@\"";
+  }
+
+  if ([bridge modifierTrackingEnabled]) {
+      if (modifierState & MetaButton) {
+	  if (modifierState & ShiftButton) {
+	      // FIXME: should use curly quotes
+	      format = @"Open \"%@\" in a new window, behind the current window";
+	  } else {
+	      // FIXME: should use curly quotes
+	      format = @"Open \"%@\" in a new window";
+	  }
+      } else if (modifierState & AltButton) {
+	  // FIXME: should use curly quotes
+	  format = @"Download \"%@\"";
+      }
+  }
+  
+  setStatusBarText(QString::fromNSString([NSString stringWithFormat:format, url.getNSString()]));
+}
diff --git a/WebCore/kwq/KWQKHTMLPartImpl.h b/WebCore/kwq/KWQKHTMLPartImpl.h
index e6b5b62..3a657ae 100644
--- a/WebCore/kwq/KWQKHTMLPartImpl.h
+++ b/WebCore/kwq/KWQKHTMLPartImpl.h
@@ -84,6 +84,8 @@ public:
 
     bool isFrameSet();
 
+    void overURL( const QString &url, const QString &target, int modifierState);
+
 private:
     KHTMLPart *part;
     KHTMLPartPrivate *d;
diff --git a/WebCore/kwq/KWQKHTMLPartImpl.mm b/WebCore/kwq/KWQKHTMLPartImpl.mm
index 09d2735..b715699 100644
--- a/WebCore/kwq/KWQKHTMLPartImpl.mm
+++ b/WebCore/kwq/KWQKHTMLPartImpl.mm
@@ -662,3 +662,74 @@ void KWQKHTMLPartImpl::unfocusWindow()
     [bridge unfocusWindow];
 }
 
+
+void KWQKHTMLPartImpl::overURL( const QString &url, const QString &target, int modifierState)
+{
+  if (url.isEmpty()) {
+      setStatusBarText(QString());
+      return;
+  }
+
+  NSString *message;
+
+  if (url.find(QString::fromLatin1("javascript:"), 0, false) != -1) {
+      // FIXME: Is it worthwhile to special-case scripts that do a
+      // window.open and nothing else?
+      
+      NSString *script = url.mid(url.find("javascript:", 0, false) + strlen("javascript:")).getNSString();
+      // FIXME: should use curly quotes
+      message = [NSString stringWithFormat:@"Run script \"%@\"", script];
+
+      setStatusBarText(QString::fromNSString(message));
+      return;
+  }
+
+  KURL u = part->completeURL(url);
+
+  if (u.protocol() == QString("mailto")) {
+      // FIXME: addressbook integration? probably not worth it...
+      
+      setStatusBarText(QString::fromNSString([NSString stringWithFormat:@"Send email to %@", KURL::decode_string(u.path()).getNSString()]));
+      return;
+  }
+
+  NSString *format;
+
+  if (target == QString("_blank")) {
+      // FIXME: should use curly quotes
+      format = @"Open \"%@\" in a new window";
+      
+  } else if (!target.isEmpty() &&
+             (target != QString("_top")) &&
+             (target != QString("_self")) &&
+             (target != QString("_parent"))) {
+      if (frameExists(target)) {
+	  // FIXME: distinguish existing frame in same window from
+	  // existing frame name for other window
+	  // FIXME: should use curly quotes
+          format = @"Go to \"%@\" in another frame";
+      } else {
+	  // FIXME: should use curly quotes
+	  format = @"Open \"%@\" in a new window";
+      }
+  } else {
+      format = @"Go to \"%@\"";
+  }
+
+  if ([bridge modifierTrackingEnabled]) {
+      if (modifierState & MetaButton) {
+	  if (modifierState & ShiftButton) {
+	      // FIXME: should use curly quotes
+	      format = @"Open \"%@\" in a new window, behind the current window";
+	  } else {
+	      // FIXME: should use curly quotes
+	      format = @"Open \"%@\" in a new window";
+	  }
+      } else if (modifierState & AltButton) {
+	  // FIXME: should use curly quotes
+	  format = @"Download \"%@\"";
+      }
+  }
+  
+  setStatusBarText(QString::fromNSString([NSString stringWithFormat:format, url.getNSString()]));
+}
diff --git a/WebCore/kwq/WebCoreBridge.h b/WebCore/kwq/WebCoreBridge.h
index 54b35ae..ee70d9a 100644
--- a/WebCore/kwq/WebCoreBridge.h
+++ b/WebCore/kwq/WebCoreBridge.h
@@ -147,6 +147,8 @@ typedef khtml::RenderPart KHTMLRenderPart;
 
 - (void)unfocusWindow;
 
+- (BOOL)modifierTrackingEnabled;
+
 @end
 
 // This interface definition allows those who hold a WebCoreBridge * to call all the methods
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 29f3f39..0cfab2d 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,23 @@
+2002-07-16  Maciej Stachowiak  <mjs at apple.com>
+
+	WebKit part of fix for:
+
+	Radar 2982043 - Link mouseover status messages are not localizable
+	
+        * WebCoreSupport.subproj/WebBridge.m:
+        (-[WebBridge modifierTrackingEnabled]): Implemented by checking
+	bit on WebHTMLView class.
+	* WebKit.pbproj/project.pbxproj: Install WebHTMLViewPrivate as a
+	Private header.
+        * WebView.subproj/WebHTMLViewPrivate.h: Prototype new modifier tracking SPI.
+        * WebView.subproj/WebHTMLViewPrivate.m:
+	(+[WebHTMLView _setModifierTrackingEnabled:]): Method to inform
+	WebHTMLView that modifier tracking is working.
+        (+[WebHTMLView _modifierTrackingEnabled]): Obligatory getter.
+        (+[WebHTMLView _postFlagsChangedEvent:]): Method to report
+	flagsChanged events. Creates corresponding fake mouseMoved event
+	and sends it as a notification.
+
 2002-07-16  Darin Adler  <darin at apple.com>
 
         * WebCoreSupport.subproj/WebBridge.m:
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 29f3f39..0cfab2d 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,23 @@
+2002-07-16  Maciej Stachowiak  <mjs at apple.com>
+
+	WebKit part of fix for:
+
+	Radar 2982043 - Link mouseover status messages are not localizable
+	
+        * WebCoreSupport.subproj/WebBridge.m:
+        (-[WebBridge modifierTrackingEnabled]): Implemented by checking
+	bit on WebHTMLView class.
+	* WebKit.pbproj/project.pbxproj: Install WebHTMLViewPrivate as a
+	Private header.
+        * WebView.subproj/WebHTMLViewPrivate.h: Prototype new modifier tracking SPI.
+        * WebView.subproj/WebHTMLViewPrivate.m:
+	(+[WebHTMLView _setModifierTrackingEnabled:]): Method to inform
+	WebHTMLView that modifier tracking is working.
+        (+[WebHTMLView _modifierTrackingEnabled]): Obligatory getter.
+        (+[WebHTMLView _postFlagsChangedEvent:]): Method to report
+	flagsChanged events. Creates corresponding fake mouseMoved event
+	and sends it as a notification.
+
 2002-07-16  Darin Adler  <darin at apple.com>
 
         * WebCoreSupport.subproj/WebBridge.m:
diff --git a/WebKit/WebCoreSupport.subproj/WebBridge.m b/WebKit/WebCoreSupport.subproj/WebBridge.m
index 46cbf52..6c37e33 100644
--- a/WebKit/WebCoreSupport.subproj/WebBridge.m
+++ b/WebKit/WebCoreSupport.subproj/WebBridge.m
@@ -6,6 +6,7 @@
 #import <WebKit/WebBridge.h>
 
 #import <WebKit/WebHTMLRepresentationPrivate.h>
+#import <WebKit/WebHTMLViewPrivate.h>
 #import <WebKit/WebSubresourceClient.h>
 #import <WebKit/WebControllerPrivate.h>
 #import <WebKit/WebFrameBridge.h>
@@ -220,4 +221,10 @@
     }
 }
 
+
+- (BOOL)modifierTrackingEnabled
+{
+    return [WebHTMLView _modifierTrackingEnabled];
+}
+
 @end
diff --git a/WebKit/WebKit.pbproj/project.pbxproj b/WebKit/WebKit.pbproj/project.pbxproj
index 0749954..952bbab 100644
--- a/WebKit/WebKit.pbproj/project.pbxproj
+++ b/WebKit/WebKit.pbproj/project.pbxproj
@@ -607,6 +607,9 @@
 			fileRef = 35081D9602B6D4D80ACA2ACA;
 			isa = PBXBuildFile;
 			settings = {
+				ATTRIBUTES = (
+					Private,
+				);
 			};
 		};
 		35081DA102B6D4D80ACA2ACA = {
diff --git a/WebKit/WebView.subproj/WebHTMLViewPrivate.h b/WebKit/WebView.subproj/WebHTMLViewPrivate.h
index a5e8473..e9f397b 100644
--- a/WebKit/WebView.subproj/WebHTMLViewPrivate.h
+++ b/WebKit/WebView.subproj/WebHTMLViewPrivate.h
@@ -29,4 +29,9 @@
 - (void)_setController: (WebController *)controller;
 - (WebBridge *)_bridge;
 - (void)_adjustFrames;
+
+// Modifier (flagsChanged) tracking SPI
++ (void)_setModifierTrackingEnabled:(BOOL)enabled;
++ (BOOL)_modifierTrackingEnabled;
++ (void)_postFlagsChangedEvent:(NSEvent *)flagsChangedEvent;
 @end
diff --git a/WebKit/WebView.subproj/WebHTMLViewPrivate.m b/WebKit/WebView.subproj/WebHTMLViewPrivate.m
index 4671d0a..a7ee35d 100644
--- a/WebKit/WebView.subproj/WebHTMLViewPrivate.m
+++ b/WebKit/WebView.subproj/WebHTMLViewPrivate.m
@@ -8,6 +8,7 @@
 
 #import <WebKit/WebHTMLViewPrivate.h>
 
+#import <AppKit/NSResponder_Private.h>
 #import <WebKit/WebKitDebug.h>
 #import <WebKit/WebImageRenderer.h>
 #import <WebKit/WebNSViewExtras.h>
@@ -77,4 +78,24 @@
     return [[webFrame dataSource] _bridge];
 }
 
+BOOL _modifierTrackingEnabled = FALSE;
+
++ (void)_setModifierTrackingEnabled:(BOOL)enabled
+{
+    _modifierTrackingEnabled = enabled;
+}
+
++ (BOOL)_modifierTrackingEnabled
+{
+    return _modifierTrackingEnabled;
+}
+
++ (void)_postFlagsChangedEvent:(NSEvent *)flagsChangedEvent
+{
+    NSEvent *fakeEvent = [NSEvent mouseEventWithType:NSMouseMoved location:[[flagsChangedEvent window] convertScreenToBase:[NSEvent mouseLocation]] modifierFlags:[flagsChangedEvent modifierFlags] timestamp:[flagsChangedEvent timestamp] windowNumber:[flagsChangedEvent windowNumber] context:[flagsChangedEvent context] eventNumber:0 clickCount:0 pressure:0];
+
+    // pretend it's a mouse move
+    [[NSNotificationCenter defaultCenter] postNotificationName:NSMouseMovedNotification object:self userInfo:[NSDictionary dictionaryWithObject:fakeEvent forKey:@"NSEvent"]];
+}
+
 @end

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list