[kupfer: 37/67] ui: Transparent window frame if compositing
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [kupfer: 37/67] ui: Transparent window frame if compositing
- Date: Sat, 19 Mar 2011 01:00:50 +0000 (UTC)
commit f57e33a4ba672cf9f197eecd9898757e5cef98cb
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date: Wed Mar 16 22:49:02 2011 +0100
ui: Transparent window frame if compositing
kupfer/ui/browser.py | 23 +++++++++++++++++++++--
1 files changed, 21 insertions(+), 2 deletions(-)
---
diff --git a/kupfer/ui/browser.py b/kupfer/ui/browser.py
index 7a7902e..fd4710f 100644
--- a/kupfer/ui/browser.py
+++ b/kupfer/ui/browser.py
@@ -1670,6 +1670,10 @@ class WindowController (pretty.OutputMixin):
topbar.pack_start(title_align, True, True)
topbar.pack_start(button_box, False, False)
topbar.show_all()
+ screen = gtk.gdk.screen_get_default()
+ rgba = screen.get_rgba_colormap()
+ if rgba:
+ self.window.set_colormap(rgba)
self.window.set_title(version.PROGRAM_NAME)
self.window.set_icon_name(version.ICON_NAME)
@@ -1720,18 +1724,33 @@ class WindowController (pretty.OutputMixin):
cr = widget.window.cairo_create()
w,h = widget.allocation.width, widget.allocation.height
+
region = gtk.gdk.region_rectangle(event.area)
cr.region(region)
cr.clip()
+ def rgba_from_gdk(c, alpha):
+ return (c.red/65535.0, c.green/65535.0, c.blue/65535.0, alpha)
+
+ if widget.is_composited():
+ cr.set_operator(cairo.OPERATOR_CLEAR)
+ cr.rectangle(0,0,w,h)
+ cr.fill()
+ cr.rectangle(0,0,w,h)
+ cr.set_operator(cairo.OPERATOR_OVER)
+ c = widget.style.bg[widget.get_state()]
+ cr.set_source_rgba(*rgba_from_gdk(c, 0.8))
+ cr.fill()
+
c = widget.style.dark[gtk.STATE_SELECTED]
- cr.set_operator(cairo.OPERATOR_SOURCE)
- cr.set_source_rgba(c.red/65535.0, c.green/65535.0, c.blue/65535.0, 0.7)
+ cr.set_operator(cairo.OPERATOR_OVER)
+ cr.set_source_rgba(*rgba_from_gdk(c, 0.7))
make_rounded_rect(cr, 0, 0, w, h, 10)
cr.set_line_width(2.5)
cr.stroke()
+
def _size_allocate(self, widget, allocation):
if self._use_window_decorations:
return
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]