diff --git a/i18n/si/msgs.jaml b/i18n/si/msgs.jaml index 03230ac8..f34ed5dc 100644 --- a/i18n/si/msgs.jaml +++ b/i18n/si/msgs.jaml @@ -197,6 +197,8 @@ main.py: Application level CSS style sheet to use: false --config: false Configuration namespace: false + --no-shadow: false + Disable drop shadows in the UI: false Deprecated: false --qt: false 'Additional arguments for QApplication.\nDeprecated. ': false diff --git a/orangecanvas/main.py b/orangecanvas/main.py index 6216f556..a52d295d 100644 --- a/orangecanvas/main.py +++ b/orangecanvas/main.py @@ -14,7 +14,8 @@ from contextlib import ExitStack, closing from AnyQt.QtGui import QFont, QColor, QPalette -from AnyQt.QtCore import Qt, QSettings, QTimer, QUrl, QDir +from AnyQt.QtCore import Qt, QSettings, QTimer, QUrl, QDir, QObject, QEvent +from AnyQt.QtWidgets import QWidget from orangecanvas import localization from .utils.after_exit import run_after_exit @@ -97,6 +98,18 @@ def activate_default_config(self): # Init config config.init() + def install_shadow_remover(self): + class ShadowRemover(QObject): + def eventFilter(self, obj, event): + if event.type() == QEvent.Type.Polish: + if isinstance(obj, QWidget) and obj.isWindow(): + obj.setWindowFlags( + obj.windowFlags() | Qt.WindowType.NoDropShadowWindowHint) + return super().eventFilter(obj, event) + + self.__remover = ShadowRemover() + self.application.installEventFilter(self.__remover) + def show_splash_message(self, message: str, color=QColor()): """Display splash screen message""" splash = self.splash_screen() @@ -201,6 +214,8 @@ def run(self, argv: List[str]) -> int: with ExitStack() as stack: self.stack = stack self.setup_application() + if self.options.no_shadow: + self.install_shadow_remover() stack.callback(self.tear_down_application) self.setup_sys_redirections() stack.callback(self.tear_down_sys_redirections) @@ -526,6 +541,11 @@ def log_level(value): type=str, default=None, ) + parser.add_argument( + "--no-shadow", help="Disable drop shadows in the UI", + action="store_true", default=False + ) + deprecated = parser.add_argument_group("Deprecated") deprecated.add_argument( "--qt", help="Additional arguments for QApplication.\nDeprecated. "