Ignore:
Timestamp:
11/06/12 10:57:47 (18 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Added fallback using 'setMask' to FramelessWindow.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/gui/utils.py

    r11100 r11170  
    33 
    44""" 
     5import os 
     6import sys 
     7 
    58from contextlib import contextmanager 
    69 
     
    5659 
    5760    """ 
     61    if sys.platform == "win32": 
     62        return is_dwm_compositing_enabled() 
     63    elif sys.platform == "cygwin": 
     64        return False 
     65    elif sys.platform == "darwin": 
     66        try: 
     67            # Test if Qt was build against X11. 
     68            from PyQt4.QtGui import QX11Info 
     69            return QX11Info.isCompositingManagerRunning() 
     70        except ImportError: 
     71            # Assuming Quartz compositor is running. 
     72            return True 
     73    elif sys.platform.startswith("linux"): 
     74        # TODO: wayland?? 
     75        return is_x11_compositing_enabled() 
     76    elif sys.platform.startswith("freebsd"): 
     77        return is_x11_compositing_enabled() 
     78    elif os.name == "": 
     79        # Any other system (Win, OSX) is assumed to support it 
     80        return True 
     81 
     82 
     83def is_x11_compositing_enabled(): 
     84    """Is X11 compositing manager running. 
     85    """ 
    5886    try: 
    5987        from PyQt4.QtGui import QX11Info 
    60         return QX11Info.isCompositingManagerRunning() 
    6188    except ImportError: 
    62         # Any other system (Win, OSX) is assumed to support it 
    63         return True 
     89        return False 
     90 
     91    return QX11Info.isCompositingManagerRunning() 
     92 
     93 
     94def is_dwm_compositing_enabled(): 
     95    """Is Desktop Window Manager compositing (Aero) enabled. 
     96    """ 
     97    import ctypes 
     98 
     99    enabled = ctypes.c_bool() 
     100    try: 
     101        DwmIsCompositionEnabled = ctypes.windll.dwmapi.DwmIsCompositionEnabled 
     102    except AttributeError: 
     103        # dwmapi or DwmIsCompositionEnabled is not present 
     104        return False 
     105 
     106    rval = DwmIsCompositionEnabled(ctypes.byref(enabled)) 
     107 
     108    return rval == 0 and enabled.value 
    64109 
    65110 
Note: See TracChangeset for help on using the changeset viewer.