Commit 14b91abf authored by Andy Stewart's avatar Andy Stewart
Browse files

Make all browser-base application support scroll interface to respond scroll-other-window

parent 6c007cde
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -5,7 +5,6 @@
* Browser: support pop window, such as emacs-china.org
* Browser: add progressbar
* Browser: add proxy support
* Browser: add scroll interface support.
* Browser: implement js plugin like vimium
* Browser: study more code from https://github.com/LavaPower/Browthon-Old/blob/c25d5721b40e95131a3c521566a18467f13ecbf0/files/Browthon_elements.py
* ImageViewer: add zoom support
+4 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@

from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QColor
from core.browser import BrowserView
from core.browser import BrowserView, webview_scroll
from core.buffer import Buffer

class AppBuffer(Buffer):
@@ -37,3 +37,6 @@ class AppBuffer(Buffer):
        # We need send key event to QWebEngineView's child, not QWebEngineView.
        for child in self.buffer_widget.children():
            QApplication.sendEvent(child, event)

    def scroll(self, scroll_direction, scroll_type):
        webview_scroll(self, scroll_direction, scroll_type)
+4 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@

from PyQt5.QtCore import QUrl, Qt
from PyQt5.QtGui import QColor
from core.browser import BrowserView
from core.browser import BrowserView, webview_scroll
from core.buffer import Buffer
from core.utils import PostGui
import socket
@@ -66,3 +66,6 @@ class AppBuffer(Buffer):
        paths = os.path.split(self.url)
        if len(paths) > 0:
            self.change_title(paths[-1])

    def scroll(self, scroll_direction, scroll_type):
        webview_scroll(self, scroll_direction, scroll_type)
+4 −1
Original line number Diff line number Diff line
@@ -21,7 +21,7 @@

from PyQt5.QtCore import QUrl, Qt
from PyQt5.QtGui import QColor
from core.browser import BrowserView
from core.browser import BrowserView, webview_scroll
from core.buffer import Buffer
import os

@@ -40,3 +40,6 @@ class AppBuffer(Buffer):
    def update_with_data(self, update_data):
        self.load_org_html_file()
        self.buffer_widget.reload()

    def scroll(self, scroll_direction, scroll_type):
        webview_scroll(self, scroll_direction, scroll_type)
+15 −0
Original line number Diff line number Diff line
@@ -227,3 +227,18 @@ class WebHitTestResult():
            self.m_imageUrl = data.mediaUrl().toString()
        elif data.mediaType() == QWebEngineContextMenuData.MediaTypeAudio or data.mediaType() == QWebEngineContextMenuData.MediaTypeVideo:
            self.m_mediaUrl = data.mediaUrl().toString()

def webview_scroll(webview, scroll_direction, scroll_type):
    line_offset = 10
    page_offset = 100

    if scroll_type == "page":
        if scroll_direction == "up":
            webview.buffer_widget.web_page.runJavaScript("window.scrollBy({0}, {1});".format(0, page_offset));
        else:
            webview.buffer_widget.web_page.runJavaScript("window.scrollBy({0}, {1});".format(0, -page_offset));
    else:
        if scroll_direction == "up":
            webview.buffer_widget.web_page.runJavaScript("window.scrollBy({0}, {1});".format(0, line_offset));
        else:
            webview.buffer_widget.web_page.runJavaScript("window.scrollBy({0}, {1});".format(0, -line_offset));